From 71d1920813673eede923b16b5a65c715277a8c32 Mon Sep 17 00:00:00 2001 From: Nicolas Fley <nicolas.fley@student.ecp.fr> Date: Fri, 5 May 2017 15:35:17 +0200 Subject: [PATCH] modif --- model.di | 2 + model.notation | 2276 +++++++++++++++++ model.uml | 377 +++ scenario/my_foodora.ini | 0 scenario/testScenario1.txt | 0 src/Cards/BasicFidelityCard.java | 17 +- src/Cards/LotteryFidelityCard.java | 43 +- src/Cards/PointFidelityCard.java | 18 +- src/Cards/VisitableCard.java | 3 +- src/Cards/VisiterCard.java | 3 +- src/Cli/Clui.java | 56 +- src/Cli/Command.java | 8 +- src/Commands/AddDishRestaurantMenu.java | 41 + src/Commands/AddDishToMeal.java | 35 + src/Commands/AddItemToOrder.java | 39 + src/Commands/AssociateCard.java | 38 + src/Commands/CreateMeal.java | 35 + src/Commands/CreateOrder.java | 36 + src/Commands/EndOrder.java | 35 + src/Commands/FindDeliverer.java | 36 + src/Commands/OffDuty.java | 36 + src/Commands/OnDuty.java | 37 + src/Commands/RegisterCourier.java | 3 +- src/Commands/RegisterCustomer.java | 5 +- src/Commands/RegisterRestaurant.java | 3 +- src/Commands/RemoveSpecialOffer.java | 32 + src/Commands/RenameMeal.java | 35 + src/Commands/RunTest.java | 56 + src/Commands/SetDeliveryPolicy.java | 35 + src/Commands/SetProfitPolicy.java | 35 + src/Commands/SetSpecialOffer.java | 33 + src/Commands/ShowCourier.java | 32 + src/Commands/ShowMeal.java | 31 + src/Commands/ShowMenuItem.java | 37 + src/Commands/ShowProfitBetween.java | 32 + src/Commands/ShowTotalProfit.java | 32 + src/Core/Main.java | 7 +- src/Core/MyFoodora.java | 108 +- .../FairOccupationDelivery.java | 3 +- src/DeliveryStrategy/FastestDelivery.java | 6 +- .../StrategyDeliveryPolicy.java | 3 +- src/Exception/ExceptionUnknownTypeOfUser.java | 38 + src/Item/FactoryMeal.java | 4 +- src/Item/FullMeal.java | 3 +- src/Item/HalfMeal.java | 5 +- src/Item/Meal.java | 7 +- src/Offers/BirthdayOffer.java | 13 +- src/Offers/MealOfTheWeek.java | 40 +- src/Offers/ObservableOffer.java | 4 +- src/Offers/Observer.java | 2 +- src/Order/Order.java | 55 +- .../TargetProfitDeliveryCost.java | 9 +- src/StrategyProfit/TargetProfitMarkup.java | 9 +- .../TargetProfitServiceFee.java | 11 +- src/User/Courier.java | 5 + src/User/Customer.java | 58 +- src/User/Manager.java | 9 +- src/User/Restaurant.java | 34 +- .../FactoryUserFactory.java | 8 +- src/UserFactoryPattern/HumanUserFactory.java | 6 +- src/UserFactoryPattern/MoralUserFactory.java | 6 +- src/UserFactoryPattern/UserFactory.java | 5 +- src/model.di | 2 + src/model.notation | 2276 +++++++++++++++++ src/model.uml | 377 +++ src/test/TestCard.java | 77 + src/test/TestCli.java | 10 + src/test/TestCore.java | 128 + src/test/TestCourier.java | 6 +- src/test/TestCustomer.java | 11 +- src/test/TestDeliveryStrategy.java | 68 + src/test/TestException.java | 106 + src/test/TestItem.java | 90 + src/test/TestManager.java | 28 +- src/test/TestOffers.java | 80 + src/test/TestOrder.java | 70 + src/test/TestOthers.java | 27 + src/test/TestRestaurant.java | 34 +- src/test/TestTargetProfitStrategy.java | 146 ++ src/test/TestUserFactory.java | 42 + 80 files changed, 7486 insertions(+), 122 deletions(-) create mode 100644 model.di create mode 100644 model.notation create mode 100644 model.uml create mode 100644 scenario/my_foodora.ini create mode 100644 scenario/testScenario1.txt create mode 100644 src/Commands/AddDishRestaurantMenu.java create mode 100644 src/Commands/AddDishToMeal.java create mode 100644 src/Commands/AddItemToOrder.java create mode 100644 src/Commands/AssociateCard.java create mode 100644 src/Commands/CreateMeal.java create mode 100644 src/Commands/CreateOrder.java create mode 100644 src/Commands/EndOrder.java create mode 100644 src/Commands/FindDeliverer.java create mode 100644 src/Commands/OffDuty.java create mode 100644 src/Commands/OnDuty.java create mode 100644 src/Commands/RemoveSpecialOffer.java create mode 100644 src/Commands/RenameMeal.java create mode 100644 src/Commands/RunTest.java create mode 100644 src/Commands/SetDeliveryPolicy.java create mode 100644 src/Commands/SetProfitPolicy.java create mode 100644 src/Commands/SetSpecialOffer.java create mode 100644 src/Commands/ShowCourier.java create mode 100644 src/Commands/ShowMeal.java create mode 100644 src/Commands/ShowMenuItem.java create mode 100644 src/Commands/ShowProfitBetween.java create mode 100644 src/Commands/ShowTotalProfit.java create mode 100644 src/Exception/ExceptionUnknownTypeOfUser.java create mode 100644 src/model.di create mode 100644 src/model.notation create mode 100644 src/model.uml create mode 100644 src/test/TestCard.java create mode 100644 src/test/TestCli.java create mode 100644 src/test/TestCore.java create mode 100644 src/test/TestDeliveryStrategy.java create mode 100644 src/test/TestException.java create mode 100644 src/test/TestItem.java create mode 100644 src/test/TestOffers.java create mode 100644 src/test/TestOrder.java create mode 100644 src/test/TestOthers.java create mode 100644 src/test/TestTargetProfitStrategy.java create mode 100644 src/test/TestUserFactory.java diff --git a/model.di b/model.di new file mode 100644 index 0000000..bf9abab --- /dev/null +++ b/model.di @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/> diff --git a/model.notation b/model.notation new file mode 100644 index 0000000..cf3b4a4 --- /dev/null +++ b/model.notation @@ -0,0 +1,2276 @@ +<?xml version="1.0" encoding="UTF-8"?> +<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_AN9ZEBVKEeeMzp7YIeMZtw" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel"> + <children xmi:type="notation:Shape" xmi:id="_td6vkBVLEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_td6vkhVLEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_td6vkxVLEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_td6vlBVLEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_td6vlRVLEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_td6vlhVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_td6vlxVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_td6vmBVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_td6vmRVLEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_td6vmhVLEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_td6vmxVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_td6vnBVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_td6vnRVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_td6vnhVLEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_td6vnxVLEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_td6voBVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_td6voRVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_td6vohVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_td6voxVLEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_tdw-kBVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_td6vkRVLEeeMzp7YIeMZtw" x="2399" y="1088"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_3Heq0RVLEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_3Heq0xVLEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_3Heq1BVLEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_3Heq1RVLEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_3Heq1hVLEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_3Heq1xVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_3Heq2BVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_3Heq2RVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Heq2hVLEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_3Heq2xVLEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_3Heq3BVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_3Heq3RVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_3Heq3hVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Heq3xVLEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_3Heq4BVLEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_3Heq4RVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_3Heq4hVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_3Heq4xVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Heq5BVLEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_3Heq0BVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Heq0hVLEeeMzp7YIeMZtw" x="2519" y="1090"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_7yg2kRVLEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_7yg2kxVLEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_7yg2lBVLEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_7yg2lRVLEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_7yg2lhVLEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_7yg2lxVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_7yg2mBVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_7yg2mRVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7yg2mhVLEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_7yg2mxVLEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_7yg2nBVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_7yg2nRVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_7yg2nhVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7yg2nxVLEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_7yg2oBVLEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_7yg2oRVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_7yg2ohVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_7yg2oxVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7yg2pBVLEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_7yg2kBVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7yg2khVLEeeMzp7YIeMZtw" x="2651" y="1080"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_0EXCoBVMEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_0EXCohVMEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_0EXCoxVMEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_0EXCpBVMEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_0EXCpRVMEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_-U5eUBVMEeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_-UmjYBVMEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_-U5eURVMEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_FrX8oBVNEeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_FrEaoBVNEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_FrX8oRVNEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_OA0n0BVREeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_OAX74BVREeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_OA0n0RVREeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_0EXCphVMEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_0EXCpxVMEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_0EXCqBVMEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0EXCqRVMEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_0EXCqhVMEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_0EXCqxVMEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_0EXCrBVMEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_0EXCrRVMEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0EXCrhVMEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_0EXCrxVMEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_0EXCsBVMEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_0EXCsRVMEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_0EXCshVMEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0EXCsxVMEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_0EEHsBVMEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0EXCoRVMEeeMzp7YIeMZtw" x="2503" y="934"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_4sOJIRVNEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_4sOJIxVNEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_4sOJJBVNEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_4sOJJRVNEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_4sOJJhVNEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_4sOJJxVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_4sOJKBVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_4sOJKRVNEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4sOJKhVNEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_4sOJKxVNEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_5RXoIBVOEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_5QxLMBVOEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_5RXoIRVOEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_4sOJLBVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_4sOJLRVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_4sOJLhVNEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4sOJLxVNEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_4sOJMBVNEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_4sOJMRVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_4sOJMhVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_4sOJMxVNEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4sOJNBVNEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_4sOJIBVNEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4sOJIhVNEeeMzp7YIeMZtw" x="2638" y="739" width="227"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_9zOfMRVNEeeMzp7YIeMZtw" type="Interface_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_9zOfMxVNEeeMzp7YIeMZtw" type="Interface_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_9zOfNBVNEeeMzp7YIeMZtw" type="Interface_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_9zOfNRVNEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_9zOfNhVNEeeMzp7YIeMZtw" type="Interface_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_9zOfNxVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_9zOfOBVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_9zOfORVNEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9zOfOhVNEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_9zOfOxVNEeeMzp7YIeMZtw" type="Interface_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_9zOfPBVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_9zOfPRVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_9zOfPhVNEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9zOfPxVNEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_9zOfQBVNEeeMzp7YIeMZtw" type="Interface_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_9zOfQRVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_9zOfQhVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_9zOfQxVNEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9zOfRBVNEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Interface" href="model.uml#_9zOfMBVNEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9zOfMhVNEeeMzp7YIeMZtw" x="2176" y="799" height="62"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QsWr8xVPEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QsWr9BVPEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QsWr9RVPEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QsWr9hVPEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWr9xVPEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWr-BVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWr-RVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWr-hVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWr-xVPEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWr_BVPEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QsWr_RVPEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QsWr8RVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QsWr_hVPEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWr_xVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsABVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWsARVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsAhVPEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWsAxVPEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWsBBVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsBRVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWsBhVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsBxVPEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QsWr7xVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsCxVPEeeMzp7YIeMZtw" x="1418" y="929" width="227"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QsWsSBVPEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QsWsSRVPEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QsWsShVPEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QsWsSxVPEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWsTBVPEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWsTRVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsThVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWsTxVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsUBVPEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWsURVPEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWsUhVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsUxVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWsVBVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsVRVPEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWsVhVPEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWsVxVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsWBVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWsWRVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsWhVPEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QsWr4xVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsXhVPEeeMzp7YIeMZtw" x="1983" y="1091"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QsWsXxVPEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QsWsYBVPEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QsWsYRVPEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QsWsYhVPEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWsYxVPEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWsZBVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsZRVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWsZhVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsZxVPEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWsaBVPEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWsaRVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsahVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWsaxVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsbBVPEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWsbRVPEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWsbhVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsbxVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWscBVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWscRVPEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QsWr4RVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsdRVPEeeMzp7YIeMZtw" x="1732" y="1088"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QsWslBVPEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QsWslRVPEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QsWslhVPEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QsWslxVPEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWsmBVPEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QsWsmRVPEeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QsWr7RVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QsWsmhVPEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_SCRggBVQEeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_SBh5oBVQEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_SCRggRVQEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_bQ1FUBVREeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_bQOoYBVREeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_bQ1FURVREeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWsnRVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsnhVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWsnxVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsoBVPEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWsoRVPEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_uK47kBVREeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_uKTFsBVREeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_uK47kRVREeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWsohVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsoxVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWspBVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWspRVPEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWsphVPEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWspxVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsqBVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWsqRVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsqhVPEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QsWr7BVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsrhVPEeeMzp7YIeMZtw" x="1826" y="930"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_D3T2oBVQEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_D3T2ohVQEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_D3T2oxVQEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_D3T2pBVQEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_D3T2pRVQEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_D3T2phVQEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_D3T2pxVQEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_D3T2qBVQEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D3T2qRVQEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_D3T2qhVQEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_D3T2qxVQEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_D3T2rBVQEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_D3T2rRVQEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D3T2rhVQEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_D3T2rxVQEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_D3T2sBVQEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_D3T2sRVQEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_D3T2shVQEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D3T2sxVQEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_D3KFoBVQEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D3T2oRVQEeeMzp7YIeMZtw" x="1783" y="835" height="29"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_-j608RVQEeeMzp7YIeMZtw" type="Enumeration_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_-j608xVQEeeMzp7YIeMZtw" type="Enumeration_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_-j609BVQEeeMzp7YIeMZtw" type="Enumeration_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_-j609RVQEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_-j609hVQEeeMzp7YIeMZtw" type="Enumeration_LiteralCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_-j609xVQEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_-j60-BVQEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_-j60-RVQEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-j60-hVQEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Enumeration" href="model.uml#_-j608BVQEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-j608hVQEeeMzp7YIeMZtw" x="2184" y="965" height="58"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_31XnYRVSEeeMzp7YIeMZtw" type="Interface_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_31XnYxVSEeeMzp7YIeMZtw" type="Interface_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_31XnZBVSEeeMzp7YIeMZtw" type="Interface_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_31XnZRVSEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_31XnZhVSEeeMzp7YIeMZtw" type="Interface_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_31XnZxVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_31XnaBVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_31XnaRVSEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_31XnahVSEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_31XnaxVSEeeMzp7YIeMZtw" type="Interface_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_31XnbBVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_31XnbRVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_31XnbhVSEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_31XnbxVSEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_31XncBVSEeeMzp7YIeMZtw" type="Interface_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_31XncRVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_31XnchVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_31XncxVSEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_31XndBVSEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Interface" href="model.uml#_31XnYBVSEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_31XnYhVSEeeMzp7YIeMZtw" x="2177" y="744" height="52"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_6giNIBVSEeeMzp7YIeMZtw" type="Interface_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_6giNIhVSEeeMzp7YIeMZtw" type="Interface_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_6giNIxVSEeeMzp7YIeMZtw" type="Interface_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_6giNJBVSEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_6giNJRVSEeeMzp7YIeMZtw" type="Interface_AttributeCompartment"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U78U8BVTEeeMzp7YIeMZtw" source="PapyrusCSSForceValue"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U78U8RVTEeeMzp7YIeMZtw" key="collapsed" value="true"/> + </eAnnotations> + <styles xmi:type="notation:TitleStyle" xmi:id="_6giNJhVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_6giNJxVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_6giNKBVSEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6giNKRVSEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_6giNKhVSEeeMzp7YIeMZtw" type="Interface_OperationCompartment"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VJeaoBVTEeeMzp7YIeMZtw" source="PapyrusCSSForceValue"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VJeaoRVTEeeMzp7YIeMZtw" key="collapsed" value="true"/> + </eAnnotations> + <children xmi:type="notation:Shape" xmi:id="_ETBa4BVTEeeMzp7YIeMZtw" type="Operation_InterfaceOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_ESR0ABVTEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_ETBa4RVTEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_6giNKxVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_6giNLBVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_6giNLRVSEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6giNLhVSEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_6giNLxVSEeeMzp7YIeMZtw" type="Interface_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_6giNMBVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_6giNMRVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_6giNMhVSEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6giNMxVSEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Interface" href="model.uml#_6gYcIBVSEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6giNIRVSEeeMzp7YIeMZtw" x="2175" y="864" width="100" height="67"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_qOaNARVTEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_qOaNAxVTEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_qOjW8BVTEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_qOjW8RVTEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_qOjW8hVTEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_hxRLIBVfEeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_hwhkQBVfEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_hxRLIRVfEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_xW6N0BVgEeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_xVpCgBVgEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_xW6N0RVgEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_qOjW8xVTEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_qOjW9BVTEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_qOjW9RVTEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qOjW9hVTEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_qOjW9xVTEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_qOjW-BVTEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_qOjW-RVTEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_qOjW-hVTEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qOjW-xVTEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_qOjW_BVTEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_qOjW_RVTEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_qOjW_hVTEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_qOjW_xVTEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qOjXABVTEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_qOaNABVTEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qOaNAhVTEeeMzp7YIeMZtw" x="2185" y="1100"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_o3hKMBVhEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_o3iYUBVhEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_o3iYURVhEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_o3iYUhVhEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_o3iYUxVhEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_o3iYVBVhEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_o3iYVRVhEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_o3iYVhVhEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o3iYVxVhEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_o3iYWBVhEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_xEQiIBVhEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_xDYYYBVhEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_xEQiIRVhEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_6AI4ABVhEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_5_YDABVhEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_6AI4ARVhEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_o3iYWRVhEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_o3iYWhVhEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_o3iYWxVhEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o3iYXBVhEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_o3iYXRVhEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_o3iYXhVhEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_o3iYXxVhEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_o3iYYBVhEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o3iYYRVhEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_o3bDkBVhEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o3hKMRVhEeeMzp7YIeMZtw" x="2159" y="652" height="87"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_T_A7MBVqEeeMzp7YIeMZtw" type="Interface_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_T_A7MhVqEeeMzp7YIeMZtw" type="Interface_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_T_A7MxVqEeeMzp7YIeMZtw" type="Interface_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_T_A7NBVqEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_T_A7NRVqEeeMzp7YIeMZtw" type="Interface_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_T_A7NhVqEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_T_A7NxVqEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_T_A7OBVqEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T_A7ORVqEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_T_A7OhVqEeeMzp7YIeMZtw" type="Interface_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_aBtdcBVqEeeMzp7YIeMZtw" type="Operation_InterfaceOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_aBVC8BVqEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_aBtdcRVqEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_T_A7OxVqEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_T_A7PBVqEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_T_A7PRVqEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T_A7PhVqEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_T_A7PxVqEeeMzp7YIeMZtw" type="Interface_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_T_A7QBVqEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_T_A7QRVqEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_T_A7QhVqEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T_A7QxVqEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Interface" href="model.uml#_T-934BVqEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T_A7MRVqEeeMzp7YIeMZtw" x="2306" y="1253"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_wWO9gBVsEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_wWO9ghVsEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_wWO9gxVsEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_wWO9hBVsEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_wWO9hRVsEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_wWO9hhVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_wWO9hxVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_wWO9iBVsEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wWO9iRVsEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_wWO9ihVsEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_zWxWUBVsEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_zWDkoBVsEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_zWxWURVsEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_wWO9ixVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_wWO9jBVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_wWO9jRVsEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wWO9jhVsEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_wWO9jxVsEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_wWO9kBVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_wWO9kRVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_wWO9khVsEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wWO9kxVsEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_wWBiIBVsEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wWO9gRVsEeeMzp7YIeMZtw" x="2216" y="1415"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_15nGgRVsEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_15nGgxVsEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_15nGhBVsEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_15nGhRVsEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_15nGhhVsEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_15nGhxVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_15nGiBVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_15nGiRVsEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_15nGihVsEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_15nGixVsEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_6hM8sBVsEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_6gpjEBVsEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_6hM8sRVsEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_15nGjBVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_15nGjRVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_15nGjhVsEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_15nGjxVsEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_15nGkBVsEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_15nGkRVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_15nGkhVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_15nGkxVsEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_15nGlBVsEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_15nGgBVsEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_15nGghVsEeeMzp7YIeMZtw" x="2371" y="1415"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_TQvYkBVtEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_TQvYkhVtEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_TQvYkxVtEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_TQvYlBVtEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_TQvYlRVtEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_Fmv4UBVuEeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_Fl5jwBVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Fmv4URVuEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_TQvYlhVtEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_TQvYlxVtEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_TQvYmBVtEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TQvYmRVtEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_TQxNwBVtEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_BYH7wBVuEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_BXlJMBVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_BYH7wRVuEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_TQxNwRVtEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_TQxNwhVtEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_TQxNwxVtEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TQxNxBVtEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_TQxNxRVtEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_TQxNxhVtEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_TQxNxxVtEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_TQxNyBVtEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TQxNyRVtEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_TQsVQBVtEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TQvYkRVtEeeMzp7YIeMZtw" x="2611" y="1310"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_trQ6MRVuEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_trQ6MhVuEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_trQ6MxVuEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trQ6NBVuEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trQ6NRVuEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_trQ6NhVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trQ6NxVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trQ6OBVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trQ6ORVuEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trQ6OhVuEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_trQ6OxVuEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_trQ6JRVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trQ6PBVuEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_trQ6PRVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trQ6PhVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trQ6PxVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trQ6QBVuEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trQ6QRVuEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_trQ6QhVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trQ6QxVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trQ6RBVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trQ6RRVuEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_trQ6JBVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trQ6SRVuEeeMzp7YIeMZtw" x="2956" y="1271"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_trRhOxVuEeeMzp7YIeMZtw" type="Interface_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhPBVuEeeMzp7YIeMZtw" type="Interface_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhPRVuEeeMzp7YIeMZtw" type="Interface_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhPhVuEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trRhPxVuEeeMzp7YIeMZtw" type="Interface_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_trRhQBVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trRhQRVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trRhQhVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhQxVuEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trRhRBVuEeeMzp7YIeMZtw" type="Interface_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_trRhRRVuEeeMzp7YIeMZtw" type="Operation_InterfaceOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_trQTGBVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhRhVuEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_trRhRxVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trRhSBVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trRhSRVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhShVuEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trRhSxVuEeeMzp7YIeMZtw" type="Interface_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_trRhTBVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trRhTRVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trRhThVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhTxVuEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Interface" href="model.uml#_trQTFxVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhUxVuEeeMzp7YIeMZtw" x="3046" y="1109"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_trRhaxVuEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhbBVuEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhbRVuEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhbhVuEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trRhbxVuEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_trRhcBVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trRhcRVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trRhchVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhcxVuEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trRhdBVuEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_trRhdRVuEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_trQTFhVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhdhVuEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_trRhdxVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trRheBVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trRheRVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhehVuEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trRhexVuEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_trRhfBVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trRhfRVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trRhfhVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhfxVuEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_trQTFRVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhgxVuEeeMzp7YIeMZtw" x="3139" y="1275"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_trRhhBVuEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhhRVuEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhhhVuEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhhxVuEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trRhiBVuEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_trRhiRVuEeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_trQTERVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhihVuEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_trRhixVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trRhjBVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trRhjRVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhjhVuEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trRhjxVuEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_trRhkBVuEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_trQTExVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhkRVuEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_trRhkhVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trRhkxVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trRhlBVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhlRVuEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trRhlhVuEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_trRhlxVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trRhmBVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trRhmRVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhmhVuEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_trQTEBVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhnhVuEeeMzp7YIeMZtw" x="2838" y="959"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_7uQ60BVuEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_7uQ60RVuEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_7uQ60hVuEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_7uQ60xVuEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_7uQ61BVuEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_7uQ61RVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_7uQ61hVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_7uQ61xVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7uQ62BVuEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_7uQ62RVuEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_7uQ62hVuEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_7uPssRVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_7uQ62xVuEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_7uQ63BVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_7uQ63RVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_7uQ63hVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7uQ63xVuEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_7uQ64BVuEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_7uQ64RVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_7uQ64hVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_7uQ64xVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7uQ65BVuEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_7uPssBVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7uQ66BVuEeeMzp7YIeMZtw" x="2841" y="1127"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_OgQLcBV1EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_OgQLchV1EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_OgQLcxV1EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_OgQLdBV1EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_OgQLdRV1EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_SBongBV1EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_SBA8cBV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_SBongRV1EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_VfZH0BV1EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_Ve1uMBV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_VfZH0RV1EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_agXHUBV1EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_afrK0BV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_agXHURV1EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_hKpOABV1EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_hKSosBV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_hKpOARV1EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_hka_8BV1EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_hkFowBV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_hka_8RV1EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_hlW0EBV1EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_hk8kYBV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_hlW0ERV1EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_uwAQcBV1EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_uvbosBV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_uwAQcRV1EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_1l2t8BV1EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_1lKKYBV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_1l2t8RV1EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_ARw3ABV2EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_AQ-M0BV2EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_ARw3ARV2EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_JGnX0BV2EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_JFxqUBV2EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_JGnX0RV2EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_OgQLdhV1EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_OgQLdxV1EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_OgQLeBV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OgQLeRV1EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_OgSAoBV1EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_avHfkBV2EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_auaU8BV2EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_avHfkRV2EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_OgSAoRV1EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_OgSAohV1EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_OgSAoxV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OgSApBV1EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_OgSApRV1EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_OgSAphV1EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_OgSApxV1EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_OgSAqBV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OgSAqRV1EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_OgNIIBV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OgQLcRV1EeeMzp7YIeMZtw" x="990" y="834"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxSq4xV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxSq5BV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxSq5RV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxSq5hV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxSq5xV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxSq6BV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxSq6RV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxSq6hV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxSq6xV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxSq7BV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxSq7RV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxSq7hV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxSq7xV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxSq8BV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxSq8RV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxSq8hV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxSq8xV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxSq9BV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxSq9RV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxQ1sBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxSq-RV-EeeMzp7YIeMZtw" x="670" y="398" width="177" height="176"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxSq-hV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxSq-xV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxSq_BV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxSq_RV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxSq_hV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxSq_xV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQ1thV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxSrABV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxSrARV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQ1txV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxSrAhV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxSrAxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxSrBBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxSrBRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxSrBhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxSrBxV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxSrCBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxSrCRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxSrChV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxSrCxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxSrDBV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxSrDRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxSrDhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxSrDxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxSrEBV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxQ1tRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxSrFBV-EeeMzp7YIeMZtw" x="1702" y="198"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxTR8BV-EeeMzp7YIeMZtw" type="Interface_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTR8RV-EeeMzp7YIeMZtw" type="Interface_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTR8hV-EeeMzp7YIeMZtw" type="Interface_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTR8xV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTR9BV-EeeMzp7YIeMZtw" type="Interface_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTR9RV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTR9hV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTR9xV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTR-BV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTR-RV-EeeMzp7YIeMZtw" type="Interface_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxTR-hV-EeeMzp7YIeMZtw" type="Operation_InterfaceOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxRcxhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTR-xV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxTR_BV-EeeMzp7YIeMZtw" type="Operation_InterfaceOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxRcxxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTR_RV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxTR_hV-EeeMzp7YIeMZtw" type="Operation_InterfaceOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxRcyBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTR_xV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSABV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSARV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSAhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSAxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTSBBV-EeeMzp7YIeMZtw" type="Interface_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSBRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSBhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSBxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSCBV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Interface" href="model.uml#_QxRcxRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSDBV-EeeMzp7YIeMZtw" x="557" y="1010" width="140" height="131"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxTSIRV-EeeMzp7YIeMZtw" type="Interface_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSIhV-EeeMzp7YIeMZtw" type="Interface_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSIxV-EeeMzp7YIeMZtw" type="Interface_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSJBV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTSJRV-EeeMzp7YIeMZtw" type="Interface_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSJhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSJxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSKBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSKRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTSKhV-EeeMzp7YIeMZtw" type="Interface_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxTSKxV-EeeMzp7YIeMZtw" type="Operation_InterfaceOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxPnkhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSLBV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSLRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSLhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSLxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSMBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTSMRV-EeeMzp7YIeMZtw" type="Interface_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSMhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSMxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSNBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSNRV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Interface" href="model.uml#_QxPnkBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSORV-EeeMzp7YIeMZtw" x="215" y="995" width="139" height="145"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxTSQxV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSRBV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSRRV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSRhV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTSRxV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxTSSBV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPnmRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSSRV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSShV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSSxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSTBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSTRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTSThV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSTxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSUBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSURV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSUhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTSUxV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSVBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSVRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSVhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSVxV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxPnmBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSWxV-EeeMzp7YIeMZtw" x="920" y="357"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxTSXBV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSXRV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSXhV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSXxV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTSYBV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxTSYRV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQOthV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSYhV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSYxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSZBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSZRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSZhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTSZxV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSaBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSaRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSahV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSaxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTSbBV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSbRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSbhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSbxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTScBV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxQOtRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSdBV-EeeMzp7YIeMZtw" x="1273" y="413" width="240" height="199"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5HhV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5HxV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5IBV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5IRV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5IhV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxT5IxV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxSD3RV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5JBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5JRV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxSD3hV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5JhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5JxV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxSD3xV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5KBV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5KRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5KhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5KxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5LBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5LRV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxT5LhV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD4BV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5LxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5MBV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD4RV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5MRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5MhV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD4hV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5MxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5NBV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD4xV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5NRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5NhV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD5BV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5NxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5OBV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD5RV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5ORV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5OhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5OxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5PBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5PRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5PhV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5PxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5QBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5QRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5QhV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxSD2xV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5RhV-EeeMzp7YIeMZtw" x="442" y="603" width="189" height="249"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5TxV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5UBV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5URV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5UhV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5UxV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxT5VBV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAhRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5VRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5VhV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAhhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5VxV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5WBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5WRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5WhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5WxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5XBV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5XRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5XhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5XxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5YBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5YRV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5YhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5YxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5ZBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5ZRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5ZhV-EeeMzp7YIeMZtw" type="compartment_shape_display"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5ZxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5aBV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxPAhBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5aRV-EeeMzp7YIeMZtw" x="166" y="403" width="196" height="173"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5ahV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5axV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5bBV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5bRV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5bhV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5bxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5cBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5cRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5chV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5cxV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5dBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5dRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5dhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5dxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5eBV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5eRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5ehV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5exV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5fBV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxQOrxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5gBV-EeeMzp7YIeMZtw" x="1115" y="676"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5gRV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5ghV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5gxV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5hBV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5hRV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5hhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5hxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5iBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5iRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5ihV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxT5ixV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSq4hV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5jBV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5jRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5jhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5jxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5kBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5kRV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5khV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5kxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5lBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5lRV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxSq4BV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5mRV-EeeMzp7YIeMZtw" x="868" y="36" width="208" height="196"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5mhV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5mxV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5nBV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5nRV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5nhV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxT5nxV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQOoRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5oBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5oRV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQOohV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5ohV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5oxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5pBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5pRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5phV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5pxV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5qBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5qRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5qhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5qxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5rBV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5rRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5rhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5rxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5sBV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxQOoBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5tBV-EeeMzp7YIeMZtw" x="1551" y="201"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgERV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxUgEhV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxUgExV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgFBV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgFRV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QxUgFhV-EeeMzp7YIeMZtw" source="PapyrusCSSForceValue"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QxUgFxV-EeeMzp7YIeMZtw" key="collapsed" value="true"/> + </eAnnotations> + <children xmi:type="notation:Shape" xmi:id="_QxUgGBV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAiRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgGRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgGhV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAihV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgGxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgHBV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAixV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgHRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgHhV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAjRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgHxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgIBV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAjhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgIRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgIhV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAkBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgIxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgJBV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAjBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgJRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgJhV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAjxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgJxV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgKBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgKRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgKhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgKxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgLBV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QxUgLRV-EeeMzp7YIeMZtw" source="PapyrusCSSForceValue"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QxUgLhV-EeeMzp7YIeMZtw" key="collapsed" value="true"/> + </eAnnotations> + <children xmi:type="notation:Shape" xmi:id="_QxUgLxV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxPAkRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgMBV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgMRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgMhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgMxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgNBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgNRV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgNhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgNxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgOBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgORV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxPAiBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgPRV-EeeMzp7YIeMZtw" x="378" y="15" width="204" height="303"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgRxV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxUgSBV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxUgSRV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgShV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgSxV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxUgTBV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQOshV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgTRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgThV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQOsxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgTxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgUBV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQOtBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgURV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgUhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgUxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgVBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgVRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgVhV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgVxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgWBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgWRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgWhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgWxV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgXBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgXRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgXhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgXxV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxQOsRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgYxV-EeeMzp7YIeMZtw" x="1344" y="200"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgZBV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxUgZRV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxUgZhV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgZxV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgaBV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxUgaRV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxSD1RV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgahV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgaxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgbBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgbRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgbhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgbxV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxUgcBV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD1hV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgcRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgchV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD1xV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgcxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgdBV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD2BV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgdRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgdhV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD2RV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgdxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgeBV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD2hV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgeRV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgehV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgexV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgfBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgfRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgfhV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgfxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUggBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUggRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgghV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxSD0xV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUghhV-EeeMzp7YIeMZtw" x="691" y="683" width="161" height="167"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgnhV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxUgnxV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxUgoBV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgoRV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgohV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxUgoxV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQOpRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgpBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgpRV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQOphV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgphV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgpxV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQOpxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgqBV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgqRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgqhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgqxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgrBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgrRV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxUgrhV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQOqBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgrxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgsBV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQOqRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgsRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgshV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQOqhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgsxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgtBV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQOqxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgtRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgthV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQOrBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgtxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUguBV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQOrRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUguRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUguhV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQOrhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUguxV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgvBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgvRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgvhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgvxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgwBV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgwRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgwhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgwxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgxBV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxQOoxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgyBV-EeeMzp7YIeMZtw" x="176" y="660" width="168" height="257"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHMRV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHMhV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHMxV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHNBV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHNRV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxVHNhV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQ1tBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHNxV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHOBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHORV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHOhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHOxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHPBV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHPRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHPhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHPxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHQBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHQRV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHQhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHQxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHRBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHRRV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxQ1shV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHSRV-EeeMzp7YIeMZtw" x="1598" y="675"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHYRV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHYhV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHYxV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHZBV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHZRV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHZhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHZxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHaBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHaRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHahV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxVHaxV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1uhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHbBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHbRV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1vBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHbhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHbxV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1vhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHcBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHcRV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1vxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHchV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHcxV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1wBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHdBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHdRV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1wRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHdhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHdxV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1whV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHeBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHeRV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1wxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHehV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHexV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1xBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHfBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHfRV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1xRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHfhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHfxV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1xhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHgBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHgRV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1xxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHghV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHgxV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1yBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHhBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHhRV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1yRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHhhV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHhxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHiBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHiRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHihV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHixV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHjBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHjRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHjhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHjxV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxQ1uBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHkxV-EeeMzp7YIeMZtw" x="-69" y="660" width="177" height="412"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHlBV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHlRV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHlhV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHlxV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHmBV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxVHmRV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAgRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHmhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHmxV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAghV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHnBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHnRV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAgxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHnhV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHnxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHoBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHoRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHohV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHoxV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHpBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHpRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHphV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHpxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHqBV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHqRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHqhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHqxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHrBV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxPAgBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHsBV-EeeMzp7YIeMZtw" x="501" y="1216" width="151" height="141"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHsRV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHshV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHsxV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHtBV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHtRV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxVHthV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxSD0RV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHtxV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHuhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHuxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHvBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHvRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHvhV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHvxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHwBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHwRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHwhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHwxV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHxBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHxRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHxhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHxxV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxSD0BV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHyxV-EeeMzp7YIeMZtw" x="689" y="1216" width="136" height="136"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVuSxV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVuTBV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVuTRV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVuThV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVuTxV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxVuUBV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPnlxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVuURV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVuUhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVuUxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVuVBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVuVRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVuVhV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVuVxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVuWBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVuWRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVuWhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVuWxV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVuXBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVuXRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVuXhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVuXxV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxPnlRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVuYxV-EeeMzp7YIeMZtw" x="1309" y="673"/> + </children> + <styles xmi:type="notation:StringValueStyle" xmi:id="_AN9ZERVKEeeMzp7YIeMZtw" name="diagram_compatibility_version" stringValue="1.2.0"/> + <styles xmi:type="notation:DiagramStyle" xmi:id="_AN9ZEhVKEeeMzp7YIeMZtw"/> + <styles xmi:type="style:PapyrusViewStyle" xmi:id="_AN9ZExVKEeeMzp7YIeMZtw"> + <owner xmi:type="uml:Model" href="model.uml#_oX-IkBPOEeeugOD0sSUlEg"/> + </styles> + <element xmi:type="uml:Model" href="model.uml#_oX-IkBPOEeeugOD0sSUlEg"/> + <edges xmi:type="notation:Connector" xmi:id="_d3PDsBVNEeeMzp7YIeMZtw" type="Generalization_Edge" source="_td6vkBVLEeeMzp7YIeMZtw" target="_0EXCoBVMEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_d3PDsxVNEeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QfG6EBVPEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_d3PDtBVNEeeMzp7YIeMZtw" x="1" y="38"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_d3PDsRVNEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_d28IwBVNEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_d3PDshVNEeeMzp7YIeMZtw" points="[1619, 526, -643984, -643984]$[1652, 462, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eIzU0BVNEeeMzp7YIeMZtw" id="(0.63,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eIzU0RVNEeeMzp7YIeMZtw" id="(0.0,0.7734375)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_g_M6MBVNEeeMzp7YIeMZtw" type="Generalization_Edge" source="_3Heq0RVLEeeMzp7YIeMZtw" target="_0EXCoBVMEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_g_M6MxVNEeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QfjmABVPEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_g_M6NBVNEeeMzp7YIeMZtw" y="40"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_g_M6MRVNEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_g-wOQBVNEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_g_M6MhVNEeeMzp7YIeMZtw" points="[1714, 531, -643984, -643984]$[1711, 487, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_g_o_EBVNEeeMzp7YIeMZtw" id="(0.46,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_g_o_ERVNEeeMzp7YIeMZtw" id="(0.45925925925925926,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_iOWN4BVNEeeMzp7YIeMZtw" type="Generalization_Edge" source="_7yg2kRVLEeeMzp7YIeMZtw" target="_0EXCoBVMEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_iOWN4xVNEeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Qgc94BVPEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_iOWN5BVNEeeMzp7YIeMZtw" x="-1" y="38"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_iOWN4RVNEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_iN5h8BVNEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iOWN4hVNEeeMzp7YIeMZtw" points="[1832, 495, -643984, -643984]$[1787, 464, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iOy50BVNEeeMzp7YIeMZtw" id="(0.45,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iOy50RVNEeeMzp7YIeMZtw" id="(1.0,0.7890625)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_AhSn8RVOEeeMzp7YIeMZtw" type="Dependency_Edge" source="_0EXCoBVMEeeMzp7YIeMZtw" target="_9zOfMRVNEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_Ahbx4BVOEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Qf2g8BVPEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Ahbx4RVOEeeMzp7YIeMZtw" y="40"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_Ahbx4hVOEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QgTM4BVPEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Ahbx4xVOEeeMzp7YIeMZtw" y="60"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_AhSn8hVOEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_AhSn8BVOEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AhSn8xVOEeeMzp7YIeMZtw" points="[1709, 375, -643984, -643984]$[1709, 347, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AiLYwBVOEeeMzp7YIeMZtw" id="(0.12574850299401197,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AiLYwRVOEeeMzp7YIeMZtw" id="(1.0,0.5967741935483871)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_Gn1vcBVOEeeMzp7YIeMZtw" type="Association_Edge" source="_4sOJIRVNEeeMzp7YIeMZtw" target="_0EXCoBVMEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_Gn1vcxVOEeeMzp7YIeMZtw" type="Association_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3yl9ABVOEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Gn1vdBVOEeeMzp7YIeMZtw" x="1" y="-18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_Gn1vdRVOEeeMzp7YIeMZtw" type="Association_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3zCo8BVOEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Gn1vdhVOEeeMzp7YIeMZtw" y="19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_Gn1vdxVOEeeMzp7YIeMZtw" type="Association_TargetRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3zMZ8BVOEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Gn1veBVOEeeMzp7YIeMZtw" x="-5" y="21"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_Gn1veRVOEeeMzp7YIeMZtw" type="Association_SourceRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3zVj4BVOEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Gn1vehVOEeeMzp7YIeMZtw" x="-56" y="11"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_Gn1vexVOEeeMzp7YIeMZtw" type="Association_SourceMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3zfU4BVOEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Gn1vfBVOEeeMzp7YIeMZtw" x="43" y="19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_Gn1vfRVOEeeMzp7YIeMZtw" type="Association_TargetMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3zpF4BVOEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Gn1vfhVOEeeMzp7YIeMZtw" x="-43" y="-18"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_Gn1vcRVOEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Association" href="model.uml#_GXLdQBVOEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Gn1vchVOEeeMzp7YIeMZtw" points="[1384, 534, -643984, -643984]$[1652, 413, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GpLzQBVOEeeMzp7YIeMZtw" id="(0.22026431718061673,0.98)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GpLzQRVOEeeMzp7YIeMZtw" id="(0.844311377245509,0.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QsWsKhVPEeeMzp7YIeMZtw" type="Generalization_Edge" source="_QsWsSBVPEeeMzp7YIeMZtw" target="_QsWslBVPEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QsWsKxVPEeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_S0VFABVPEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QsWsLBVPEeeMzp7YIeMZtw" y="39"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QsWsLRVPEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_QsWr5BVPEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QsWsLhVPEeeMzp7YIeMZtw" points="[1027, 517, -643984, -643984]$[1024, 473, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QsWsLxVPEeeMzp7YIeMZtw" id="(0.46,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QsWsMBVPEeeMzp7YIeMZtw" id="(0.9880952380952381,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QsWsdhVPEeeMzp7YIeMZtw" type="Generalization_Edge" source="_QsWsXxVPEeeMzp7YIeMZtw" target="_QsWslBVPEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QsWsdxVPEeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_S1Oc4BVPEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QsWseBVPEeeMzp7YIeMZtw" y="39"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QsWseRVPEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_QsWr4hVPEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QsWsehVPEeeMzp7YIeMZtw" points="[932, 512, -643984, -643984]$[965, 448, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QsWsexVPEeeMzp7YIeMZtw" id="(0.62,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QsWsfBVPEeeMzp7YIeMZtw" id="(0.0,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_jbedcRVPEeeMzp7YIeMZtw" type="Dependency_Edge" source="_QsWslBVPEeeMzp7YIeMZtw" target="_9zOfMRVNEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_jbeddBVPEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_S_kH0BVTEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_jbeddRVPEeeMzp7YIeMZtw" x="-1" y="39"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_jbeddhVPEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_S_3CwBVTEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_jbeddxVPEeeMzp7YIeMZtw" x="-1" y="59"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_jbedchVPEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_jbedcBVPEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jbedcxVPEeeMzp7YIeMZtw" points="[1019, 371, -643984, -643984]$[1324, 295, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jcg_QBVPEeeMzp7YIeMZtw" id="(0.5515151515151515,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jcg_QRVPEeeMzp7YIeMZtw" id="(0.0,0.5967741935483871)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_YErngBVTEeeMzp7YIeMZtw" type="Dependency_Edge" source="_QsWslBVPEeeMzp7YIeMZtw" target="_6giNIBVSEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_YErngxVTEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_RZHmEBVhEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_YErnhBVTEeeMzp7YIeMZtw" y="38"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_YErnhRVTEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_RZ4bEBVhEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_YErnhhVTEeeMzp7YIeMZtw" y="59"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_YErngRVTEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_YEh2gBVTEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YErnghVTEeeMzp7YIeMZtw" points="[1143, 420, -643984, -643984]$[1324, 320, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YFuJUBVTEeeMzp7YIeMZtw" id="(1.0,0.07407407407407407)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YFuJURVTEeeMzp7YIeMZtw" id="(0.0,0.22388059701492538)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_a_WB0BVTEeeMzp7YIeMZtw" type="Dependency_Edge" source="_0EXCoBVMEeeMzp7YIeMZtw" target="_6giNIBVSEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_a_WB0xVTEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_RbbTMBVhEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_a_WB1BVTEeeMzp7YIeMZtw" x="-1" y="38"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_a_WB1RVTEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_RbsY8BVhEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_a_WB1hVTEeeMzp7YIeMZtw" x="-1" y="58"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_a_WB0RVTEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_a_MQ0BVTEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_a_WB0hVTEeeMzp7YIeMZtw" points="[1652, 405, -643984, -643984]$[1424, 326, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bAFosBVTEeeMzp7YIeMZtw" id="(0.0,0.15625)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bAFosRVTEeeMzp7YIeMZtw" id="(1.0,0.31343283582089554)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_tsxKQRVTEeeMzp7YIeMZtw" type="Dependency_Edge" source="_qOaNARVTEeeMzp7YIeMZtw" target="_QsWslBVPEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_tsxKRBVTEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_RaeQ8BVhEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_tsxKRRVTEeeMzp7YIeMZtw" x="1" y="39"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_tsxKRhVTEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Ra8yEBVhEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_tsxKRxVTEeeMzp7YIeMZtw" x="-1" y="58"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_tsxKQhVTEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_tsxKQBVTEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tsxKQxVTEeeMzp7YIeMZtw" points="[1379, 541, -643984, -643984]$[1143, 468, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ttqiIBVTEeeMzp7YIeMZtw" id="(0.45,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ttqiIRVTEeeMzp7YIeMZtw" id="(1.0,0.7185185185185186)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_aeMUMBVhEeeMzp7YIeMZtw" type="Dependency_Edge" source="_QsWr8xVPEeeMzp7YIeMZtw" target="_QsWslBVPEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_aeMUMxVhEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QNbI0BV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_aeMUNBVhEeeMzp7YIeMZtw" y="40"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_aeMUNRVhEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QN6RABV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_aeMUNhVhEeeMzp7YIeMZtw" y="60"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_aeMUMRVhEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_aeJQ4BVhEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aeMUMhVhEeeMzp7YIeMZtw" points="[843, 524, -643984, -643984]$[1024, 524, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_afLLoBVhEeeMzp7YIeMZtw" id="(0.9955947136563876,0.51)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_afLLoRVhEeeMzp7YIeMZtw" id="(0.0,0.37037037037037035)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_8dGJABVpEeeMzp7YIeMZtw" type="Association_Edge" source="_QsWslBVPEeeMzp7YIeMZtw" target="_o3hKMBVhEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_8dGJAxVpEeeMzp7YIeMZtw" type="Association_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QK6AUBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_8dGJBBVpEeeMzp7YIeMZtw" x="-2" y="-17"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_8dGJBRVpEeeMzp7YIeMZtw" type="Association_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QLVeIBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_8dGJBhVpEeeMzp7YIeMZtw" x="1" y="18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_8dGJBxVpEeeMzp7YIeMZtw" type="Association_TargetRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QL3poBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_8dGJCBVpEeeMzp7YIeMZtw" x="216" y="-18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_8dGJCRVpEeeMzp7YIeMZtw" type="Association_SourceRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QMQrMBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_8dGJChVpEeeMzp7YIeMZtw" x="-216" y="19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_8dGJCxVpEeeMzp7YIeMZtw" type="Association_SourceMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QMmpcBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_8dGJDBVpEeeMzp7YIeMZtw" x="214" y="18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_8dGJDRVpEeeMzp7YIeMZtw" type="Association_TargetMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QM8AoBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_8dGJDhVpEeeMzp7YIeMZtw" x="-215" y="-17"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_8dGJARVpEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Association" href="model.uml#_8clysBVpEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8dGJAhVpEeeMzp7YIeMZtw" points="[1083, 449, -643984, -643984]$[1357, 213, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8dl4QBVpEeeMzp7YIeMZtw" id="(0.3575757575757576,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8dl4QRVpEeeMzp7YIeMZtw" id="(0.0,0.4827586206896552)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_IM27wBVqEeeMzp7YIeMZtw" type="Association_Edge" source="_0EXCoBVMEeeMzp7YIeMZtw" target="_o3hKMBVhEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_IM4w8BVqEeeMzp7YIeMZtw" type="Association_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_JeN18BVqEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_IM4w8RVqEeeMzp7YIeMZtw" y="-20"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_IM4w8hVqEeeMzp7YIeMZtw" type="Association_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_JeuMQBVqEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_IM4w8xVqEeeMzp7YIeMZtw" y="20"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_IM4w9BVqEeeMzp7YIeMZtw" type="Association_TargetRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Je-q8BVqEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_IM4w9RVqEeeMzp7YIeMZtw" x="56" y="-20"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_IM4w9hVqEeeMzp7YIeMZtw" type="Association_SourceRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_JfN7gBVqEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_IM4w9xVqEeeMzp7YIeMZtw" x="-56" y="19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_IM4w-BVqEeeMzp7YIeMZtw" type="Association_SourceMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_JfdMEBVqEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_IM4w-RVqEeeMzp7YIeMZtw" x="56" y="20"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_IM4w-hVqEeeMzp7YIeMZtw" type="Association_TargetMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Jf1mkBVqEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_IM4w-xVqEeeMzp7YIeMZtw" x="-56" y="-18"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_IM27wRVqEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Association" href="model.uml#_IMUJMBVqEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IM27whVqEeeMzp7YIeMZtw" points="[1735, 454, -643984, -643984]$[1512, 209, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_INbjgBVqEeeMzp7YIeMZtw" id="(0.3652694610778443,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_INbjgRVqEeeMzp7YIeMZtw" id="(1.0,0.42528735632183906)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_CBI5ABVtEeeMzp7YIeMZtw" type="Dependency_Edge" source="_15nGgRVsEeeMzp7YIeMZtw" target="_T_A7MBVqEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_CBKuMBVtEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_ppUHoBVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_CBKuMRVtEeeMzp7YIeMZtw" x="-1" y="38"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_CBKuMhVtEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_ppqF4BVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_CBKuMxVtEeeMzp7YIeMZtw" y="59"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_CBI5ARVtEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_CBHq4BVtEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CBI5AhVtEeeMzp7YIeMZtw" points="[1924, 843, -643984, -643984]$[1890, 792, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CB8xUBVtEeeMzp7YIeMZtw" id="(0.30985915492957744,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CB8xURVtEeeMzp7YIeMZtw" id="(0.5434782608695652,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_PdCdcBVtEeeMzp7YIeMZtw" type="Dependency_Edge" source="_wWO9gBVsEeeMzp7YIeMZtw" target="_T_A7MBVqEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_PdDrkBVtEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_pp7ysBVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_PdDrkRVtEeeMzp7YIeMZtw" y="38"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_PdDrkhVtEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_pqPUsBVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_PdDrkxVtEeeMzp7YIeMZtw" y="58"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_PdCdcRVtEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_Pc_aIBVtEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PdCdchVtEeeMzp7YIeMZtw" points="[1789, 843, -643984, -643984]$[1815, 792, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PduZ8BVtEeeMzp7YIeMZtw" id="(0.765625,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PduZ8RVtEeeMzp7YIeMZtw" id="(0.2753623188405797,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_RM6qMBVuEeeMzp7YIeMZtw" type="Association_Edge" source="_TQvYkBVtEeeMzp7YIeMZtw" target="_T_A7MBVqEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_RM7RQBVuEeeMzp7YIeMZtw" type="Association_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_mTnXIBVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_RM7RQRVuEeeMzp7YIeMZtw" x="-1" y="-18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_RM7RQhVuEeeMzp7YIeMZtw" type="Association_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_mUBm0BVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_RM7RQxVuEeeMzp7YIeMZtw" x="-2" y="17"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_RM7RRBVuEeeMzp7YIeMZtw" type="Association_TargetRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_mUTToBVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_RM7RRRVuEeeMzp7YIeMZtw" x="117" y="-63"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_RM7RRhVuEeeMzp7YIeMZtw" type="Association_SourceRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_mUjLQBVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_RM7RRxVuEeeMzp7YIeMZtw" x="-5" y="12"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_RM7RSBVuEeeMzp7YIeMZtw" type="Association_SourceMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_mU04EBVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_RM7RSRVuEeeMzp7YIeMZtw" x="20" y="18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_RM7RShVuEeeMzp7YIeMZtw" type="Association_TargetMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_mVMEcBVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_RM7RSxVuEeeMzp7YIeMZtw" x="-21" y="-19"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_RM6qMRVuEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Association" href="model.uml#_RMhooBVuEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RM6qMhVuEeeMzp7YIeMZtw" points="[2076, 810, -643984, -643984]$[1953, 739, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RNlYkBVuEeeMzp7YIeMZtw" id="(0.0,0.7087378640776699)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RNlYkRVuEeeMzp7YIeMZtw" id="(1.0,0.5225225225225225)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_trQ6JhVuEeeMzp7YIeMZtw" type="Dependency_Edge" source="_trRhaxVuEeeMzp7YIeMZtw" target="_trRhOxVuEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_trQ6JxVuEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_trQ6KBVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trQ6KRVuEeeMzp7YIeMZtw" x="-1" y="38"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_trQ6KhVuEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_trQ6KxVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trQ6LBVuEeeMzp7YIeMZtw" y="59"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_trQ6LRVuEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_trPsABVuEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_trQ6LhVuEeeMzp7YIeMZtw" points="[2289, 766, -643984, -643984]$[2255, 715, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_trQ6LxVuEeeMzp7YIeMZtw" id="(0.305,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_trQ6MBVuEeeMzp7YIeMZtw" id="(0.5408163265306123,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_trRhMBVuEeeMzp7YIeMZtw" type="Dependency_Edge" source="_trQ6MRVuEeeMzp7YIeMZtw" target="_trRhOxVuEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhMRVuEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_trRhMhVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhMxVuEeeMzp7YIeMZtw" y="38"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhNBVuEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_trRhNRVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhNhVuEeeMzp7YIeMZtw" y="58"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_trRhNxVuEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_trQTFBVuEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_trRhOBVuEeeMzp7YIeMZtw" points="[2154, 766, -643984, -643984]$[2180, 715, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_trRhORVuEeeMzp7YIeMZtw" id="(0.765625,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_trRhOhVuEeeMzp7YIeMZtw" id="(0.2753623188405797,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_trRhVBVuEeeMzp7YIeMZtw" type="Association_Edge" source="_trRhhBVuEeeMzp7YIeMZtw" target="_trRhOxVuEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhVRVuEeeMzp7YIeMZtw" type="Association_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_trRhVhVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhVxVuEeeMzp7YIeMZtw" x="-1" y="-18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhWBVuEeeMzp7YIeMZtw" type="Association_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_trRhWRVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhWhVuEeeMzp7YIeMZtw" x="-2" y="17"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhWxVuEeeMzp7YIeMZtw" type="Association_TargetRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_trRhXBVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhXRVuEeeMzp7YIeMZtw" x="117" y="-63"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhXhVuEeeMzp7YIeMZtw" type="Association_SourceRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_trRhXxVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhYBVuEeeMzp7YIeMZtw" x="-5" y="12"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhYRVuEeeMzp7YIeMZtw" type="Association_SourceMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_trRhYhVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhYxVuEeeMzp7YIeMZtw" x="20" y="18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhZBVuEeeMzp7YIeMZtw" type="Association_TargetMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_trRhZRVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhZhVuEeeMzp7YIeMZtw" x="-21" y="-19"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_trRhZxVuEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Association" href="model.uml#_trQ6IBVuEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_trRhaBVuEeeMzp7YIeMZtw" points="[2174, 573, -643984, -643984]$[2051, 502, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_trRhaRVuEeeMzp7YIeMZtw" id="(0.8888888888888888,1.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_trRhahVuEeeMzp7YIeMZtw" id="(0.389937106918239,0.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_BMxx8RVvEeeMzp7YIeMZtw" type="Dependency_Edge" source="_7uQ60BVuEeeMzp7YIeMZtw" target="_trRhOxVuEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_BMxx9BVvEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_HxRkQBVwEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_BMxx9RVvEeeMzp7YIeMZtw" x="1" y="38"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_BMxx9hVvEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Hx-u4BVwEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_BMxx9xVvEeeMzp7YIeMZtw" x="1" y="58"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_BMxx8hVvEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_BMxx8BVvEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BMxx8xVvEeeMzp7YIeMZtw" points="[1968, 789, -643984, -643984]$[2245, 718, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BNrw4BVvEeeMzp7YIeMZtw" id="(0.993421052631579,0.61)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BNrw4RVvEeeMzp7YIeMZtw" id="(0.0,0.5855855855855856)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxTSDRV-EeeMzp7YIeMZtw" type="Dependency_Edge" source="_QxVHlBV-EeeMzp7YIeMZtw" target="_QxTR8BV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSDhV-EeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSDxV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSEBV-EeeMzp7YIeMZtw" y="39"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSERV-EeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSEhV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSExV-EeeMzp7YIeMZtw" x="-1" y="58"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxTSFBV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_QxRcwBV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxTSFRV-EeeMzp7YIeMZtw" points="[519, 1169, -643984, -643984]$[519, 1092, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSFhV-EeeMzp7YIeMZtw" id="(0.44370860927152317,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSFxV-EeeMzp7YIeMZtw" id="(0.19285714285714287,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxTSGBV-EeeMzp7YIeMZtw" type="Dependency_Edge" source="_QxUgnhV-EeeMzp7YIeMZtw" target="_QxTSIRV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSGRV-EeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSGhV-EeeMzp7YIeMZtw" y="40"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSGxV-EeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSHBV-EeeMzp7YIeMZtw" y="60"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxTSHRV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_QxPAhxV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxTSHhV-EeeMzp7YIeMZtw" points="[291, 907, -643984, -643984]$[290, 985, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSHxV-EeeMzp7YIeMZtw" id="(0.7440476190476191,1.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSIBV-EeeMzp7YIeMZtw" id="(0.6115107913669064,0.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxTSOhV-EeeMzp7YIeMZtw" type="Dependency_Edge" source="_QxT5TxV-EeeMzp7YIeMZtw" target="_QxUgERV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSOxV-EeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSPBV-EeeMzp7YIeMZtw" y="40"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSPRV-EeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSPhV-EeeMzp7YIeMZtw" y="60"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxTSPxV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_QxPnkxV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxTSQBV-EeeMzp7YIeMZtw" points="[253, 393, -643984, -643984]$[368, 308, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSQRV-EeeMzp7YIeMZtw" id="(0.49489795918367346,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSQhV-EeeMzp7YIeMZtw" id="(0.0,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxTSdRV-EeeMzp7YIeMZtw" type="Generalization_Edge" source="_QxT5HhV-EeeMzp7YIeMZtw" target="_QxT5TxV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSdhV-EeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSdxV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSeBV-EeeMzp7YIeMZtw" y="39"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxTSeRV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_QxSD3BV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxTSehV-EeeMzp7YIeMZtw" points="[427, 677, -643984, -643984]$[352, 566, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSexV-EeeMzp7YIeMZtw" id="(0.1111111111111111,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSfBV-EeeMzp7YIeMZtw" id="(1.0,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxTSfRV-EeeMzp7YIeMZtw" type="Association_Edge" source="_QxTSQxV-EeeMzp7YIeMZtw" target="_QxUgERV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSfhV-EeeMzp7YIeMZtw" type="Association_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSfxV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSgBV-EeeMzp7YIeMZtw" y="-19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSgRV-EeeMzp7YIeMZtw" type="Association_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSghV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSgxV-EeeMzp7YIeMZtw" x="-1" y="18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTShBV-EeeMzp7YIeMZtw" type="Association_TargetRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTShRV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTShhV-EeeMzp7YIeMZtw" x="51" y="-19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTShxV-EeeMzp7YIeMZtw" type="Association_SourceRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSiBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSiRV-EeeMzp7YIeMZtw" x="-52" y="19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSihV-EeeMzp7YIeMZtw" type="Association_SourceMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSixV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSjBV-EeeMzp7YIeMZtw" x="51" y="18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSjRV-EeeMzp7YIeMZtw" type="Association_TargetMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSjhV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSjxV-EeeMzp7YIeMZtw" x="-52" y="-18"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxTSkBV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Association" href="model.uml#_QxOZdBV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxTSkRV-EeeMzp7YIeMZtw" points="[903, 338, -643984, -643984]$[572, 230, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSkhV-EeeMzp7YIeMZtw" id="(0.0,0.35)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSkxV-EeeMzp7YIeMZtw" id="(1.0,0.7425742574257426)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxTSlBV-EeeMzp7YIeMZtw" type="Generalization_Edge" source="_QxT5ahV-EeeMzp7YIeMZtw" target="_QxTSXBV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSlRV-EeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSlhV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSlxV-EeeMzp7YIeMZtw" x="1" y="38"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxTSmBV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_QxQOsBV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxTSmRV-EeeMzp7YIeMZtw" points="[1424, 636, -643984, -643984]$[1515, 572, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSmhV-EeeMzp7YIeMZtw" id="(0.5982142857142857,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSmxV-EeeMzp7YIeMZtw" id="(0.0,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxTSnBV-EeeMzp7YIeMZtw" type="Association_Edge" source="_QxT5gRV-EeeMzp7YIeMZtw" target="_QxUgERV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSnRV-EeeMzp7YIeMZtw" type="Association_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSnhV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSnxV-EeeMzp7YIeMZtw" x="-1" y="-18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSoBV-EeeMzp7YIeMZtw" type="Association_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSoRV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSohV-EeeMzp7YIeMZtw" x="-2" y="17"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSoxV-EeeMzp7YIeMZtw" type="Association_TargetRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSpBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSpRV-EeeMzp7YIeMZtw" x="44" y="-19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSphV-EeeMzp7YIeMZtw" type="Association_SourceRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSpxV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSqBV-EeeMzp7YIeMZtw" x="-43" y="18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSqRV-EeeMzp7YIeMZtw" type="Association_SourceMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSqhV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSqxV-EeeMzp7YIeMZtw" x="44" y="18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSrBV-EeeMzp7YIeMZtw" type="Association_TargetMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSrRV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSrhV-EeeMzp7YIeMZtw" x="-43" y="-19"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxTSrxV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Association" href="model.uml#_QxSD5hV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxTSsBV-EeeMzp7YIeMZtw" points="[862, 51, -643984, -643984]$[572, 58, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSsRV-EeeMzp7YIeMZtw" id="(0.0,0.1683673469387755)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSshV-EeeMzp7YIeMZtw" id="(1.0,0.17491749174917492)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxT5ABV-EeeMzp7YIeMZtw" type="Association_Edge" source="_QxTSQxV-EeeMzp7YIeMZtw" target="_QxT5gRV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5ARV-EeeMzp7YIeMZtw" type="Association_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxT5AhV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5AxV-EeeMzp7YIeMZtw" x="1" y="-18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5BBV-EeeMzp7YIeMZtw" type="Association_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxT5BRV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5BhV-EeeMzp7YIeMZtw" y="19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5BxV-EeeMzp7YIeMZtw" type="Association_TargetRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxT5CBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5CRV-EeeMzp7YIeMZtw" x="15" y="-18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5ChV-EeeMzp7YIeMZtw" type="Association_SourceRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxT5CxV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5DBV-EeeMzp7YIeMZtw" x="-15" y="19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5DRV-EeeMzp7YIeMZtw" type="Association_SourceMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxT5DhV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5DxV-EeeMzp7YIeMZtw" x="15" y="19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5EBV-EeeMzp7YIeMZtw" type="Association_TargetMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxT5ERV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5EhV-EeeMzp7YIeMZtw" x="-15" y="-18"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxT5ExV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Association" href="model.uml#_QxOZeBV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxT5FBV-EeeMzp7YIeMZtw" points="[935, 317, -643984, -643984]$[928, 214, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxT5FRV-EeeMzp7YIeMZtw" id="(0.23958333333333334,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxT5FhV-EeeMzp7YIeMZtw" id="(0.3173076923076923,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxT5FxV-EeeMzp7YIeMZtw" type="Generalization_Edge" source="_QxUgnhV-EeeMzp7YIeMZtw" target="_QxT5TxV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5GBV-EeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5GRV-EeeMzp7YIeMZtw" y="40"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxT5GhV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_QxQOpBV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxT5GxV-EeeMzp7YIeMZtw" points="[213, 650, -643984, -643984]$[217, 566, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxT5HBV-EeeMzp7YIeMZtw" id="(0.27976190476190477,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxT5HRV-EeeMzp7YIeMZtw" id="(0.3112244897959184,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxT5RxV-EeeMzp7YIeMZtw" type="Generalization_Edge" source="_QxVHYRV-EeeMzp7YIeMZtw" target="_QxT5TxV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5SBV-EeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxT5SRV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5ShV-EeeMzp7YIeMZtw" y="39"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxT5SxV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_QxQ1uRV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxT5TBV-EeeMzp7YIeMZtw" points="[104, 683, -643984, -643984]$[156, 566, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxT5TRV-EeeMzp7YIeMZtw" id="(0.6101694915254238,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxT5ThV-EeeMzp7YIeMZtw" id="(0.0,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxT5tRV-EeeMzp7YIeMZtw" type="Generalization_Edge" source="_QxUgZBV-EeeMzp7YIeMZtw" target="_QxSq4xV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5thV-EeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5txV-EeeMzp7YIeMZtw" y="40"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxT5uBV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_QxSD1BV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxT5uRV-EeeMzp7YIeMZtw" points="[717, 673, -643984, -643984]$[717, 564, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxT5uhV-EeeMzp7YIeMZtw" id="(0.2236024844720497,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxUgEBV-EeeMzp7YIeMZtw" id="(0.3220338983050847,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxUgPhV-EeeMzp7YIeMZtw" type="Dependency_Edge" source="_QxSq4xV-EeeMzp7YIeMZtw" target="_QxUgERV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxUgPxV-EeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgQBV-EeeMzp7YIeMZtw" y="40"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxUgQRV-EeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgQhV-EeeMzp7YIeMZtw" y="60"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxUgQxV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_QxPnlBV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxUgRBV-EeeMzp7YIeMZtw" points="[660, 412, -643984, -643984]$[572, 308, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxUgRRV-EeeMzp7YIeMZtw" id="(0.0,0.13636363636363635)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxUgRhV-EeeMzp7YIeMZtw" id="(1.0,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxVHIBV-EeeMzp7YIeMZtw" type="Dependency_Edge" source="_QxVHsRV-EeeMzp7YIeMZtw" target="_QxTR8BV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHIRV-EeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_L2DOABWAEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHIhV-EeeMzp7YIeMZtw" x="-1" y="38"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHIxV-EeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_L3NEkBWAEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHJBV-EeeMzp7YIeMZtw" x="-1" y="57"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxVHJRV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_QxOZcxV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxVHJhV-EeeMzp7YIeMZtw" points="[716, 1196, -643984, -643984]$[632, 1108, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxVHJxV-EeeMzp7YIeMZtw" id="(0.3553921568627451,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxVHKBV-EeeMzp7YIeMZtw" id="(0.65,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxVHKRV-EeeMzp7YIeMZtw" type="Generalization_Edge" source="_QxVuSxV-EeeMzp7YIeMZtw" target="_QxTSXBV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHKhV-EeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxVHKxV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHLBV-EeeMzp7YIeMZtw" y="40"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxVHLRV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_QxPnlhV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxVHLhV-EeeMzp7YIeMZtw" points="[1589, 633, -643984, -643984]$[1589, 572, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxVHLxV-EeeMzp7YIeMZtw" id="(0.19895287958115182,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxVHMBV-EeeMzp7YIeMZtw" id="(0.30833333333333335,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxVHShV-EeeMzp7YIeMZtw" type="Association_Edge" source="_QxTSIRV-EeeMzp7YIeMZtw" target="_QxTR8BV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHSxV-EeeMzp7YIeMZtw" type="Association_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxVHTBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHTRV-EeeMzp7YIeMZtw" x="-1" y="-18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHThV-EeeMzp7YIeMZtw" type="Association_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxVHTxV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHUBV-EeeMzp7YIeMZtw" x="1" y="19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHURV-EeeMzp7YIeMZtw" type="Association_TargetRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxVHUhV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHUxV-EeeMzp7YIeMZtw" x="33" y="-18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHVBV-EeeMzp7YIeMZtw" type="Association_SourceRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxVHVRV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHVhV-EeeMzp7YIeMZtw" x="-97" y="17"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHVxV-EeeMzp7YIeMZtw" type="Association_SourceMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxVHWBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHWRV-EeeMzp7YIeMZtw" x="35" y="19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHWhV-EeeMzp7YIeMZtw" type="Association_TargetMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxVHWxV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHXBV-EeeMzp7YIeMZtw" x="-13" y="3"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxVHXRV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Association" href="model.uml#_QxRcwRV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxVHXhV-EeeMzp7YIeMZtw" points="[334, 1039, -643984, -643984]$[539, 1024, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxVHXxV-EeeMzp7YIeMZtw" id="(1.0,0.4298850574712644)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxVHYBV-EeeMzp7YIeMZtw" id="(0.0,0.3511450381679389)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxVHzBV-EeeMzp7YIeMZtw" type="Generalization_Edge" source="_QxVHMRV-EeeMzp7YIeMZtw" target="_QxTSXBV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHzRV-EeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxVHzhV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHzxV-EeeMzp7YIeMZtw" x="-1" y="38"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxVH0BV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_QxQ1sxV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxVH0RV-EeeMzp7YIeMZtw" points="[1686, 645, -643984, -643984]$[1601, 581, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxVH0hV-EeeMzp7YIeMZtw" id="(0.1242603550295858,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxVH0xV-EeeMzp7YIeMZtw" id="(1.0,1.0)"/> + </edges> +</notation:Diagram> diff --git a/model.uml b/model.uml new file mode 100644 index 0000000..2dd5385 --- /dev/null +++ b/model.uml @@ -0,0 +1,377 @@ +<?xml version="1.0" encoding="UTF-8"?> +<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_oX-IkBPOEeeugOD0sSUlEg" name="RootElement"> + <packagedElement xmi:type="uml:Class" xmi:id="_tdw-kBVLEeeMzp7YIeMZtw" name="Starters"> + <generalization xmi:type="uml:Generalization" xmi:id="_d28IwBVNEeeMzp7YIeMZtw" general="_0EEHsBVMEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_3Heq0BVLEeeMzp7YIeMZtw" name="MainDishes"> + <generalization xmi:type="uml:Generalization" xmi:id="_g-wOQBVNEeeMzp7YIeMZtw" general="_0EEHsBVMEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_7yg2kBVLEeeMzp7YIeMZtw" name="Desserts"> + <generalization xmi:type="uml:Generalization" xmi:id="_iN5h8BVNEeeMzp7YIeMZtw" general="_0EEHsBVMEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_0EEHsBVMEeeMzp7YIeMZtw" name="Dishe"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_-UmjYBVMEeeMzp7YIeMZtw" name="Name" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_FrEaoBVNEeeMzp7YIeMZtw" name="Price" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EInt"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_OAX74BVREeeMzp7YIeMZtw" name="disheType" visibility="private" type="_-j608BVQEeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_IMVXUhVqEeeMzp7YIeMZtw" name="ordervisitor" type="_o3bDkBVhEeeMzp7YIeMZtw" association="_IMUJMBVqEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_4sOJIBVNEeeMzp7YIeMZtw" name="FactoryDishe"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_GnP5kBVOEeeMzp7YIeMZtw" name="dishes" type="_0EEHsBVMEeeMzp7YIeMZtw" association="_GXLdQBVOEeeMzp7YIeMZtw"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_5QxLMBVOEeeMzp7YIeMZtw" name="createDishes"> + <ownedParameter xmi:type="uml:Parameter" xmi:id="_Cxjk8BVPEeeMzp7YIeMZtw" name="dishName"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/> + </ownedParameter> + </ownedOperation> + </packagedElement> + <packagedElement xmi:type="uml:Interface" xmi:id="_9zOfMBVNEeeMzp7YIeMZtw" name="Item"/> + <packagedElement xmi:type="uml:Dependency" xmi:id="_AhSn8BVOEeeMzp7YIeMZtw" client="_oX-IkBPOEeeugOD0sSUlEg" supplier="_9zOfMBVNEeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Association" xmi:id="_GXLdQBVOEeeMzp7YIeMZtw" memberEnd="_GnP5kBVOEeeMzp7YIeMZtw _GnZDgBVOEeeMzp7YIeMZtw"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GXLdQRVOEeeMzp7YIeMZtw" source="org.eclipse.papyrus"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GXLdQhVOEeeMzp7YIeMZtw" key="nature" value="UML_Nature"/> + </eAnnotations> + <ownedEnd xmi:type="uml:Property" xmi:id="_GnZDgBVOEeeMzp7YIeMZtw" name="factorydishes" type="_4sOJIBVNEeeMzp7YIeMZtw" association="_GXLdQBVOEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QsWr4RVPEeeMzp7YIeMZtw" name="FullMeal"> + <generalization xmi:type="uml:Generalization" xmi:id="_QsWr4hVPEeeMzp7YIeMZtw" general="_QsWr7BVPEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QsWr4xVPEeeMzp7YIeMZtw" name="HalfMeal"> + <generalization xmi:type="uml:Generalization" xmi:id="_QsWr5BVPEeeMzp7YIeMZtw" general="_QsWr7BVPEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QsWr7BVPEeeMzp7YIeMZtw" name="Meal"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QsWr7RVPEeeMzp7YIeMZtw" name="name" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_SBh5oBVQEeeMzp7YIeMZtw" name="meal" visibility="private" type="_D3KFoBVQEeeMzp7YIeMZtw" isUnique="false"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_bQOoYBVREeeMzp7YIeMZtw" name="mealType" visibility="private" type="_-j608BVQEeeMzp7YIeMZtw" isUnique="false"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_8co2AhVpEeeMzp7YIeMZtw" name="ordervisitor" type="_o3bDkBVhEeeMzp7YIeMZtw" association="_8clysBVpEeeMzp7YIeMZtw"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_uKTFsBVREeeMzp7YIeMZtw" name="accept"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QsWr7xVPEeeMzp7YIeMZtw" name="MealFactory"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QsWr8RVPEeeMzp7YIeMZtw" name="createMeal"> + <ownedParameter xmi:type="uml:Parameter" xmi:id="_QsWr8hVPEeeMzp7YIeMZtw" name="dishName"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/> + </ownedParameter> + </ownedOperation> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_jbedcBVPEeeMzp7YIeMZtw" client="_oX-IkBPOEeeugOD0sSUlEg" supplier="_9zOfMBVNEeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Class" xmi:id="_D3KFoBVQEeeMzp7YIeMZtw" name="ArrayList"/> + <packagedElement xmi:type="uml:Enumeration" xmi:id="_-j608BVQEeeMzp7YIeMZtw" name="ItemType"> + <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_CVrPUBVREeeMzp7YIeMZtw" name="Standard"/> + <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_FD5JEBVREeeMzp7YIeMZtw" name="Vegetarian"/> + <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_GTVXsBVREeeMzp7YIeMZtw" name="GlutenFree"/> + </packagedElement> + <packagedElement xmi:type="uml:Interface" xmi:id="_31XnYBVSEeeMzp7YIeMZtw" name="Visitor"/> + <packagedElement xmi:type="uml:Interface" xmi:id="_6gYcIBVSEeeMzp7YIeMZtw" name="Visitable"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_ESR0ABVTEeeMzp7YIeMZtw" name="accept"> + <ownedParameter xmi:type="uml:Parameter" xmi:id="_Qc4vsBVTEeeMzp7YIeMZtw" name="visitor" type="_31XnYBVSEeeMzp7YIeMZtw"/> + </ownedOperation> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_YEh2gBVTEeeMzp7YIeMZtw" client="_QsWr7BVPEeeMzp7YIeMZtw" supplier="_6gYcIBVSEeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Dependency" xmi:id="_a_MQ0BVTEeeMzp7YIeMZtw" client="_0EEHsBVMEeeMzp7YIeMZtw" supplier="_6gYcIBVSEeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Class" xmi:id="_qOaNABVTEeeMzp7YIeMZtw" name="Order"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_hwhkQBVfEeeMzp7YIeMZtw" name="listMeal" visibility="private" type="_D3KFoBVQEeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_xVpCgBVgEeeMzp7YIeMZtw" name="listDishes" visibility="private" type="_D3KFoBVQEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_tsxKQBVTEeeMzp7YIeMZtw" client="_qOaNABVTEeeMzp7YIeMZtw" supplier="_QsWr7BVPEeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Dependency" xmi:id="_aeJQ4BVhEeeMzp7YIeMZtw" client="_QsWr7xVPEeeMzp7YIeMZtw" supplier="_QsWr7BVPEeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Class" xmi:id="_o3bDkBVhEeeMzp7YIeMZtw" name="OrderVisitor"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_xDYYYBVhEeeMzp7YIeMZtw" name="visit"> + <ownedParameter xmi:type="uml:Parameter" xmi:id="_4635EBVhEeeMzp7YIeMZtw" name="meal" type="_QsWr7BVPEeeMzp7YIeMZtw"/> + </ownedOperation> + <ownedOperation xmi:type="uml:Operation" xmi:id="_5_YDABVhEeeMzp7YIeMZtw" name="visit"> + <ownedParameter xmi:type="uml:Parameter" xmi:id="_-mbGoBVhEeeMzp7YIeMZtw" name="dishe" type="_0EEHsBVMEeeMzp7YIeMZtw"/> + </ownedOperation> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_8clysBVpEeeMzp7YIeMZtw" memberEnd="_8co2AhVpEeeMzp7YIeMZtw _8co2AxVpEeeMzp7YIeMZtw"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8co2ABVpEeeMzp7YIeMZtw" source="org.eclipse.papyrus"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8co2ARVpEeeMzp7YIeMZtw" key="nature" value="UML_Nature"/> + </eAnnotations> + <ownedEnd xmi:type="uml:Property" xmi:id="_8co2AxVpEeeMzp7YIeMZtw" name="meal" type="_QsWr7BVPEeeMzp7YIeMZtw" association="_8clysBVpEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_IMUJMBVqEeeMzp7YIeMZtw" memberEnd="_IMVXUhVqEeeMzp7YIeMZtw _IMVXUxVqEeeMzp7YIeMZtw"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IMVXUBVqEeeMzp7YIeMZtw" source="org.eclipse.papyrus"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IMVXURVqEeeMzp7YIeMZtw" key="nature" value="UML_Nature"/> + </eAnnotations> + <ownedEnd xmi:type="uml:Property" xmi:id="_IMVXUxVqEeeMzp7YIeMZtw" name="dishe" type="_0EEHsBVMEeeMzp7YIeMZtw" association="_IMUJMBVqEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Interface" xmi:id="_T-934BVqEeeMzp7YIeMZtw" name="StrategyDeliveryPolicy"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_aBVC8BVqEeeMzp7YIeMZtw" name="chooseCourier"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_wWBiIBVsEeeMzp7YIeMZtw" name="FastestDelivery"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_zWDkoBVsEeeMzp7YIeMZtw" name="chooseCourier"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_15nGgBVsEeeMzp7YIeMZtw" name="FairOccupationDelivery"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_6gpjEBVsEeeMzp7YIeMZtw" name="chooseCourier"/> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_CBHq4BVtEeeMzp7YIeMZtw" client="_15nGgBVsEeeMzp7YIeMZtw" supplier="_T-934BVqEeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Dependency" xmi:id="_Pc_aIBVtEeeMzp7YIeMZtw" client="_wWBiIBVsEeeMzp7YIeMZtw" supplier="_oX-IkBPOEeeugOD0sSUlEg"/> + <packagedElement xmi:type="uml:Class" xmi:id="_TQsVQBVtEeeMzp7YIeMZtw" name="ContextDeliveryPolicy"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_Fl5jwBVuEeeMzp7YIeMZtw" name="strategyDeliveryPolicy" visibility="private" type="_T-934BVqEeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_RMiPshVuEeeMzp7YIeMZtw" name="strategydeliverypolicy" type="_T-934BVqEeeMzp7YIeMZtw" association="_RMhooBVuEeeMzp7YIeMZtw"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_BXlJMBVuEeeMzp7YIeMZtw" name="execute"/> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_RMhooBVuEeeMzp7YIeMZtw" memberEnd="_RMiPshVuEeeMzp7YIeMZtw _RMiPsxVuEeeMzp7YIeMZtw"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RMiPsBVuEeeMzp7YIeMZtw" source="org.eclipse.papyrus"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RMiPsRVuEeeMzp7YIeMZtw" key="nature" value="UML_Nature"/> + </eAnnotations> + <ownedEnd xmi:type="uml:Property" xmi:id="_RMiPsxVuEeeMzp7YIeMZtw" name="contextdeliverypolicy" type="_TQsVQBVtEeeMzp7YIeMZtw" association="_RMhooBVuEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_trPsABVuEeeMzp7YIeMZtw" client="_trQTFRVuEeeMzp7YIeMZtw" supplier="_trQTFxVuEeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Class" xmi:id="_trQTEBVuEeeMzp7YIeMZtw" name="ContextTargetProfit"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_trQTERVuEeeMzp7YIeMZtw" name="strategyTargetProfit" visibility="private" type="_trQTFxVuEeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_trQTEhVuEeeMzp7YIeMZtw" name="strategydeliverypolicy" type="_trQTFxVuEeeMzp7YIeMZtw" association="_trQ6IBVuEeeMzp7YIeMZtw"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_trQTExVuEeeMzp7YIeMZtw" name="execute"/> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_trQTFBVuEeeMzp7YIeMZtw" client="_trQ6JBVuEeeMzp7YIeMZtw" supplier="_oX-IkBPOEeeugOD0sSUlEg"/> + <packagedElement xmi:type="uml:Class" xmi:id="_trQTFRVuEeeMzp7YIeMZtw" name="TargetProfitMarkup"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_trQTFhVuEeeMzp7YIeMZtw" name="chooseTragetProfit"/> + </packagedElement> + <packagedElement xmi:type="uml:Interface" xmi:id="_trQTFxVuEeeMzp7YIeMZtw" name="StrategyTargetProfitPolicy"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_trQTGBVuEeeMzp7YIeMZtw" name="chooseTragetProfit"/> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_trQ6IBVuEeeMzp7YIeMZtw" memberEnd="_trQTEhVuEeeMzp7YIeMZtw _trQ6IxVuEeeMzp7YIeMZtw"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_trQ6IRVuEeeMzp7YIeMZtw" source="org.eclipse.papyrus"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_trQ6IhVuEeeMzp7YIeMZtw" key="nature" value="UML_Nature"/> + </eAnnotations> + <ownedEnd xmi:type="uml:Property" xmi:id="_trQ6IxVuEeeMzp7YIeMZtw" name="contextdeliverypolicy" type="_trQTEBVuEeeMzp7YIeMZtw" association="_trQ6IBVuEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_trQ6JBVuEeeMzp7YIeMZtw" name="TargetProfitServiceFee"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_trQ6JRVuEeeMzp7YIeMZtw" name="chooseTragetProfit"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_7uPssBVuEeeMzp7YIeMZtw" name="TargetProfitDeliveryCost"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_7uPssRVuEeeMzp7YIeMZtw" name="chooseTragetProfit"/> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_BMxx8BVvEeeMzp7YIeMZtw" client="_oX-IkBPOEeeugOD0sSUlEg" supplier="_trQTFxVuEeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Class" xmi:id="_OgNIIBV1EeeMzp7YIeMZtw" name="MyFoodora"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_SBA8cBV1EeeMzp7YIeMZtw" name="serviceFee" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EFloat"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_Ve1uMBV1EeeMzp7YIeMZtw" name="markupPercentage" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EFloat"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_afrK0BV1EeeMzp7YIeMZtw" name="deliveryCost" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EFloat"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_hKSosBV1EeeMzp7YIeMZtw" name="listRestaurant" visibility="private" type="_D3KFoBVQEeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_hkFowBV1EeeMzp7YIeMZtw" name="listCustomer" visibility="private" type="_D3KFoBVQEeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_hk8kYBV1EeeMzp7YIeMZtw" name="listCourier" visibility="private" type="_D3KFoBVQEeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_uvbosBV1EeeMzp7YIeMZtw" name="listManager" visibility="private" type="_D3KFoBVQEeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_1lKKYBV1EeeMzp7YIeMZtw" name="targetProfitPolicy" visibility="private" type="_trQTEBVuEeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_AQ-M0BV2EeeMzp7YIeMZtw" name="deliveryPolicy" visibility="private" type="_TQsVQBVtEeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_JFxqUBV2EeeMzp7YIeMZtw" name="specialOffer" visibility="private"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_auaU8BV2EeeMzp7YIeMZtw" name="Operation1"/> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_QxOZcxV-EeeMzp7YIeMZtw" client="_QxSD0BV-EeeMzp7YIeMZtw" supplier="_QxRcxRV-EeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Association" xmi:id="_QxOZdBV-EeeMzp7YIeMZtw" memberEnd="_QxPnmxV-EeeMzp7YIeMZtw _QxOZdxV-EeeMzp7YIeMZtw"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QxOZdRV-EeeMzp7YIeMZtw" source="org.eclipse.papyrus"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QxOZdhV-EeeMzp7YIeMZtw" key="nature" value="UML_Nature"/> + </eAnnotations> + <ownedEnd xmi:type="uml:Property" xmi:id="_QxOZdxV-EeeMzp7YIeMZtw" name="clientapplication" type="_QxPnmBV-EeeMzp7YIeMZtw" association="_QxOZdBV-EeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_QxOZeBV-EeeMzp7YIeMZtw" memberEnd="_QxPnmhV-EeeMzp7YIeMZtw _QxOZexV-EeeMzp7YIeMZtw"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QxOZeRV-EeeMzp7YIeMZtw" source="org.eclipse.papyrus"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QxOZehV-EeeMzp7YIeMZtw" key="nature" value="UML_Nature"/> + </eAnnotations> + <ownedEnd xmi:type="uml:Property" xmi:id="_QxOZexV-EeeMzp7YIeMZtw" name="clientapplication" type="_QxPnmBV-EeeMzp7YIeMZtw" association="_QxOZeBV-EeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxPAgBV-EeeMzp7YIeMZtw" name="MealOfTheWeek"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAgRV-EeeMzp7YIeMZtw" name="state" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAghV-EeeMzp7YIeMZtw" name="name" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAgxV-EeeMzp7YIeMZtw" name="Meal" visibility="private"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxPAhBV-EeeMzp7YIeMZtw" name="HumanUser" isAbstract="true"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAhRV-EeeMzp7YIeMZtw" name="birthDate"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAhhV-EeeMzp7YIeMZtw" name="surname"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_QxPAhxV-EeeMzp7YIeMZtw" client="_QxQOoxV-EeeMzp7YIeMZtw" supplier="_QxPnkBV-EeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Class" xmi:id="_QxPAiBV-EeeMzp7YIeMZtw" name="User" visibility="public" isAbstract="true"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAiRV-EeeMzp7YIeMZtw" name="id" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAihV-EeeMzp7YIeMZtw" name="name" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAixV-EeeMzp7YIeMZtw" name="username" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAjBV-EeeMzp7YIeMZtw" name="password" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAjRV-EeeMzp7YIeMZtw" name="adress" visibility="private" type="_QxQOoBV-EeeMzp7YIeMZtw" isUnique="false"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAjhV-EeeMzp7YIeMZtw" name="mail" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAjxV-EeeMzp7YIeMZtw" name="phoneNumber" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAkBV-EeeMzp7YIeMZtw" name="activated" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/> + </ownedAttribute> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxPAkRV-EeeMzp7YIeMZtw" name="register"/> + </packagedElement> + <packagedElement xmi:type="uml:Interface" xmi:id="_QxPnkBV-EeeMzp7YIeMZtw" name="Observer"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPnkRV-EeeMzp7YIeMZtw" name="oservableoffer" type="_QxRcxRV-EeeMzp7YIeMZtw" association="_QxRcwRV-EeeMzp7YIeMZtw"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxPnkhV-EeeMzp7YIeMZtw" name="update"/> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_QxPnkxV-EeeMzp7YIeMZtw" client="_QxPAhBV-EeeMzp7YIeMZtw" supplier="_QxPAiBV-EeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Dependency" xmi:id="_QxPnlBV-EeeMzp7YIeMZtw" client="_QxQ1sBV-EeeMzp7YIeMZtw" supplier="_QxPAiBV-EeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Class" xmi:id="_QxPnlRV-EeeMzp7YIeMZtw" name="PointFidelityCard"> + <generalization xmi:type="uml:Generalization" xmi:id="_QxPnlhV-EeeMzp7YIeMZtw" general="_QxQOtRV-EeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPnlxV-EeeMzp7YIeMZtw" name="numberOfPoints"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxPnmBV-EeeMzp7YIeMZtw" name="MyFoodoraSystem"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPnmRV-EeeMzp7YIeMZtw" name="prodFactory" visibility="private" type="_QxSq4BV-EeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPnmhV-EeeMzp7YIeMZtw" name="userfactory" type="_QxSq4BV-EeeMzp7YIeMZtw" association="_QxOZeBV-EeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPnmxV-EeeMzp7YIeMZtw" name="user" type="_QxPAiBV-EeeMzp7YIeMZtw" association="_QxOZdBV-EeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxQOoBV-EeeMzp7YIeMZtw" name="Adress"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQOoRV-EeeMzp7YIeMZtw" name="x" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EDouble"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQOohV-EeeMzp7YIeMZtw" name="y" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EDouble"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxQOoxV-EeeMzp7YIeMZtw" name="Customer"> + <generalization xmi:type="uml:Generalization" xmi:id="_QxQOpBV-EeeMzp7YIeMZtw" general="_QxPAhBV-EeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQOpRV-EeeMzp7YIeMZtw" name="spamAgree" aggregation="composite"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQOphV-EeeMzp7YIeMZtw" name="historique"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQOpxV-EeeMzp7YIeMZtw" name="card" type="_QxQOtRV-EeeMzp7YIeMZtw"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQOqBV-EeeMzp7YIeMZtw" name="placeOrder"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQOqRV-EeeMzp7YIeMZtw" name="registerFidelityPlan"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQOqhV-EeeMzp7YIeMZtw" name="unregisterFidelityPlan"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQOqxV-EeeMzp7YIeMZtw" name="getHistoryOfOrders"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQOrBV-EeeMzp7YIeMZtw" name="getPointsInTheCard"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQOrRV-EeeMzp7YIeMZtw" name="acceptSpam"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQOrhV-EeeMzp7YIeMZtw" name="refuseSpam"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxQOrxV-EeeMzp7YIeMZtw" name="BasicFidelityCard"> + <generalization xmi:type="uml:Generalization" xmi:id="_QxQOsBV-EeeMzp7YIeMZtw" general="_QxQOtRV-EeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxQOsRV-EeeMzp7YIeMZtw" name="Date"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQOshV-EeeMzp7YIeMZtw" name="year" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQOsxV-EeeMzp7YIeMZtw" name="month" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQOtBV-EeeMzp7YIeMZtw" name="day" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxQOtRV-EeeMzp7YIeMZtw" name="FidelityCard"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQOthV-EeeMzp7YIeMZtw" name="ID"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxQ1sBV-EeeMzp7YIeMZtw" name="MoralUser" isAbstract="true"/> + <packagedElement xmi:type="uml:Class" xmi:id="_QxQ1shV-EeeMzp7YIeMZtw" name="LotteryFidelityCard"> + <generalization xmi:type="uml:Generalization" xmi:id="_QxQ1sxV-EeeMzp7YIeMZtw" general="_QxQOtRV-EeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQ1tBV-EeeMzp7YIeMZtw" name="percentage" isReadOnly="true"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EDouble"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxQ1tRV-EeeMzp7YIeMZtw" name="Position"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQ1thV-EeeMzp7YIeMZtw" name="x" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EDouble"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQ1txV-EeeMzp7YIeMZtw" name="y" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EDouble"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxQ1uBV-EeeMzp7YIeMZtw" name="Manager"> + <generalization xmi:type="uml:Generalization" xmi:id="_QxQ1uRV-EeeMzp7YIeMZtw" general="_QxPAhBV-EeeMzp7YIeMZtw"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1uhV-EeeMzp7YIeMZtw" name="addUser"> + <ownedParameter xmi:type="uml:Parameter" xmi:id="_QxQ1uxV-EeeMzp7YIeMZtw" name="user" type="_QxPAiBV-EeeMzp7YIeMZtw"/> + </ownedOperation> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1vBV-EeeMzp7YIeMZtw" name="removeUser"> + <ownedParameter xmi:type="uml:Parameter" xmi:id="_QxQ1vRV-EeeMzp7YIeMZtw" name="user" type="_QxPAiBV-EeeMzp7YIeMZtw"/> + </ownedOperation> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1vhV-EeeMzp7YIeMZtw" name="changeServiceFee"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1vxV-EeeMzp7YIeMZtw" name="changeMarkupPercentage"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1wBV-EeeMzp7YIeMZtw" name="changeDeliveryCost"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1wRV-EeeMzp7YIeMZtw" name="getTotalIncome"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1whV-EeeMzp7YIeMZtw" name="getProfit"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1wxV-EeeMzp7YIeMZtw" name="getAverageIncome"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1xBV-EeeMzp7YIeMZtw" name="getAverageProfit"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1xRV-EeeMzp7YIeMZtw" name="getAverageIncomePerCustomer"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1xhV-EeeMzp7YIeMZtw" name="setTargetProfitPolicy"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1xxV-EeeMzp7YIeMZtw" name="getMostsellingRestaurant"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1yBV-EeeMzp7YIeMZtw" name="getLeastSellingRestaurant"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1yRV-EeeMzp7YIeMZtw" name="setDeliveryPolicy"/> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_QxRcwBV-EeeMzp7YIeMZtw" client="_QxPAgBV-EeeMzp7YIeMZtw"> + <supplier xmi:type="uml:Model" href="file:/B:/Mes%20Documents/progra/java/software/td/my.foodora/FoodoraUml/model.uml#__GX94BP0EeeyD81rpgqPUg"/> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_QxRcwRV-EeeMzp7YIeMZtw" memberEnd="_QxPnkRV-EeeMzp7YIeMZtw _QxRcxBV-EeeMzp7YIeMZtw"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QxRcwhV-EeeMzp7YIeMZtw" source="org.eclipse.papyrus"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QxRcwxV-EeeMzp7YIeMZtw" key="nature" value="UML_Nature"/> + </eAnnotations> + <ownedEnd xmi:type="uml:Property" xmi:id="_QxRcxBV-EeeMzp7YIeMZtw" name="observer" type="_QxPnkBV-EeeMzp7YIeMZtw" association="_QxRcwRV-EeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Interface" xmi:id="_QxRcxRV-EeeMzp7YIeMZtw" name="OservableOffer"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxRcxhV-EeeMzp7YIeMZtw" name="attachObserver"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxRcxxV-EeeMzp7YIeMZtw" name="detachObserver"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxRcyBV-EeeMzp7YIeMZtw" name="notify"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxSD0BV-EeeMzp7YIeMZtw" name="BirthdayOffer"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxSD0RV-EeeMzp7YIeMZtw" name="state" visibility="private"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxSD0xV-EeeMzp7YIeMZtw" name="Restaurant"> + <generalization xmi:type="uml:Generalization" xmi:id="_QxSD1BV-EeeMzp7YIeMZtw" general="_QxQ1sBV-EeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxSD1RV-EeeMzp7YIeMZtw" name="listOfMeal"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD1hV-EeeMzp7YIeMZtw" name="addItem"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD1xV-EeeMzp7YIeMZtw" name="removeItem"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD2BV-EeeMzp7YIeMZtw" name="setGenericDiscountFactor"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD2RV-EeeMzp7YIeMZtw" name="setSpecialDiscountFactor"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD2hV-EeeMzp7YIeMZtw" name="sortOrders"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxSD2xV-EeeMzp7YIeMZtw" name="Courier"> + <generalization xmi:type="uml:Generalization" xmi:id="_QxSD3BV-EeeMzp7YIeMZtw" general="_QxPAhBV-EeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxSD3RV-EeeMzp7YIeMZtw" name="position" type="_QxQ1tRV-EeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxSD3hV-EeeMzp7YIeMZtw" name="numberOfLivraison"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxSD3xV-EeeMzp7YIeMZtw" name="available"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/> + </ownedAttribute> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD4BV-EeeMzp7YIeMZtw" name="register"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD4RV-EeeMzp7YIeMZtw" name="unregister"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD4hV-EeeMzp7YIeMZtw" name="setAvailability"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD4xV-EeeMzp7YIeMZtw" name="changePosition"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD5BV-EeeMzp7YIeMZtw" name="acceptDelivery"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD5RV-EeeMzp7YIeMZtw" name="refuseDelivery"/> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_QxSD5hV-EeeMzp7YIeMZtw" memberEnd="_QxSq4RV-EeeMzp7YIeMZtw _QxSD6RV-EeeMzp7YIeMZtw"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QxSD5xV-EeeMzp7YIeMZtw" source="org.eclipse.papyrus"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QxSD6BV-EeeMzp7YIeMZtw" key="nature" value="UML_Nature"/> + </eAnnotations> + <ownedEnd xmi:type="uml:Property" xmi:id="_QxSD6RV-EeeMzp7YIeMZtw" name="userfactory" type="_QxSq4BV-EeeMzp7YIeMZtw" association="_QxSD5hV-EeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxSq4BV-EeeMzp7YIeMZtw" name="UserFactory"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxSq4RV-EeeMzp7YIeMZtw" name="user" type="_QxPAiBV-EeeMzp7YIeMZtw" association="_QxSD5hV-EeeMzp7YIeMZtw"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSq4hV-EeeMzp7YIeMZtw" name="createUser"/> + </packagedElement> + <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_tczxwBVKEeeMzp7YIeMZtw"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tczxwRVKEeeMzp7YIeMZtw" source="http://www.eclipse.org/uml2/2.0.0/UML"> + <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/> + </eAnnotations> + <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/> + </profileApplication> +</uml:Model> diff --git a/scenario/my_foodora.ini b/scenario/my_foodora.ini new file mode 100644 index 0000000..e69de29 diff --git a/scenario/testScenario1.txt b/scenario/testScenario1.txt new file mode 100644 index 0000000..e69de29 diff --git a/src/Cards/BasicFidelityCard.java b/src/Cards/BasicFidelityCard.java index e453b13..1ba1f7c 100644 --- a/src/Cards/BasicFidelityCard.java +++ b/src/Cards/BasicFidelityCard.java @@ -13,8 +13,23 @@ public class BasicFidelityCard extends FidelityCard implements VisitableCard { } @Override - public long accept() { + public long acceptPoint() { + // TODO Auto-generated method stub return 0; } + @Override + public double acceptPercentage() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public String toString() { + return "Type of Card : Basic \n" + + "id : " + id; + } + + + } diff --git a/src/Cards/LotteryFidelityCard.java b/src/Cards/LotteryFidelityCard.java index 33d7c8d..9fc7558 100644 --- a/src/Cards/LotteryFidelityCard.java +++ b/src/Cards/LotteryFidelityCard.java @@ -5,9 +5,9 @@ public class LotteryFidelityCard extends FidelityCard implements VisitableCard { private double percentage; - public LotteryFidelityCard(double percentage) { + public LotteryFidelityCard() { super(); - this.percentage = percentage; + this.percentage = 0.05; } @@ -18,15 +18,48 @@ public class LotteryFidelityCard extends FidelityCard implements VisitableCard { return "Lottery"; } + public boolean getReduction(){ + boolean chance = false; + double tirage = Math.random(); + if(tirage < this.percentage){ + chance = true; + } + return chance; + } + + + + public double getPercentage() { + return percentage; + } + + + public void setPercentage(double percentage) { + this.percentage = percentage; + } + @Override - public long accept() { + public long acceptPoint() { + // TODO Auto-generated method stub return 0; } - public void setPercentage(double percentage) { - this.percentage = percentage; + @Override + public double acceptPercentage() { + // TODO Auto-generated method stub + return this.percentage; } + + @Override + public String toString() { + return "Type of Card : Lottery \n" + + "percentage : " + percentage + "\n" + + " id : " + id; + } + + + } diff --git a/src/Cards/PointFidelityCard.java b/src/Cards/PointFidelityCard.java index 9b0ce3d..373e2e9 100644 --- a/src/Cards/PointFidelityCard.java +++ b/src/Cards/PointFidelityCard.java @@ -18,7 +18,7 @@ public class PointFidelityCard extends FidelityCard implements VisitableCard { } @Override - public long accept() { + public long acceptPoint() { return this.nbOfPoint; } @@ -30,6 +30,22 @@ public class PointFidelityCard extends FidelityCard implements VisitableCard { public void setNbOfPoint(long nbOfPoint) { this.nbOfPoint = nbOfPoint; } + + + @Override + public double acceptPercentage() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public String toString() { + return "Type of Card : Point \n" + + "nbOfPoint : " + nbOfPoint + "\n" + + " id : " + id; + } + + diff --git a/src/Cards/VisitableCard.java b/src/Cards/VisitableCard.java index 61084e7..47806b5 100644 --- a/src/Cards/VisitableCard.java +++ b/src/Cards/VisitableCard.java @@ -2,6 +2,7 @@ package Cards; public interface VisitableCard { - public abstract long accept(); + public abstract long acceptPoint(); + public abstract double acceptPercentage(); } diff --git a/src/Cards/VisiterCard.java b/src/Cards/VisiterCard.java index 3a6ebc9..efdb0a8 100644 --- a/src/Cards/VisiterCard.java +++ b/src/Cards/VisiterCard.java @@ -2,6 +2,7 @@ package Cards; public interface VisiterCard { - public abstract long visit(VisitableCard card); + public abstract long visit(PointFidelityCard card); + public abstract double visit(LotteryFidelityCard card); } diff --git a/src/Cli/Clui.java b/src/Cli/Clui.java index e077295..adfa162 100644 --- a/src/Cli/Clui.java +++ b/src/Cli/Clui.java @@ -4,15 +4,39 @@ import java.util.ArrayList; import java.util.StringTokenizer; import Commands.Login; +import Commands.AddDishRestaurantMenu; +import Commands.AddDishToMeal; +import Commands.AddItemToOrder; +import Commands.AssociateCard; +import Commands.CreateMeal; +import Commands.CreateOrder; +import Commands.EndOrder; import Commands.Help; import Commands.Logout; +import Commands.OffDuty; +import Commands.OnDuty; import Commands.RegisterCourier; import Commands.RegisterCustomer; import Commands.RegisterRestaurant; +import Commands.RemoveSpecialOffer; +import Commands.RenameMeal; +import Commands.RunTest; +import Commands.SetDeliveryPolicy; +import Commands.SetProfitPolicy; +import Commands.SetSpecialOffer; +import Commands.ShowCourier; import Commands.ShowCustomer; +import Commands.ShowMeal; +import Commands.ShowMenuItem; +import Commands.ShowProfitBetween; import Commands.ShowRestaurantTop; +import Commands.ShowTotalProfit; import Core.ActiveUserContext; import Core.MyFoodora; +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import Exception.ExceptionUnknownStartegyType; +import Exception.ExceptionUnknownTypeOfUser; public class Clui { @@ -25,15 +49,35 @@ public class Clui { super(); this.foodora = _foodora; this.activeUser = _activeUser; - this.listOfCommand.add(new Login()); + this.listOfCommand.add(new AddDishRestaurantMenu()); + this.listOfCommand.add(new AddDishToMeal()); + this.listOfCommand.add(new RegisterCourier()); + this.listOfCommand.add(new AddItemToOrder()); + this.listOfCommand.add(new AssociateCard()); + this.listOfCommand.add(new CreateMeal()); + this.listOfCommand.add(new CreateOrder()); + this.listOfCommand.add(new EndOrder()); this.listOfCommand.add(new Help()); + this.listOfCommand.add(new Login()); this.listOfCommand.add(new Logout()); - this.listOfCommand.add(new RegisterRestaurant()); - this.listOfCommand.add(new RegisterCustomer()); + this.listOfCommand.add(new OffDuty()); + this.listOfCommand.add(new OnDuty()); this.listOfCommand.add(new RegisterCourier()); - + this.listOfCommand.add(new RegisterCustomer()); + this.listOfCommand.add(new RegisterRestaurant()); + this.listOfCommand.add(new RemoveSpecialOffer()); + this.listOfCommand.add(new RenameMeal()); + this.listOfCommand.add(new RunTest()); + this.listOfCommand.add(new SetDeliveryPolicy()); + this.listOfCommand.add(new SetProfitPolicy()); + this.listOfCommand.add(new SetSpecialOffer()); + this.listOfCommand.add(new ShowCourier()); this.listOfCommand.add(new ShowCustomer()); + this.listOfCommand.add(new ShowMeal()); + this.listOfCommand.add(new ShowMenuItem()); + this.listOfCommand.add(new ShowProfitBetween()); this.listOfCommand.add(new ShowRestaurantTop()); + this.listOfCommand.add(new ShowTotalProfit()); } public Command getCommand(String commandName) { @@ -44,7 +88,7 @@ public class Clui { return null; } - public void executeCommand(String command){ + public void executeCommand(String command) throws ExceptionUnknownMealType, NumberFormatException, ExceptionUnknownDishType, ExceptionUnknownStartegyType, ExceptionUnknownTypeOfUser{ StringTokenizer st = new StringTokenizer(command); String commandName = st.nextToken(); ArrayList<String> arguments = new ArrayList<String>(); @@ -72,7 +116,7 @@ public class Clui { } } - public void launchClui() throws errorWrongNumberOfParams, errorWrongFormatValue{ + public void launchClui() throws errorWrongNumberOfParams, errorWrongFormatValue, ExceptionUnknownMealType, NumberFormatException, ExceptionUnknownDishType, ExceptionUnknownStartegyType, ExceptionUnknownTypeOfUser{ System.out.println("Welcome to MyFoodora system, type help <> in order to have all the possible commands"); while(true){ String command = Input.string("===================\n" diff --git a/src/Cli/Command.java b/src/Cli/Command.java index ac36c5f..efceeb0 100644 --- a/src/Cli/Command.java +++ b/src/Cli/Command.java @@ -4,6 +4,10 @@ import java.util.ArrayList; import Core.ActiveUserContext; import Core.MyFoodora; +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import Exception.ExceptionUnknownStartegyType; +import Exception.ExceptionUnknownTypeOfUser; public abstract class Command { private String commandName; @@ -15,7 +19,7 @@ public abstract class Command { } public boolean isOneWanted(String firstToken){ - if(firstToken.equals(commandName)) + if(firstToken.toLowerCase().equals(commandName.toLowerCase())) return true; return false; } @@ -33,6 +37,6 @@ public abstract class Command { return true; } - public abstract void execute(ArrayList<String> arguments, MyFoodora foodora, ActiveUserContext activeUser); + public abstract void execute(ArrayList<String> arguments, MyFoodora foodora, ActiveUserContext activeUser) throws ExceptionUnknownMealType, NumberFormatException, ExceptionUnknownDishType, ExceptionUnknownStartegyType, ExceptionUnknownTypeOfUser; } diff --git a/src/Commands/AddDishRestaurantMenu.java b/src/Commands/AddDishRestaurantMenu.java new file mode 100644 index 0000000..ec31513 --- /dev/null +++ b/src/Commands/AddDishRestaurantMenu.java @@ -0,0 +1,41 @@ +package Commands; + +import java.util.ArrayList; + +import Cli.Command; +import Cli.Token; +import Core.ActiveUserContext; +import Core.MyFoodora; +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import Item.Dish; +import Others.Adress; +import User.Manager; +import User.Restaurant; +import User.User; + +public class AddDishRestaurantMenu extends Command { + + public AddDishRestaurantMenu() { + super("addDishRestaurantMenu", + new Token[]{new Token(Token.TypeToken.integer,"dishName") + ,new Token(Token.TypeToken.str,"dishCategory") + ,new Token(Token.TypeToken.str,"foodCategory") + ,new Token(Token.TypeToken.decimal,"unitPrice")} + ); + // TODO Auto-generated constructor stub + } + + @Override + public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) throws NumberFormatException, ExceptionUnknownDishType { + // TODO Auto-generated method stub + if(activeUser.getUser() instanceof Restaurant){ + Restaurant r = (Restaurant) activeUser.getUser(); + r.addDish(arg.get(1), arg.get(0), arg.get(2), Double.parseDouble(arg.get(3))); + System.out.println("Customer added : " + foodora.getUserByName(arg.get(1), arg.get(2))); + }else{ + System.out.println("You need to be a logged Restaurant in order to access this function"); + } + } + +} diff --git a/src/Commands/AddDishToMeal.java b/src/Commands/AddDishToMeal.java new file mode 100644 index 0000000..7ea13a8 --- /dev/null +++ b/src/Commands/AddDishToMeal.java @@ -0,0 +1,35 @@ +package Commands; + +import java.util.ArrayList; + +import Cli.Command; +import Cli.Token; +import Core.ActiveUserContext; +import Core.MyFoodora; +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import User.Restaurant; + +public class AddDishToMeal extends Command { + + public AddDishToMeal() { + super("addDishToMeal", + new Token[]{new Token(Token.TypeToken.str,"dishName") + ,new Token(Token.TypeToken.str,"mealName")} + ); + // TODO Auto-generated constructor stub + } + + @Override + public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) throws NumberFormatException { + // TODO Auto-generated method stub + if(activeUser.getUser() instanceof Restaurant){ + Restaurant r = (Restaurant) activeUser.getUser(); + r.addDishToMeal(r.getDishByName(arg.get(0)),r.getMealByName(arg.get(1))); + System.out.println("You added "+arg.get(0)+" to "+arg.get(1)); + }else{ + System.out.println("You need to be a logged Restaurant in order to access this function"); + } + } + +} diff --git a/src/Commands/AddItemToOrder.java b/src/Commands/AddItemToOrder.java new file mode 100644 index 0000000..27735c6 --- /dev/null +++ b/src/Commands/AddItemToOrder.java @@ -0,0 +1,39 @@ +package Commands; + +import java.util.ArrayList; + +import Cli.Command; +import Cli.Token; +import Core.ActiveUserContext; +import Core.MyFoodora; +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import Order.Order; +import User.Customer; +import User.Restaurant; + +public class AddItemToOrder extends Command { + + public AddItemToOrder() { + super("addItemToOrder", + new Token[]{new Token(Token.TypeToken.str,"orderName"), + new Token(Token.TypeToken.str,"itemName")} + ); + // TODO Auto-generated constructor stub + } + + @Override + public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) throws NumberFormatException { + // TODO Auto-generated method stub + if(activeUser.getUser() instanceof Customer){ + Customer c = (Customer) activeUser.getUser(); + Order o = c.getOrderByName(arg.get(0)); + o.addItemByName(arg.get(1)); + System.out.println(arg.get(1) + " added in "+arg.get(0)+"."); + }else{ + System.out.println("You need to be a logged Customer in order to access this function"); + } + } + + +} diff --git a/src/Commands/AssociateCard.java b/src/Commands/AssociateCard.java new file mode 100644 index 0000000..840f349 --- /dev/null +++ b/src/Commands/AssociateCard.java @@ -0,0 +1,38 @@ +package Commands; + +import java.util.ArrayList; + +import Cards.FidelityCard; +import Cli.Command; +import Cli.Token; +import Core.ActiveUserContext; +import Core.MyFoodora; +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import Exception.ExceptionUnknownStartegyType; +import User.Customer; +import User.Manager; + +public class AssociateCard extends Command { + + public AssociateCard() { + super("associateCard", + new Token[]{new Token(Token.TypeToken.str,"customerUsername"), + new Token(Token.TypeToken.str,"cardType")} + ); + // TODO Auto-generated constructor stub + } + + @Override + public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) throws NumberFormatException, ExceptionUnknownStartegyType { + // TODO Auto-generated method stub + if(activeUser.getUser() instanceof Manager){ + Manager m = (Manager) activeUser.getUser(); + Customer c = (Customer) foodora.getUserByUsername(arg.get(0)); + c.registerFidelityPlan(arg.get(1)); + }else{ + System.out.println("You need to be a logged Manager in order to access this function"); + } + } +} + diff --git a/src/Commands/CreateMeal.java b/src/Commands/CreateMeal.java new file mode 100644 index 0000000..62c3548 --- /dev/null +++ b/src/Commands/CreateMeal.java @@ -0,0 +1,35 @@ +package Commands; + +import java.util.ArrayList; + +import Cli.Command; +import Cli.Token; +import Core.ActiveUserContext; +import Core.MyFoodora; +import Exception.ExceptionUnknownMealType; +import User.Restaurant; + +public class CreateMeal extends Command { + + public CreateMeal() { + super("createMeal", + new Token[]{new Token(Token.TypeToken.str,"nameOfTheMeal"), + new Token(Token.TypeToken.str,"typeOfMeal") + } + ); + // TODO Auto-generated constructor stub + } + + @Override + public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) throws ExceptionUnknownMealType { + // TODO Auto-generated method stub + if(activeUser.getUser() instanceof Restaurant){ + Restaurant r = (Restaurant) activeUser.getUser(); + r.createMeal(arg.get(0), arg.get(1)); + System.out.println("Meal added : "+arg.get(0)); + }else{ + System.out.println("You need to be a logged Restaurant in order to access this function"); + } + } + +} diff --git a/src/Commands/CreateOrder.java b/src/Commands/CreateOrder.java new file mode 100644 index 0000000..1e8f239 --- /dev/null +++ b/src/Commands/CreateOrder.java @@ -0,0 +1,36 @@ +package Commands; + +import java.util.ArrayList; + +import Cli.Command; +import Cli.Token; +import Core.ActiveUserContext; +import Core.MyFoodora; +import User.Customer; +import User.Restaurant; + +public class CreateOrder extends Command { + + public CreateOrder() { + super("createOrder", + new Token[]{new Token(Token.TypeToken.str,"restaurantName"), + new Token(Token.TypeToken.str,"orderName")} + ); + // TODO Auto-generated constructor stub + } + + @Override + public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) throws NumberFormatException { + // TODO Auto-generated method stub + if(activeUser.getUser() instanceof Customer){ + Customer c = (Customer) activeUser.getUser(); + Restaurant r = (Restaurant) foodora.getUserByUsername(arg.get(0)); + c.createOrder(arg.get(1), r); + System.out.println(arg.get(1) + " created for "+arg.get(0)+"."); + }else{ + System.out.println("You need to be a logged Customer in order to access this function"); + } + } + + +} diff --git a/src/Commands/EndOrder.java b/src/Commands/EndOrder.java new file mode 100644 index 0000000..5de3bb6 --- /dev/null +++ b/src/Commands/EndOrder.java @@ -0,0 +1,35 @@ +package Commands; + +import java.util.ArrayList; + +import Cli.Command; +import Cli.Token; +import Core.ActiveUserContext; +import Core.MyFoodora; +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import Order.Order; +import User.Customer; + +public class EndOrder extends Command { + + public EndOrder() { + super("endOrder", + new Token[]{new Token(Token.TypeToken.str,"orderName"), + new Token(Token.TypeToken.date,"orderDate")} + ); + // TODO Auto-generated constructor stub + } + + @Override + public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) throws NumberFormatException { + // TODO Auto-generated method stub + if(activeUser.getUser() instanceof Customer){ + Customer c = (Customer) activeUser.getUser(); + c.getOrderByName(arg.get(0)).finalize(); + System.out.println(arg.get(1) + " finalized the "+arg.get(0)+"."); + }else{ + System.out.println("You need to be a logged Customer in order to access this function"); + } + } +} \ No newline at end of file diff --git a/src/Commands/FindDeliverer.java b/src/Commands/FindDeliverer.java new file mode 100644 index 0000000..54424c2 --- /dev/null +++ b/src/Commands/FindDeliverer.java @@ -0,0 +1,36 @@ +package Commands; + +import java.util.ArrayList; + +import Cli.Command; +import Cli.Token; +import Core.ActiveUserContext; +import Core.MyFoodora; +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import Order.Order; +import User.Courier; +import User.Manager; + +public class FindDeliverer extends Command { + + public FindDeliverer() { + super("findDeliverer", + new Token[]{new Token(Token.TypeToken.str,"orderName")} + ); + // TODO Auto-generated constructor stub + } + + @Override + public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) throws NumberFormatException { + // TODO Auto-generated method stub + if(activeUser.getUser() instanceof Manager){ + Manager m = (Manager) activeUser.getUser(); + Order o = foodora.getPendingOrderByName(arg.get(0)); + Courier c = foodora.getContextDeliveryPolicy().getStrategy().chooseCourier(o.getRestaurantAttached(), foodora.getCustomerByOrder(o), foodora.getListCourier().getList()); + System.out.println(c.toString()); + }else{ + System.out.println("You need to be a logged Manager in order to access this function"); + } + } +} diff --git a/src/Commands/OffDuty.java b/src/Commands/OffDuty.java new file mode 100644 index 0000000..59f9ab7 --- /dev/null +++ b/src/Commands/OffDuty.java @@ -0,0 +1,36 @@ +package Commands; + +import java.util.ArrayList; + +import Cli.Command; +import Cli.Token; +import Core.ActiveUserContext; +import Core.MyFoodora; +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import User.Courier; +import User.Manager; + +public class OffDuty extends Command { + + public OffDuty() { + super("offDuty", + new Token[]{new Token(Token.TypeToken.str,"courierUsername")} + ); + // TODO Auto-generated constructor stub + } + + @Override + public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) throws NumberFormatException { + // TODO Auto-generated method stub + if(activeUser.getUser() instanceof Manager){ + Manager m = (Manager) activeUser.getUser(); + Courier d = (Courier) foodora.getUserByUsername(arg.get(0)); + d.setAvailable(true); + System.out.println(arg.get(0) + " in now on duty."); + }else{ + System.out.println("You need to be a logged Manager in order to access this function"); + } + } + +} \ No newline at end of file diff --git a/src/Commands/OnDuty.java b/src/Commands/OnDuty.java new file mode 100644 index 0000000..6d7c872 --- /dev/null +++ b/src/Commands/OnDuty.java @@ -0,0 +1,37 @@ +package Commands; + +import java.util.ArrayList; + +import Cli.Command; +import Cli.Token; +import Core.ActiveUserContext; +import Core.MyFoodora; +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import User.Courier; +import User.Customer; +import User.Manager; + +public class OnDuty extends Command { + + public OnDuty() { + super("onDuty", + new Token[]{new Token(Token.TypeToken.str,"courierUsername")} + ); + // TODO Auto-generated constructor stub + } + + @Override + public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) throws NumberFormatException { + // TODO Auto-generated method stub + if(activeUser.getUser() instanceof Manager){ + Manager m = (Manager) activeUser.getUser(); + Courier d = (Courier) foodora.getUserByUsername(arg.get(0)); + d.setAvailable(false); + System.out.println(arg.get(0) + " in now on duty."); + }else{ + System.out.println("You need to be a logged Manager in order to access this function"); + } + } + +} diff --git a/src/Commands/RegisterCourier.java b/src/Commands/RegisterCourier.java index 1e202d6..ba330da 100644 --- a/src/Commands/RegisterCourier.java +++ b/src/Commands/RegisterCourier.java @@ -6,6 +6,7 @@ import Cli.Command; import Cli.Token; import Core.ActiveUserContext; import Core.MyFoodora; +import Exception.ExceptionUnknownTypeOfUser; import Others.Adress; import User.Manager; import User.User; @@ -26,7 +27,7 @@ public class RegisterCourier extends Command { } @Override - public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) { + public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) throws NumberFormatException, ExceptionUnknownTypeOfUser { // TODO Auto-generated method stub if(activeUser.getUser() instanceof Manager){ Manager m = (Manager) activeUser.getUser(); diff --git a/src/Commands/RegisterCustomer.java b/src/Commands/RegisterCustomer.java index 3bce986..a2609aa 100644 --- a/src/Commands/RegisterCustomer.java +++ b/src/Commands/RegisterCustomer.java @@ -6,6 +6,7 @@ import Cli.Command; import Cli.Token; import Core.ActiveUserContext; import Core.MyFoodora; +import Exception.ExceptionUnknownTypeOfUser; import Others.Adress; import User.Manager; import User.User; @@ -26,7 +27,7 @@ public class RegisterCustomer extends Command { } @Override - public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) { + public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) throws NumberFormatException, ExceptionUnknownTypeOfUser { // TODO Auto-generated method stub if(activeUser.getUser() instanceof Manager){ Manager m = (Manager) activeUser.getUser(); @@ -34,7 +35,7 @@ public class RegisterCustomer extends Command { m.addUser(Long.parseLong(arg.get(0)), arg.get(1), arg.get(2), arg.get(3), arg.get(4), Adress.fromStr(arg.get(5)), true, arg.get(6), "1", foodora, User.CUSTOMER , "Human"); System.out.println("Customer added : " + foodora.getUserByName(arg.get(1), arg.get(2))); }else{ - System.out.println("You need to be a manager in order to access this function"); + System.out.println("You need to be a logged Manager in order to access this function"); } } diff --git a/src/Commands/RegisterRestaurant.java b/src/Commands/RegisterRestaurant.java index cff697f..64459ad 100644 --- a/src/Commands/RegisterRestaurant.java +++ b/src/Commands/RegisterRestaurant.java @@ -6,6 +6,7 @@ import Cli.Command; import Cli.Token; import Core.ActiveUserContext; import Core.MyFoodora; +import Exception.ExceptionUnknownTypeOfUser; import Others.Adress; import User.Manager; import User.Restaurant; @@ -26,7 +27,7 @@ public class RegisterRestaurant extends Command { } @Override - public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) { + public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) throws NumberFormatException, ExceptionUnknownTypeOfUser { // TODO Auto-generated method stub if(activeUser.getUser() instanceof Manager){ Manager m = (Manager) activeUser.getUser(); diff --git a/src/Commands/RemoveSpecialOffer.java b/src/Commands/RemoveSpecialOffer.java new file mode 100644 index 0000000..f49cafd --- /dev/null +++ b/src/Commands/RemoveSpecialOffer.java @@ -0,0 +1,32 @@ +package Commands; + +import java.util.ArrayList; + +import Cli.Command; +import Cli.Token; +import Core.ActiveUserContext; +import Core.MyFoodora; +import User.Restaurant; + +public class RemoveSpecialOffer extends Command { + + public RemoveSpecialOffer() { + super("removeSpecialOffer", + new Token[]{} + ); + // TODO Auto-generated constructor stub + } + + @Override + public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) throws NumberFormatException { + // TODO Auto-generated method stub + if(activeUser.getUser() instanceof Restaurant){ + Restaurant r = (Restaurant) activeUser.getUser(); + r.removeMealOfTheWeek(foodora); + System.out.println("Meal Of The Week deleted."); + }else{ + System.out.println("You need to be a logged Restaurant in order to access this function"); + } + } + +} diff --git a/src/Commands/RenameMeal.java b/src/Commands/RenameMeal.java new file mode 100644 index 0000000..a6350a5 --- /dev/null +++ b/src/Commands/RenameMeal.java @@ -0,0 +1,35 @@ +package Commands; + +import java.util.ArrayList; + +import Cli.Command; +import Cli.Token; +import Core.ActiveUserContext; +import Core.MyFoodora; +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import User.Restaurant; + +public class RenameMeal extends Command { + + public RenameMeal() { + super("renameMeal", + new Token[]{new Token(Token.TypeToken.str,"mealName"), + new Token(Token.TypeToken.str,"newName")} + ); + // TODO Auto-generated constructor stub + } + + @Override + public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) throws NumberFormatException { + // TODO Auto-generated method stub + if(activeUser.getUser() instanceof Restaurant){ + Restaurant r = (Restaurant) activeUser.getUser(); + r.getMealByName(arg.get(0)).setName(arg.get(1)); + System.out.println("Meal "+arg.get(0)+" renamed to "+arg.get(1)); + }else{ + System.out.println("You need to be a logged Restaurant in order to access this function"); + } + } + +} diff --git a/src/Commands/RunTest.java b/src/Commands/RunTest.java new file mode 100644 index 0000000..ff7e301 --- /dev/null +++ b/src/Commands/RunTest.java @@ -0,0 +1,56 @@ +package Commands; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.stream.Stream; + +import Cli.Clui; +import Cli.Command; +import Cli.Token; +import Core.ActiveUserContext; +import Core.MyFoodora; +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import Exception.ExceptionUnknownStartegyType; +import User.Manager; + +public class RunTest extends Command { + + public RunTest() { + super("runTest", + new Token[]{new Token(Token.TypeToken.str,"file")} + ); + // TODO Auto-generated constructor stub + } + // + "showCustomers <> for the currently logged on myFoodora manager to display thelist of customers\n" + + @Override + public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) { + if(activeUser.getUser() instanceof Manager){ + Clui clui = new Clui(foodora, activeUser); + String fileName = arg.get(0); + + //read file into stream, try-with-resources + try (Stream<String> stream = Files.lines(Paths.get(fileName))) { + + stream.forEach(command -> { + try { + clui.executeCommand(command); + } catch (NumberFormatException | ExceptionUnknownMealType | ExceptionUnknownDishType | ExceptionUnknownStartegyType e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + }); + + } catch (IOException e) { + e.printStackTrace(); + } + } + else{ + System.out.println("You need to be a manager in order to access this function"); + } + } + +} diff --git a/src/Commands/SetDeliveryPolicy.java b/src/Commands/SetDeliveryPolicy.java new file mode 100644 index 0000000..1b0b93f --- /dev/null +++ b/src/Commands/SetDeliveryPolicy.java @@ -0,0 +1,35 @@ +package Commands; + +import java.util.ArrayList; + +import Cli.Command; +import Cli.Token; +import Core.ActiveUserContext; +import Core.MyFoodora; +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import Exception.ExceptionUnknownStartegyType; +import User.Manager; + +public class SetDeliveryPolicy extends Command { + + public SetDeliveryPolicy() { + super("setDeliveryPolicy", + new Token[]{new Token(Token.TypeToken.str,"deliveryPolicyName")} + ); + // TODO Auto-generated constructor stub + } + + @Override + public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) throws NumberFormatException, ExceptionUnknownStartegyType { + // TODO Auto-generated method stub + if(activeUser.getUser() instanceof Manager){ + Manager m = (Manager) activeUser.getUser(); + foodora.getContextDeliveryPolicy().setStrategy(arg.get(0)); + System.out.println(arg.get(0) + " is now the delivery policy."); + }else{ + System.out.println("You need to be a logged Manager in order to access this function"); + } + } + +} diff --git a/src/Commands/SetProfitPolicy.java b/src/Commands/SetProfitPolicy.java new file mode 100644 index 0000000..85caeb8 --- /dev/null +++ b/src/Commands/SetProfitPolicy.java @@ -0,0 +1,35 @@ +package Commands; + +import java.util.ArrayList; + +import Cli.Command; +import Cli.Token; +import Core.ActiveUserContext; +import Core.MyFoodora; +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import Exception.ExceptionUnknownStartegyType; +import User.Manager; + +public class SetProfitPolicy extends Command { + + public SetProfitPolicy() { + super("setProfitPolicy", + new Token[]{new Token(Token.TypeToken.str,"profityPolicyName")} + ); + // TODO Auto-generated constructor stub + } + + @Override + public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) throws NumberFormatException, ExceptionUnknownStartegyType { + // TODO Auto-generated method stub + if(activeUser.getUser() instanceof Manager){ + Manager m = (Manager) activeUser.getUser(); + foodora.getContextTargetProfitStrategy().setStrategy(arg.get(0)); + System.out.println(arg.get(0) + " is now the profit policy."); + }else{ + System.out.println("You need to be a logged Manager in order to access this function"); + } + } + +} diff --git a/src/Commands/SetSpecialOffer.java b/src/Commands/SetSpecialOffer.java new file mode 100644 index 0000000..c1f4dbe --- /dev/null +++ b/src/Commands/SetSpecialOffer.java @@ -0,0 +1,33 @@ +package Commands; + +import java.util.ArrayList; + +import Cli.Command; +import Cli.Token; +import Core.ActiveUserContext; +import Core.MyFoodora; +import User.Restaurant; + +public class SetSpecialOffer extends Command { + + public SetSpecialOffer() { + super("setSpecialOffer", + new Token[]{new Token(Token.TypeToken.str,"mealName")} + ); + // TODO Auto-generated constructor stub + } + + @Override + public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) throws NumberFormatException { + // TODO Auto-generated method stub + if(activeUser.getUser() instanceof Restaurant){ + Restaurant r = (Restaurant) activeUser.getUser(); + r.addMealOfTheWeek(foodora, arg.get(0)); + + System.out.println("Meal "+arg.get(0)+" is now the Meal Of The Week."); + }else{ + System.out.println("You need to be a logged Restaurant in order to access this function"); + } + } + +} diff --git a/src/Commands/ShowCourier.java b/src/Commands/ShowCourier.java new file mode 100644 index 0000000..a4a6fac --- /dev/null +++ b/src/Commands/ShowCourier.java @@ -0,0 +1,32 @@ +package Commands; + +import java.util.ArrayList; + +import Cli.Command; +import Cli.Token; +import Core.ActiveUserContext; +import Core.MyFoodora; +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import Exception.ExceptionUnknownStartegyType; +import User.Manager; + +public class ShowCourier extends Command { + + public ShowCourier() { + super("showCourier", new Token[]{}); + // TODO Auto-generated constructor stub + } + // + "showCustomers <> for the currently logged on myFoodora manager to display thelist of customers\n" + + @Override + public void execute(ArrayList<String> arguments, MyFoodora foodora, ActiveUserContext activeUser) { + if(activeUser.getUser() instanceof Manager){ + System.out.println(foodora.getListCourier().getList().toString()); + } + else{ + System.out.println("You need to be a manager in order to access this function"); + } + } + +} diff --git a/src/Commands/ShowMeal.java b/src/Commands/ShowMeal.java new file mode 100644 index 0000000..f06a99b --- /dev/null +++ b/src/Commands/ShowMeal.java @@ -0,0 +1,31 @@ +package Commands; + +import java.util.ArrayList; + +import Cli.Command; +import Cli.Token; +import Core.ActiveUserContext; +import Core.MyFoodora; +import User.Restaurant; + +public class ShowMeal extends Command { + + public ShowMeal() { + super("showMeal", + new Token[]{new Token(Token.TypeToken.str,"mealName")} + ); + // TODO Auto-generated constructor stub + } + + @Override + public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) throws NumberFormatException { + // TODO Auto-generated method stub + if(activeUser.getUser() instanceof Restaurant){ + Restaurant r = (Restaurant) activeUser.getUser(); + System.out.println(r.getMealByName(arg.get(0))); + }else{ + System.out.println("You need to be a logged Restaurant in order to access this function"); + } + } + +} diff --git a/src/Commands/ShowMenuItem.java b/src/Commands/ShowMenuItem.java new file mode 100644 index 0000000..42e1179 --- /dev/null +++ b/src/Commands/ShowMenuItem.java @@ -0,0 +1,37 @@ +package Commands; + +import java.util.ArrayList; + +import Cli.Command; +import Cli.Token; +import Core.ActiveUserContext; +import Core.MyFoodora; +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import Exception.ExceptionUnknownStartegyType; +import Order.Order; +import User.Customer; +import User.Manager; +import User.Restaurant; + +public class ShowMenuItem extends Command { + + public ShowMenuItem() { + super("showMenuItem", + new Token[]{new Token(Token.TypeToken.str,"restaurantName")} + ); + // TODO Auto-generated constructor stub + } + + @Override + public void execute(ArrayList<String> arg, MyFoodora foodora, ActiveUserContext activeUser) throws NumberFormatException { + // TODO Auto-generated method stub + if(activeUser.getUser() instanceof Manager){ + Restaurant r = (Restaurant) foodora.getUserByUsername(arg.get(0)); + System.out.println("List of Dishs : \n" + r.getListOfDish().toString() + "\n===========\nList of Meals : " + r.getListOfMeal().toString()); + }else{ + System.out.println("You need to be a logged Manager in order to access this function"); + } + } + +} diff --git a/src/Commands/ShowProfitBetween.java b/src/Commands/ShowProfitBetween.java new file mode 100644 index 0000000..b1f875b --- /dev/null +++ b/src/Commands/ShowProfitBetween.java @@ -0,0 +1,32 @@ +package Commands; + +import java.util.ArrayList; + +import Cli.Command; +import Cli.Token; +import Core.ActiveUserContext; +import Core.MyFoodora; +import User.Manager; + +public class ShowProfitBetween extends Command { + + public ShowProfitBetween() { + super("showProfitBetween", + new Token[]{new Token(Token.TypeToken.str,"dateBeg"), + new Token(Token.TypeToken.str,"dateEnd")} + ); + // TODO Auto-generated constructor stub + } + // + "showCustomers <> for the currently logged on myFoodora manager to display thelist of customers\n" + + @Override + public void execute(ArrayList<String> arguments, MyFoodora foodora, ActiveUserContext activeUser) { + if(activeUser.getUser() instanceof Manager){ + System.out.println(foodora.getGlobalProfit()); + } + else{ + System.out.println("You need to be a manager in order to access this function"); + } + } + +} diff --git a/src/Commands/ShowTotalProfit.java b/src/Commands/ShowTotalProfit.java new file mode 100644 index 0000000..073454d --- /dev/null +++ b/src/Commands/ShowTotalProfit.java @@ -0,0 +1,32 @@ +package Commands; + +import java.util.ArrayList; + +import Cli.Command; +import Cli.Token; +import Core.ActiveUserContext; +import Core.MyFoodora; +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import Exception.ExceptionUnknownStartegyType; +import User.Manager; + +public class ShowTotalProfit extends Command { + + public ShowTotalProfit() { + super("showTotalProfit", new Token[]{}); + // TODO Auto-generated constructor stub + } + // + "showCustomers <> for the currently logged on myFoodora manager to display thelist of customers\n" + + @Override + public void execute(ArrayList<String> arguments, MyFoodora foodora, ActiveUserContext activeUser) { + if(activeUser.getUser() instanceof Manager){ + System.out.println(foodora.getGlobalProfit()); + } + else{ + System.out.println("You need to be a manager in order to access this function"); + } + } + +} diff --git a/src/Core/Main.java b/src/Core/Main.java index 16df482..b606a98 100644 --- a/src/Core/Main.java +++ b/src/Core/Main.java @@ -8,6 +8,7 @@ import Cli.errorWrongNumberOfParams; import Exception.ExceptionUnknownDishType; import Exception.ExceptionUnknownMealType; import Exception.ExceptionUnknownStartegyType; +import Exception.ExceptionUnknownTypeOfUser; import Item.Dish; import Others.Adress; import User.User; @@ -22,7 +23,7 @@ public class Main { // TODO Auto-generated constructor stub } - public static void main(String[] args) throws ExceptionUnknownStartegyType, errorWrongNumberOfParams, errorWrongFormatValue, ExceptionUnknownDishType, ExceptionUnknownMealType { + public static void main(String[] args) throws ExceptionUnknownStartegyType, errorWrongNumberOfParams, errorWrongFormatValue, ExceptionUnknownDishType, ExceptionUnknownMealType, ExceptionUnknownTypeOfUser { // TODO Auto-generated method stub MyFoodora foodora = new MyFoodora(); ActiveUserContext activeUser = new ActiveUserContext(foodora); @@ -30,8 +31,9 @@ public class Main { foodora.setServiceFee(3.0); Clui clui = new Clui(foodora,activeUser); - Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); + Manager manager = new Manager(650588938, "ceo", "ceo", "ceo@centrale.supelec.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); + /* foodora.addManager(manager); foodora.addUser(manager); @@ -52,6 +54,7 @@ public class Main { clui.executeCommand("registerRestaurant 0123456789 resto resto mail password 0.01,0.02"); clui.executeCommand("registerCustomer 0123456789 custo custo mail password 0.01,0.02 22/03/1995"); clui.executeCommand("registerCourier 0123456789 resto1 resto1 mail password 0.01,0.02 22/03/1995"); + */ clui.launchClui(); } diff --git a/src/Core/MyFoodora.java b/src/Core/MyFoodora.java index bee8396..d51e6ab 100644 --- a/src/Core/MyFoodora.java +++ b/src/Core/MyFoodora.java @@ -1,6 +1,10 @@ package Core; +import java.time.ZoneId; import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.TimeZone; import Exception.ExceptionUnknownDishType; import Exception.ExceptionUnknownMealType; @@ -10,6 +14,7 @@ import Item.FactoryDish; import Item.FactoryMeal; import Item.Meal; import Order.HistoricOrder; +import Order.Order; import StrategyProfit.ContextTargetProfitStrategy; import User.Courier; import User.Customer; @@ -44,6 +49,8 @@ public class MyFoodora { private ListUser<Customer> listCustomer; private ListUser<Manager> listManager; private ListUser<Courier> listCourier; + + private ArrayList<Order> listPendingOrder; private HistoricOrder globalHistoric; @@ -78,6 +85,14 @@ public class MyFoodora { return null; } + public User getUserByUsername(String username){ + for(User user : this.getGlobalListUser().getList()){ + if(username.equals(user.getUsername())){ + return user; + } + } + return null; + } public User getUserByName(String username, String name){ for(User user : this.getGlobalListUser().getList()){ @@ -169,13 +184,6 @@ public class MyFoodora { } } } - /** CUSTOM GETTER AND SETTER **/ - - - public double getProfitForOneOrder(double priceOrder){ - return priceOrder*markupPercentage + serviceFee - deliveryCost; - // inutile ? non - } /** GENERIC GETTER AND SETTER **/ @@ -258,13 +266,91 @@ public class MyFoodora { this.deliveryCost = deliveryCost; } + public double getLastMonthIncome() { - // TODO Auto-generated method stub - return 0; + int theDay = new java.util.Date().getDay(); + int theMonth = new java.util.Date().getMonth() + 1 ; + int theYear = new java.util.Date().getYear() + 1900; + Others.Date today = new Others.Date(theYear, theMonth, theDay); + int lastMonth = 0; + int yearOfLastMonth = 0; + if(theMonth == 1){ + yearOfLastMonth=today.getIntYear()-1; + lastMonth = 12; + } + else{ + yearOfLastMonth=today.getIntYear(); + lastMonth=today.getIntMonth()-1; + } + double totalIncome = 0; + for(Order order : this.globalHistoric.getListOrder()){ + if((order.getDate().getIntMonth()== lastMonth)&(order.getDate().getIntYear()==yearOfLastMonth)){ + totalIncome = totalIncome + order.getPrice(); + } + } + + return totalIncome; } - public int getNumberOfOrder() { + + public ArrayList<Order> getOrderPendingList() { // TODO Auto-generated method stub - return 0; + return this.listPendingOrder; + } + + public Order getPendingOrderByName(String string) { + for(Order order : listPendingOrder){ + if(order.getNameOrder().equals(string)) + return order; + } + return null; + } + public Customer getCustomerByOrder(Order o){ + for(Customer c : this.getListCustomer().getList()){ + Order oc = c.getOrderByName(o.getNameOrder()); + if(oc == o) + return c; + } + return null; + } + + public int getNumberOfOrderLastMonth() { + Date date = null; // your date + Calendar cal = Calendar.getInstance(); + cal.setTimeZone(TimeZone.getDefault()); + cal.setTime(date); + int theYear = cal.get(Calendar.YEAR) + 1; + int theMonth = cal.get(Calendar.MONTH) + 2; + int theDay = cal.get(Calendar.DAY_OF_MONTH); + Others.Date today = new Others.Date(theYear, theMonth, theDay); + int lastMonth = 0; + int yearOfLastMonth = 0; + if(theMonth == 1){ + yearOfLastMonth=today.getIntYear()-1; + lastMonth = 12; + } + else{ + yearOfLastMonth=today.getIntYear(); + lastMonth=today.getIntMonth()-1; + } + int nbOfOrder = 0; + for(Order order : this.globalHistoric.getListOrder()){ + if((order.getDate().getIntMonth()== lastMonth)&(order.getDate().getIntYear()==yearOfLastMonth)){ + nbOfOrder++; + } + } + return nbOfOrder; + } + + public double getGlobalProfit(){ + + double totalProfit = 0; + for(Order order : this.globalHistoric.getListOrder()){ + if(order != null){ + totalProfit = order.getPrice()*this.markupPercentage + this.serviceFee - this.deliveryCost ; + } + } + + return totalProfit; } } diff --git a/src/DeliveryStrategy/FairOccupationDelivery.java b/src/DeliveryStrategy/FairOccupationDelivery.java index fa2f279..ce92f66 100644 --- a/src/DeliveryStrategy/FairOccupationDelivery.java +++ b/src/DeliveryStrategy/FairOccupationDelivery.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import User.Courier; import User.Customer; +import User.Restaurant; public class FairOccupationDelivery extends StrategyDeliveryPolicy { @@ -20,7 +21,7 @@ public class FairOccupationDelivery extends StrategyDeliveryPolicy { @Override - public Courier chooseCourier(Customer customer,ArrayList<Courier> listOfCourier) { + public Courier chooseCourier(Restaurant restaurant,Customer customer,ArrayList<Courier> listOfCourier) { long minNumberOfRun = 100000; Courier courierToChoose = null; for(Courier c : listOfCourier){ diff --git a/src/DeliveryStrategy/FastestDelivery.java b/src/DeliveryStrategy/FastestDelivery.java index f1a0ee8..948dbfe 100644 --- a/src/DeliveryStrategy/FastestDelivery.java +++ b/src/DeliveryStrategy/FastestDelivery.java @@ -6,6 +6,7 @@ import Others.Adress; import Others.Position; import User.Courier; import User.Customer; +import User.Restaurant; public class FastestDelivery extends StrategyDeliveryPolicy{ @@ -23,13 +24,14 @@ public class FastestDelivery extends StrategyDeliveryPolicy{ @Override - public Courier chooseCourier(Customer c,ArrayList<Courier> listOfCourier) { + public Courier chooseCourier(Restaurant restaurant,Customer c,ArrayList<Courier> listOfCourier) { Adress adress = c.getAdress(); + Adress adressRestaurant = restaurant.getAdress(); Courier courierToChoose = null; double distanceMin = 100000000; for(Courier courier : listOfCourier){ Position position = courier.getPosition(); - double distance = Math.sqrt( Math.pow((adress.getX() - position.getX()), 2) + Math.pow((adress.getY() - position.getY()), 2)); + double distance = Math.sqrt( Math.pow((adressRestaurant.getX() - position.getX()), 2) + Math.pow((adressRestaurant.getY() - position.getY()), 2)) + Math.sqrt( Math.pow((adressRestaurant.getX() - adress.getX()), 2) + Math.pow((adressRestaurant.getY() - adress.getY()), 2)); if((distance <= distanceMin)&(courier.isAvailable())){ distanceMin = distance; courierToChoose = courier; diff --git a/src/DeliveryStrategy/StrategyDeliveryPolicy.java b/src/DeliveryStrategy/StrategyDeliveryPolicy.java index 0ae3706..e08b9a7 100644 --- a/src/DeliveryStrategy/StrategyDeliveryPolicy.java +++ b/src/DeliveryStrategy/StrategyDeliveryPolicy.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import User.Courier; import User.Customer; +import User.Restaurant; public abstract class StrategyDeliveryPolicy { @@ -28,6 +29,6 @@ public abstract class StrategyDeliveryPolicy { - public abstract Courier chooseCourier(Customer c,ArrayList<Courier> listOfCourier); + public abstract Courier chooseCourier(Restaurant restaurant, Customer c,ArrayList<Courier> listOfCourier); } diff --git a/src/Exception/ExceptionUnknownTypeOfUser.java b/src/Exception/ExceptionUnknownTypeOfUser.java new file mode 100644 index 0000000..4f10522 --- /dev/null +++ b/src/Exception/ExceptionUnknownTypeOfUser.java @@ -0,0 +1,38 @@ +package Exception; + +public class ExceptionUnknownTypeOfUser extends Exception { + + + + /** + * + */ + private static final long serialVersionUID = 147789654641165L; + + public ExceptionUnknownTypeOfUser() { + // TODO Auto-generated constructor stub + } + + public ExceptionUnknownTypeOfUser(String message) { + super(message); + // TODO Auto-generated constructor stub + } + + public ExceptionUnknownTypeOfUser(Throwable cause) { + super(cause); + // TODO Auto-generated constructor stub + } + + public ExceptionUnknownTypeOfUser(String message, Throwable cause) { + super(message, cause); + // TODO Auto-generated constructor stub + } + + public ExceptionUnknownTypeOfUser(String message, Throwable cause, boolean enableSuppression, + boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + // TODO Auto-generated constructor stub + } + + +} diff --git a/src/Item/FactoryMeal.java b/src/Item/FactoryMeal.java index 580ff59..e6ec677 100644 --- a/src/Item/FactoryMeal.java +++ b/src/Item/FactoryMeal.java @@ -8,9 +8,9 @@ public class FactoryMeal { typeOfMeal=typeOfMeal.toLowerCase().trim(); switch(typeOfMeal){ case "halfmeal": - return new HalfMeal(nameOfMeal,typeOfMeal); + return new HalfMeal(nameOfMeal,"unknown"); case "fullmeal": - return new FullMeal(nameOfMeal,typeOfMeal); + return new FullMeal(nameOfMeal,"unknown"); default: throw new ExceptionUnknownMealType("Error, '"+typeOfMeal+"' is unkwon, try HalfMeal or FullMeal."); } diff --git a/src/Item/FullMeal.java b/src/Item/FullMeal.java index 49d18b7..de047d4 100644 --- a/src/Item/FullMeal.java +++ b/src/Item/FullMeal.java @@ -4,12 +4,13 @@ import java.util.ArrayList; import java.util.Arrays; public class FullMeal extends Meal { + public FullMeal(String name, String typeOfFood) { super(name, typeOfFood); String [][] pattern = {{"Starter"},{"MainDish"},{"Dessert"}}; this.setPatternTypeInMeal(pattern); - this.typeOfMeal = "Full"; + this.typeOfMeal = "FullMeal"; this.listDish = new ArrayList<Dish>(Arrays.asList(null, null, null)); } diff --git a/src/Item/HalfMeal.java b/src/Item/HalfMeal.java index ded6d14..1a5bd1c 100644 --- a/src/Item/HalfMeal.java +++ b/src/Item/HalfMeal.java @@ -5,13 +5,14 @@ import java.util.Arrays; public class HalfMeal extends Meal { - protected String typeOfMeal; + + protected String typeOfFood; public HalfMeal(String name, String typeOfFood) { super(name, typeOfFood); String [][] pattern = {{"Starter","Dessert"},{"MainDish"}}; this.setPatternTypeInMeal(pattern); - this.typeOfMeal = "Half"; + this.typeOfMeal = "HalfMeal"; this.listDish = new ArrayList<Dish>(Arrays.asList(null, null)); } diff --git a/src/Item/Meal.java b/src/Item/Meal.java index 2302321..9f4040d 100644 --- a/src/Item/Meal.java +++ b/src/Item/Meal.java @@ -49,7 +49,6 @@ public abstract class Meal extends Item{ } idInMenuInc+=1; } - System.out.println(dish.getTypeInMeal()); if(idInMenu>-1){ if(listDish.get(idInMenu)==null){ listDish.set(idInMenu, dish); @@ -65,12 +64,16 @@ public abstract class Meal extends Item{ public void removeDish(String name){ boolean itemRemoved = false; + Dish dishToRemove = null; for(Dish dish: listDish){ if(dish.getName()==name){ - listDish.remove(dish); + dishToRemove = dish; itemRemoved=true; } } + if(dishToRemove != null){ + listDish.remove(dishToRemove); + } if(itemRemoved) System.out.println("Dish removed !"); } diff --git a/src/Offers/BirthdayOffer.java b/src/Offers/BirthdayOffer.java index 09d00a4..e9e5184 100644 --- a/src/Offers/BirthdayOffer.java +++ b/src/Offers/BirthdayOffer.java @@ -3,6 +3,7 @@ package Offers; import java.util.ArrayList; import Item.Meal; +import User.Restaurant; public class BirthdayOffer implements ObservableOffer { @@ -31,12 +32,6 @@ public class BirthdayOffer implements ObservableOffer { } - @Override - public void notifyall() { - // TODO Auto-generated method stub - - } - public boolean isState() { return state; } @@ -52,6 +47,12 @@ public class BirthdayOffer implements ObservableOffer { public void setObservers(ArrayList<Observer> observers) { this.observers = observers; } + + @Override + public void notifyObservers(Restaurant r) { + // TODO Auto-generated method stub + + } diff --git a/src/Offers/MealOfTheWeek.java b/src/Offers/MealOfTheWeek.java index 68b750a..42fe167 100644 --- a/src/Offers/MealOfTheWeek.java +++ b/src/Offers/MealOfTheWeek.java @@ -3,21 +3,25 @@ package Offers; import java.util.ArrayList; import Item.Meal; +import User.Restaurant; public class MealOfTheWeek implements ObservableOffer { private boolean state; private Meal meal; + private boolean changed; private ArrayList<Observer> observers = new ArrayList<Observer>(); - public MealOfTheWeek(boolean state, Meal meal,ArrayList<Observer> observers) { + + public MealOfTheWeek(Meal meal) { super(); this.state = true; this.meal = meal; + this.changed = false; this.observers = new ArrayList<Observer>(); } @@ -58,14 +62,38 @@ public class MealOfTheWeek implements ObservableOffer { this.observers.remove(o); } + + + + public ArrayList<Observer> getObservers() { + return observers; + } + + + + public void setObservers(ArrayList<Observer> observers) { + this.observers = observers; + } + + @Override - public void notifyall() { - for (Observer observer : this.observers) { - observer.update(); - + public void notifyObservers(Restaurant r) { + if(this.changed){ + for (Observer observer : this.observers) { + String message = "A new Offer Meal Of The Week is Available in the Restaurant : " + r.getName() + "\n " + + "Meal : " + this.meal.toString(); + observer.update(message); + } + this.changed=false; } - + } + + public void setInterests(Restaurant r){ + this.changed=true; + this.notifyObservers(r); } } + + diff --git a/src/Offers/ObservableOffer.java b/src/Offers/ObservableOffer.java index abd6547..4952c24 100644 --- a/src/Offers/ObservableOffer.java +++ b/src/Offers/ObservableOffer.java @@ -1,10 +1,12 @@ package Offers; +import User.Restaurant; + public interface ObservableOffer { public abstract void attachObserver(Observer o); public abstract void detachObserver(Observer o); - public abstract void notifyall(); + public abstract void notifyObservers(Restaurant r); } diff --git a/src/Offers/Observer.java b/src/Offers/Observer.java index b98f024..b456789 100644 --- a/src/Offers/Observer.java +++ b/src/Offers/Observer.java @@ -2,6 +2,6 @@ package Offers; public interface Observer { - public abstract void update(); + public void update(String offer); } diff --git a/src/Order/Order.java b/src/Order/Order.java index c4e6cf4..c83efd3 100644 --- a/src/Order/Order.java +++ b/src/Order/Order.java @@ -3,10 +3,13 @@ package Order; import java.util.ArrayList; import java.util.Date; +import Core.MyFoodora; import Item.Dish; +import Item.Item; import Item.Meal; import Item.VisitablePrice; import Item.VisitorPrice; +import Offers.MealOfTheWeek; import Others.Period; import User.Restaurant; @@ -52,6 +55,15 @@ public class Order implements Comparable<Order>{ finalized = true; } + public void finalize(MyFoodora foodora){ + int theDay = new java.util.Date().getDay(); + int theMonth = new java.util.Date().getMonth() + 1 ; + int theYear = new java.util.Date().getYear() + 1900; + this.date = new Others.Date(theYear, theMonth, theDay); + finalized = true; + foodora.getOrderPendingList().add(this); + } + public static ArrayList<Order> getListOfOrderInAPeriod(HistoricOrder historic,Period period){ ArrayList<Order> listOrder = new ArrayList<Order>(); int beginDay = period.getBeginingOfPeriod().getIntDay(); @@ -119,8 +131,19 @@ public class Order implements Comparable<Order>{ return listOrder; } + + /** ADD & REMOVE **/ - /** AND & REMOVE **/ + public void addItemByName(String string) { + Item item = this.restaurantAttached.getDishByName(string); + if(item != null) + this.add((Dish) item); + item = this.restaurantAttached.getMealByName(string); + if(item != null) + this.add((Meal) item); + if(item == null) + System.out.println("Unknown item."); + } public void add(Dish d){ listDish.add(d); @@ -147,13 +170,35 @@ public class Order implements Comparable<Order>{ /** GETTER AND SETTER **/ + + public boolean isFinalised(){ return finalized; } + public Restaurant getRestaurantAttached() { + return restaurantAttached; + } + + public void setRestaurantAttached(Restaurant restaurantAttached) { + this.restaurantAttached = restaurantAttached; + } + public double getPrice(){ price = 0; + MealOfTheWeek mealOfTheWeekAttachedToRestaurant = restaurantAttached.getMealOfTheWeek(); + String nameOfTheMealOfTheWeek = null; + for(Meal m : restaurantAttached.getListOfMeal()){ + if(mealOfTheWeekAttachedToRestaurant.getMeal().getName() == m.getName()){ + nameOfTheMealOfTheWeek = m.getName(); + } + } for(Meal meal : listMeal){ - price += meal.getPrice()*(1-restaurantAttached.getGeneralDiscountFactor()); + if(meal.getName() == nameOfTheMealOfTheWeek){ + price += meal.getPrice()*(1-restaurantAttached.getSpecialDiscountFactor()); + } + else{ + price += meal.getPrice()*(1-restaurantAttached.getGeneralDiscountFactor()); + } } for(Dish dish : listDish){ price += dish.getPrice(); @@ -183,6 +228,12 @@ public class Order implements Comparable<Order>{ public void setListMeal(ArrayList<Meal> listMeal) { this.listMeal = listMeal; } + + + + public void setDate(Others.Date date) { + this.date = date; + } @Override public int compareTo(Order o) { diff --git a/src/StrategyProfit/TargetProfitDeliveryCost.java b/src/StrategyProfit/TargetProfitDeliveryCost.java index 31ce9bd..ab58274 100644 --- a/src/StrategyProfit/TargetProfitDeliveryCost.java +++ b/src/StrategyProfit/TargetProfitDeliveryCost.java @@ -12,8 +12,13 @@ public class TargetProfitDeliveryCost extends StrategyTargetProfitPolicy { public void chooseTargetProfit(MyFoodora myFoodora, double targetProfit) { // TODO Auto-generated method stub double lastMonthIncome = myFoodora.getLastMonthIncome(); - int numberOfOrder = myFoodora.getNumberOfOrder(); - myFoodora.setDeliveryCost(lastMonthIncome*myFoodora.getMarkupPercentage()+myFoodora.getServiceFee()*numberOfOrder-targetProfit); + int numberOfOrder = myFoodora.getNumberOfOrderLastMonth(); + if(numberOfOrder !=0){ + double newDeliveryCost = myFoodora.getServiceFee() + (lastMonthIncome*myFoodora.getMarkupPercentage()-targetProfit)/numberOfOrder; + if(newDeliveryCost > 0){ + myFoodora.setDeliveryCost(newDeliveryCost); + } + } } } diff --git a/src/StrategyProfit/TargetProfitMarkup.java b/src/StrategyProfit/TargetProfitMarkup.java index c312029..76ac7aa 100644 --- a/src/StrategyProfit/TargetProfitMarkup.java +++ b/src/StrategyProfit/TargetProfitMarkup.java @@ -12,8 +12,13 @@ public class TargetProfitMarkup extends StrategyTargetProfitPolicy { public void chooseTargetProfit(MyFoodora myFoodora, double targetProfit) { // TODO Auto-generated method stub double lastMonthIncome = myFoodora.getLastMonthIncome(); - int numberOfOrder = myFoodora.getNumberOfOrder(); - myFoodora.setMarkupPercentage((targetProfit-myFoodora.getServiceFee()*numberOfOrder+myFoodora.getDeliveryCost()*numberOfOrder)/lastMonthIncome); + int numberOfOrder = myFoodora.getNumberOfOrderLastMonth(); + if(lastMonthIncome !=0){ + double newMarkupPercentage = (targetProfit-myFoodora.getServiceFee()*numberOfOrder+myFoodora.getDeliveryCost()*numberOfOrder)/lastMonthIncome; + if(newMarkupPercentage >0){ + myFoodora.setMarkupPercentage(newMarkupPercentage); + } + } } } diff --git a/src/StrategyProfit/TargetProfitServiceFee.java b/src/StrategyProfit/TargetProfitServiceFee.java index aeb5a3f..1a44d06 100644 --- a/src/StrategyProfit/TargetProfitServiceFee.java +++ b/src/StrategyProfit/TargetProfitServiceFee.java @@ -12,8 +12,15 @@ public class TargetProfitServiceFee extends StrategyTargetProfitPolicy { public void chooseTargetProfit(MyFoodora myFoodora, double targetProfit) { // TODO Auto-generated method stub double lastMonthIncome = myFoodora.getLastMonthIncome(); - int numberOfOrder = myFoodora.getNumberOfOrder(); - myFoodora.setServiceFee(targetProfit-lastMonthIncome*myFoodora.getMarkupPercentage()+myFoodora.getDeliveryCost()*numberOfOrder); + int numberOfOrder = myFoodora.getNumberOfOrderLastMonth(); + if(numberOfOrder !=0){ + double newServiceFee = (targetProfit-lastMonthIncome*myFoodora.getMarkupPercentage())/numberOfOrder + myFoodora.getDeliveryCost(); + if(newServiceFee >0){ + myFoodora.setServiceFee(newServiceFee); + + } + } + } } diff --git a/src/User/Courier.java b/src/User/Courier.java index 97ca2a4..dba39a5 100644 --- a/src/User/Courier.java +++ b/src/User/Courier.java @@ -50,6 +50,11 @@ public class Courier extends HumanUser { return position; } + + + public void setNbOfLivraison(long nbOfLivraison) { + this.nbOfLivraison = nbOfLivraison; + } public void setPosition(Position position) { this.position = position; diff --git a/src/User/Customer.java b/src/User/Customer.java index c0ed572..312b20e 100644 --- a/src/User/Customer.java +++ b/src/User/Customer.java @@ -36,6 +36,7 @@ public class Customer extends HumanUser implements VisiterCard,Observer { private FidelityCard card; private IDCard idCard; private ArrayList<Order> listOrder = new ArrayList<Order>(); + private long nbOfOfferReceived; public Customer(long phoneNumber, String name, String username, String mail, String password, Adress adress, boolean activated, String birthdayDate, String surname) { @@ -44,6 +45,7 @@ public class Customer extends HumanUser implements VisiterCard,Observer { this.spamAgree = true; this.card = new BasicFidelityCard(); this.typeOfUser = CUSTOMER; + this.nbOfOfferReceived = 0; } public FidelityCard getCard() { @@ -69,6 +71,7 @@ public class Customer extends HumanUser implements VisiterCard,Observer { ArrayList<Dish> cartOfRestaurant = restaurant.getListOfDish(); ArrayList<Meal> cartOfMeal = restaurant.getListOfMeal(); Order order = new Order(); + order.setRestaurantAttached(restaurant); if(mealOrDish == "Dish"){ for(String item : listOfItem){ boolean isIn = false; @@ -109,12 +112,22 @@ public class Customer extends HumanUser implements VisiterCard,Observer { } this.historic.addOrder(order); restaurant.historic.addOrder(order); - Courier chosenCourier = foodora.getContextDeliveryPolicy().getStrategy().chooseCourier(this,foodora.getListCourier().getList()); + Courier chosenCourier = foodora.getContextDeliveryPolicy().getStrategy().chooseCourier(restaurant, this,foodora.getListCourier().getList()); chosenCourier.acceptDelivery(order); + foodora.getOrderPendingList().remove(order); foodora.getGlobalHistoric().addOrder(order); if (this.card instanceof PointFidelityCard){ ((PointFidelityCard) this.card).setNbOfPoint(this.getPointInTheCard() + 1); } + double price = order.getPrice()*(1 + foodora.getMarkupPercentage()) + foodora.getDeliveryCost() + foodora.getServiceFee(); + boolean chance = false; + if(this.card instanceof LotteryFidelityCard){ + chance = ((LotteryFidelityCard) this.card).getReduction(); + } + if(chance){ + price = price*0.75; + } + System.out.println("You have to pay " + price); } @@ -206,7 +219,7 @@ public class Customer extends HumanUser implements VisiterCard,Observer { if (newTypeOfFidelityCard == "Lottery"){ idCard=IDCard.getInstance(); - this.card = new LotteryFidelityCard(10); + this.card = new LotteryFidelityCard(); } } @@ -232,13 +245,28 @@ public class Customer extends HumanUser implements VisiterCard,Observer { return 0; } else { - return visit(card); + return visit((PointFidelityCard)card); + } + } + + public double getPercentageInTheCard(){ + if((this.card.returnType() == "Point") || (this.card.returnType() == "Basic")){ + System.out.println("You don't have the right type of Card"); + return 0; + } + else { + return visit((LotteryFidelityCard)card); } } + + @Override + public double visit(LotteryFidelityCard card){ + return card.acceptPercentage(); + } @Override - public long visit(VisitableCard card) { - return card.accept(); + public long visit(PointFidelityCard card) { + return card.acceptPoint(); } public void acceptSpam (){ @@ -261,12 +289,6 @@ public class Customer extends HumanUser implements VisiterCard,Observer { } - @Override - public void update() { - System.out.println(); - - } - public void createOrder(String name, Restaurant restaurant){ Order order = new Order(name,restaurant); @@ -275,11 +297,23 @@ public class Customer extends HumanUser implements VisiterCard,Observer { public Order getOrderByName(String string) { for(Order order : listOrder){ - if(order.getNameOrder() == string) + if(order.getNameOrder().equals(string)); return order; } return null; } + + @Override + public void update(String offer) { + System.out.println(offer); + this.nbOfOfferReceived++; + } + + public long getNbOfOfferReceived() { + return nbOfOfferReceived; + } + + } diff --git a/src/User/Manager.java b/src/User/Manager.java index 2fbc15d..55e1ad1 100644 --- a/src/User/Manager.java +++ b/src/User/Manager.java @@ -1,6 +1,8 @@ package User; import Core.MyFoodora; import DeliveryStrategy.ContextDeliveryStrategy; +import Exception.ExceptionUnknownMealType; +import Exception.ExceptionUnknownTypeOfUser; import Item.Dish; import Item.HalfMeal; import Order.HistoricOrder; @@ -38,7 +40,7 @@ public class Manager extends HumanUser { public void addUser(long phoneNumber, String name, String username, String mail, String password, Adress adress, - boolean activated , String birthdayDate, String surname,MyFoodora foodora, int typeOfUser, String kindOfUser){ + boolean activated , String birthdayDate, String surname,MyFoodora foodora, int typeOfUser, String kindOfUser) throws ExceptionUnknownTypeOfUser{ if ((kindOfUser == "Human") || (kindOfUser == "Moral")){ UserFactory factory = FactoryUserFactory.createUserFactory(kindOfUser); @@ -158,6 +160,10 @@ public class Manager extends HumanUser { } + public void executeTargetProfitPolicy(MyFoodora foodora, double targetProfit){ + foodora.getContextTargetProfitStrategy().execute(foodora, targetProfit); + } + public String getMostSellingRestaurant(MyFoodora foodora){ ListUser<Restaurant> listOfRestaurant = foodora.getListRestaurant(); Restaurant mostSellingRestaurant = null; @@ -320,5 +326,4 @@ public class Manager extends HumanUser { return restaurant.getSortListOfDish(); } - } diff --git a/src/User/Restaurant.java b/src/User/Restaurant.java index d3c9245..0c2f764 100644 --- a/src/User/Restaurant.java +++ b/src/User/Restaurant.java @@ -3,6 +3,7 @@ package User; import java.lang.reflect.Array; import java.util.ArrayList; +import Core.MyFoodora; import Exception.ExceptionUnknownDishType; import Exception.ExceptionUnknownMealType; import Item.Dish; @@ -11,6 +12,7 @@ import Item.FactoryMeal; import Item.HalfMeal; import Item.Item; import Item.Meal; +import Offers.MealOfTheWeek; import Others.Adress; public class Restaurant extends MoralUser { @@ -21,6 +23,7 @@ public class Restaurant extends MoralUser { private ArrayList<Dish> listOfDish; private double generalDiscountFactor; private double specialDiscountFactor; + private MealOfTheWeek mealOfTheWeek; /** CONSTRUCTOR **/ @@ -29,6 +32,7 @@ public class Restaurant extends MoralUser { super(phoneNumber, name, username, mail, password, adress, activated); this.listOfMeal = new ArrayList<Meal>(); this.listOfDish = new ArrayList<Dish>(); + this.mealOfTheWeek = new MealOfTheWeek(null); this.typeOfUser = RESTAURANT; this.generalDiscountFactor = 0.05; this.specialDiscountFactor = 0.1; @@ -166,7 +170,7 @@ public class Restaurant extends MoralUser { ArrayList<HalfMeal> listOfHalMeal = new ArrayList<HalfMeal>(); ArrayList<HalfMeal> sortedListOfHalMeal = new ArrayList<HalfMeal>(); for(Meal m : this.listOfMeal){ - if(m.getTypeOfMeal() == "Half"){ + if(m.getTypeOfMeal() == "HalfMeal"){ listOfHalMeal.add((HalfMeal) m); } } @@ -210,4 +214,32 @@ public class Restaurant extends MoralUser { } + public void addMealOfTheWeek(MyFoodora foodora, String nameOfMeal){ + for(Meal meal : listOfMeal){ + if(meal.getName() == nameOfMeal){ + this.mealOfTheWeek.setMeal(meal); + } + } + for(Customer c : foodora.getListCustomer().getList()){ + if(c.isSpamAgree()){ + this.mealOfTheWeek.attachObserver(c); + } + } + this.mealOfTheWeek.setInterests(this); + } + + public void removeMealOfTheWeek(MyFoodora foodora){ + this.mealOfTheWeek = new MealOfTheWeek(null); + } + + public MealOfTheWeek getMealOfTheWeek() { + return mealOfTheWeek; + } + + public void setMealOfTheWeek(MealOfTheWeek mealOfTheWeek) { + this.mealOfTheWeek = mealOfTheWeek; + } + + + } diff --git a/src/UserFactoryPattern/FactoryUserFactory.java b/src/UserFactoryPattern/FactoryUserFactory.java index bff96a3..b9c63a9 100644 --- a/src/UserFactoryPattern/FactoryUserFactory.java +++ b/src/UserFactoryPattern/FactoryUserFactory.java @@ -1,8 +1,11 @@ package UserFactoryPattern; +import Exception.ExceptionUnknownMealType; +import Exception.ExceptionUnknownTypeOfUser; + public abstract class FactoryUserFactory { - public static UserFactory createUserFactory(String typeOfUserFactory){ + public static UserFactory createUserFactory(String typeOfUserFactory) throws ExceptionUnknownTypeOfUser { if(typeOfUserFactory == "Human"){ HumanUserFactory humanUF = new HumanUserFactory(); return humanUF ; @@ -12,8 +15,7 @@ public abstract class FactoryUserFactory { return moralUF ; } else { - System.out.println("Please choose your type of User to create between Human and Moral"); - return null; + throw new ExceptionUnknownTypeOfUser("Error, '"+typeOfUserFactory+"' is unkwon, try Human or Moral."); } } diff --git a/src/UserFactoryPattern/HumanUserFactory.java b/src/UserFactoryPattern/HumanUserFactory.java index cc99457..082cdb0 100644 --- a/src/UserFactoryPattern/HumanUserFactory.java +++ b/src/UserFactoryPattern/HumanUserFactory.java @@ -2,6 +2,7 @@ package UserFactoryPattern; import Cli.Confirm; import Cli.Input; +import Exception.ExceptionUnknownTypeOfUser; import Others.Adress; import User.Courier; import User.Customer; @@ -15,7 +16,7 @@ public class HumanUserFactory extends UserFactory{ @Override public HumanUser createHumanUser(long phoneNumber, String name, String username, String mail, String password, - Adress adress, boolean activated, String birthdayDate, String surname, int typeOfUser) { + Adress adress, boolean activated, String birthdayDate, String surname, int typeOfUser) throws ExceptionUnknownTypeOfUser { if(typeOfUser == COURIER){ Courier courier = new Courier(phoneNumber, name, username, mail, password, adress, activated, birthdayDate, surname); @@ -32,8 +33,7 @@ public class HumanUserFactory extends UserFactory{ return manager; } else { - System.out.println("Please choose your new Human User between COURIER ("+ COURIER + "), CUSTOMER ("+ CUSTOMER + ") and MANAGER ("+ MANAGER + ")"); - return null; + throw new ExceptionUnknownTypeOfUser("Error, '"+typeOfUser+"' is unkwon, try Customer" + CUSTOMER +" , Courier : " + COURIER + "or Manager : " + MANAGER); } } diff --git a/src/UserFactoryPattern/MoralUserFactory.java b/src/UserFactoryPattern/MoralUserFactory.java index 8356ce4..e8db80b 100644 --- a/src/UserFactoryPattern/MoralUserFactory.java +++ b/src/UserFactoryPattern/MoralUserFactory.java @@ -1,5 +1,6 @@ package UserFactoryPattern; +import Exception.ExceptionUnknownTypeOfUser; import Others.Adress; import User.Courier; import User.HumanUser; @@ -16,15 +17,14 @@ public class MoralUserFactory extends UserFactory { @Override public MoralUser createMoralUser(long phoneNumber, String name, String username, String mail, String password, - Adress adress, boolean activated, int typeOfUser) { + Adress adress, boolean activated, int typeOfUser) throws ExceptionUnknownTypeOfUser { if(typeOfUser == RESTAURANT){ Restaurant restaurant = new Restaurant(phoneNumber, name, username, mail, password, adress, activated); return restaurant; } else { - System.out.println("You have to choose between : Restaurant ("+ RESTAURANT + ")"); - return null; + throw new ExceptionUnknownTypeOfUser("Error, '"+typeOfUser+"' is unkwon, try Restaurant" + RESTAURANT); } } diff --git a/src/UserFactoryPattern/UserFactory.java b/src/UserFactoryPattern/UserFactory.java index 9581948..452223d 100644 --- a/src/UserFactoryPattern/UserFactory.java +++ b/src/UserFactoryPattern/UserFactory.java @@ -7,6 +7,7 @@ import java.util.*; import javax.management.RuntimeErrorException; +import Exception.ExceptionUnknownTypeOfUser; import Others.Adress; import User.HumanUser; import User.MoralUser; @@ -20,9 +21,9 @@ public abstract class UserFactory { public static final int MANAGER = 4; public abstract HumanUser createHumanUser(long phoneNumber, String name, String username, String mail, String password, - Adress adress, boolean activated, String birthdayDate, String surname,int typeOfUser); + Adress adress, boolean activated, String birthdayDate, String surname,int typeOfUser) throws ExceptionUnknownTypeOfUser; public abstract MoralUser createMoralUser(long phoneNumber, String name, String username, String mail, String password, - Adress adress, boolean activated,int typeOfUser); + Adress adress, boolean activated,int typeOfUser)throws ExceptionUnknownTypeOfUser; } diff --git a/src/model.di b/src/model.di new file mode 100644 index 0000000..bf9abab --- /dev/null +++ b/src/model.di @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/> diff --git a/src/model.notation b/src/model.notation new file mode 100644 index 0000000..cf3b4a4 --- /dev/null +++ b/src/model.notation @@ -0,0 +1,2276 @@ +<?xml version="1.0" encoding="UTF-8"?> +<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_AN9ZEBVKEeeMzp7YIeMZtw" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel"> + <children xmi:type="notation:Shape" xmi:id="_td6vkBVLEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_td6vkhVLEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_td6vkxVLEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_td6vlBVLEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_td6vlRVLEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_td6vlhVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_td6vlxVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_td6vmBVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_td6vmRVLEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_td6vmhVLEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_td6vmxVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_td6vnBVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_td6vnRVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_td6vnhVLEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_td6vnxVLEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_td6voBVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_td6voRVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_td6vohVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_td6voxVLEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_tdw-kBVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_td6vkRVLEeeMzp7YIeMZtw" x="2399" y="1088"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_3Heq0RVLEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_3Heq0xVLEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_3Heq1BVLEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_3Heq1RVLEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_3Heq1hVLEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_3Heq1xVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_3Heq2BVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_3Heq2RVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Heq2hVLEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_3Heq2xVLEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_3Heq3BVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_3Heq3RVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_3Heq3hVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Heq3xVLEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_3Heq4BVLEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_3Heq4RVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_3Heq4hVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_3Heq4xVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Heq5BVLEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_3Heq0BVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Heq0hVLEeeMzp7YIeMZtw" x="2519" y="1090"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_7yg2kRVLEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_7yg2kxVLEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_7yg2lBVLEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_7yg2lRVLEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_7yg2lhVLEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_7yg2lxVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_7yg2mBVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_7yg2mRVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7yg2mhVLEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_7yg2mxVLEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_7yg2nBVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_7yg2nRVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_7yg2nhVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7yg2nxVLEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_7yg2oBVLEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_7yg2oRVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_7yg2ohVLEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_7yg2oxVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7yg2pBVLEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_7yg2kBVLEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7yg2khVLEeeMzp7YIeMZtw" x="2651" y="1080"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_0EXCoBVMEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_0EXCohVMEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_0EXCoxVMEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_0EXCpBVMEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_0EXCpRVMEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_-U5eUBVMEeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_-UmjYBVMEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_-U5eURVMEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_FrX8oBVNEeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_FrEaoBVNEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_FrX8oRVNEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_OA0n0BVREeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_OAX74BVREeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_OA0n0RVREeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_0EXCphVMEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_0EXCpxVMEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_0EXCqBVMEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0EXCqRVMEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_0EXCqhVMEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_0EXCqxVMEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_0EXCrBVMEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_0EXCrRVMEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0EXCrhVMEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_0EXCrxVMEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_0EXCsBVMEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_0EXCsRVMEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_0EXCshVMEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0EXCsxVMEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_0EEHsBVMEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0EXCoRVMEeeMzp7YIeMZtw" x="2503" y="934"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_4sOJIRVNEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_4sOJIxVNEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_4sOJJBVNEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_4sOJJRVNEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_4sOJJhVNEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_4sOJJxVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_4sOJKBVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_4sOJKRVNEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4sOJKhVNEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_4sOJKxVNEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_5RXoIBVOEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_5QxLMBVOEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_5RXoIRVOEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_4sOJLBVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_4sOJLRVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_4sOJLhVNEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4sOJLxVNEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_4sOJMBVNEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_4sOJMRVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_4sOJMhVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_4sOJMxVNEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4sOJNBVNEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_4sOJIBVNEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4sOJIhVNEeeMzp7YIeMZtw" x="2638" y="739" width="227"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_9zOfMRVNEeeMzp7YIeMZtw" type="Interface_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_9zOfMxVNEeeMzp7YIeMZtw" type="Interface_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_9zOfNBVNEeeMzp7YIeMZtw" type="Interface_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_9zOfNRVNEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_9zOfNhVNEeeMzp7YIeMZtw" type="Interface_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_9zOfNxVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_9zOfOBVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_9zOfORVNEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9zOfOhVNEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_9zOfOxVNEeeMzp7YIeMZtw" type="Interface_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_9zOfPBVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_9zOfPRVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_9zOfPhVNEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9zOfPxVNEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_9zOfQBVNEeeMzp7YIeMZtw" type="Interface_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_9zOfQRVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_9zOfQhVNEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_9zOfQxVNEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9zOfRBVNEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Interface" href="model.uml#_9zOfMBVNEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9zOfMhVNEeeMzp7YIeMZtw" x="2176" y="799" height="62"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QsWr8xVPEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QsWr9BVPEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QsWr9RVPEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QsWr9hVPEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWr9xVPEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWr-BVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWr-RVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWr-hVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWr-xVPEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWr_BVPEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QsWr_RVPEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QsWr8RVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QsWr_hVPEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWr_xVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsABVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWsARVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsAhVPEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWsAxVPEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWsBBVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsBRVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWsBhVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsBxVPEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QsWr7xVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsCxVPEeeMzp7YIeMZtw" x="1418" y="929" width="227"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QsWsSBVPEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QsWsSRVPEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QsWsShVPEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QsWsSxVPEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWsTBVPEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWsTRVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsThVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWsTxVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsUBVPEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWsURVPEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWsUhVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsUxVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWsVBVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsVRVPEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWsVhVPEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWsVxVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsWBVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWsWRVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsWhVPEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QsWr4xVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsXhVPEeeMzp7YIeMZtw" x="1983" y="1091"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QsWsXxVPEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QsWsYBVPEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QsWsYRVPEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QsWsYhVPEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWsYxVPEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWsZBVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsZRVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWsZhVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsZxVPEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWsaBVPEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWsaRVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsahVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWsaxVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsbBVPEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWsbRVPEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWsbhVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsbxVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWscBVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWscRVPEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QsWr4RVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsdRVPEeeMzp7YIeMZtw" x="1732" y="1088"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QsWslBVPEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QsWslRVPEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QsWslhVPEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QsWslxVPEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWsmBVPEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QsWsmRVPEeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QsWr7RVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QsWsmhVPEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_SCRggBVQEeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_SBh5oBVQEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_SCRggRVQEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_bQ1FUBVREeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_bQOoYBVREeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_bQ1FURVREeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWsnRVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsnhVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWsnxVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsoBVPEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWsoRVPEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_uK47kBVREeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_uKTFsBVREeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_uK47kRVREeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWsohVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsoxVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWspBVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWspRVPEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QsWsphVPEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QsWspxVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QsWsqBVPEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QsWsqRVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsqhVPEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QsWr7BVPEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QsWsrhVPEeeMzp7YIeMZtw" x="1826" y="930"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_D3T2oBVQEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_D3T2ohVQEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_D3T2oxVQEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_D3T2pBVQEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_D3T2pRVQEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_D3T2phVQEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_D3T2pxVQEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_D3T2qBVQEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D3T2qRVQEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_D3T2qhVQEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_D3T2qxVQEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_D3T2rBVQEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_D3T2rRVQEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D3T2rhVQEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_D3T2rxVQEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_D3T2sBVQEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_D3T2sRVQEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_D3T2shVQEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D3T2sxVQEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_D3KFoBVQEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D3T2oRVQEeeMzp7YIeMZtw" x="1783" y="835" height="29"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_-j608RVQEeeMzp7YIeMZtw" type="Enumeration_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_-j608xVQEeeMzp7YIeMZtw" type="Enumeration_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_-j609BVQEeeMzp7YIeMZtw" type="Enumeration_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_-j609RVQEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_-j609hVQEeeMzp7YIeMZtw" type="Enumeration_LiteralCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_-j609xVQEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_-j60-BVQEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_-j60-RVQEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-j60-hVQEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Enumeration" href="model.uml#_-j608BVQEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-j608hVQEeeMzp7YIeMZtw" x="2184" y="965" height="58"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_31XnYRVSEeeMzp7YIeMZtw" type="Interface_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_31XnYxVSEeeMzp7YIeMZtw" type="Interface_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_31XnZBVSEeeMzp7YIeMZtw" type="Interface_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_31XnZRVSEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_31XnZhVSEeeMzp7YIeMZtw" type="Interface_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_31XnZxVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_31XnaBVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_31XnaRVSEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_31XnahVSEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_31XnaxVSEeeMzp7YIeMZtw" type="Interface_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_31XnbBVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_31XnbRVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_31XnbhVSEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_31XnbxVSEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_31XncBVSEeeMzp7YIeMZtw" type="Interface_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_31XncRVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_31XnchVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_31XncxVSEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_31XndBVSEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Interface" href="model.uml#_31XnYBVSEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_31XnYhVSEeeMzp7YIeMZtw" x="2177" y="744" height="52"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_6giNIBVSEeeMzp7YIeMZtw" type="Interface_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_6giNIhVSEeeMzp7YIeMZtw" type="Interface_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_6giNIxVSEeeMzp7YIeMZtw" type="Interface_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_6giNJBVSEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_6giNJRVSEeeMzp7YIeMZtw" type="Interface_AttributeCompartment"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U78U8BVTEeeMzp7YIeMZtw" source="PapyrusCSSForceValue"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U78U8RVTEeeMzp7YIeMZtw" key="collapsed" value="true"/> + </eAnnotations> + <styles xmi:type="notation:TitleStyle" xmi:id="_6giNJhVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_6giNJxVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_6giNKBVSEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6giNKRVSEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_6giNKhVSEeeMzp7YIeMZtw" type="Interface_OperationCompartment"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VJeaoBVTEeeMzp7YIeMZtw" source="PapyrusCSSForceValue"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VJeaoRVTEeeMzp7YIeMZtw" key="collapsed" value="true"/> + </eAnnotations> + <children xmi:type="notation:Shape" xmi:id="_ETBa4BVTEeeMzp7YIeMZtw" type="Operation_InterfaceOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_ESR0ABVTEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_ETBa4RVTEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_6giNKxVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_6giNLBVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_6giNLRVSEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6giNLhVSEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_6giNLxVSEeeMzp7YIeMZtw" type="Interface_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_6giNMBVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_6giNMRVSEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_6giNMhVSEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6giNMxVSEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Interface" href="model.uml#_6gYcIBVSEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6giNIRVSEeeMzp7YIeMZtw" x="2175" y="864" width="100" height="67"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_qOaNARVTEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_qOaNAxVTEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_qOjW8BVTEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_qOjW8RVTEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_qOjW8hVTEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_hxRLIBVfEeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_hwhkQBVfEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_hxRLIRVfEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_xW6N0BVgEeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_xVpCgBVgEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_xW6N0RVgEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_qOjW8xVTEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_qOjW9BVTEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_qOjW9RVTEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qOjW9hVTEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_qOjW9xVTEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_qOjW-BVTEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_qOjW-RVTEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_qOjW-hVTEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qOjW-xVTEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_qOjW_BVTEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_qOjW_RVTEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_qOjW_hVTEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_qOjW_xVTEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qOjXABVTEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_qOaNABVTEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qOaNAhVTEeeMzp7YIeMZtw" x="2185" y="1100"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_o3hKMBVhEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_o3iYUBVhEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_o3iYURVhEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_o3iYUhVhEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_o3iYUxVhEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_o3iYVBVhEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_o3iYVRVhEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_o3iYVhVhEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o3iYVxVhEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_o3iYWBVhEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_xEQiIBVhEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_xDYYYBVhEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_xEQiIRVhEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_6AI4ABVhEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_5_YDABVhEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_6AI4ARVhEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_o3iYWRVhEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_o3iYWhVhEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_o3iYWxVhEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o3iYXBVhEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_o3iYXRVhEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_o3iYXhVhEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_o3iYXxVhEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_o3iYYBVhEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o3iYYRVhEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_o3bDkBVhEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o3hKMRVhEeeMzp7YIeMZtw" x="2159" y="652" height="87"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_T_A7MBVqEeeMzp7YIeMZtw" type="Interface_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_T_A7MhVqEeeMzp7YIeMZtw" type="Interface_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_T_A7MxVqEeeMzp7YIeMZtw" type="Interface_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_T_A7NBVqEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_T_A7NRVqEeeMzp7YIeMZtw" type="Interface_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_T_A7NhVqEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_T_A7NxVqEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_T_A7OBVqEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T_A7ORVqEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_T_A7OhVqEeeMzp7YIeMZtw" type="Interface_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_aBtdcBVqEeeMzp7YIeMZtw" type="Operation_InterfaceOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_aBVC8BVqEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_aBtdcRVqEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_T_A7OxVqEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_T_A7PBVqEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_T_A7PRVqEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T_A7PhVqEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_T_A7PxVqEeeMzp7YIeMZtw" type="Interface_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_T_A7QBVqEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_T_A7QRVqEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_T_A7QhVqEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T_A7QxVqEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Interface" href="model.uml#_T-934BVqEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T_A7MRVqEeeMzp7YIeMZtw" x="2306" y="1253"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_wWO9gBVsEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_wWO9ghVsEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_wWO9gxVsEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_wWO9hBVsEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_wWO9hRVsEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_wWO9hhVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_wWO9hxVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_wWO9iBVsEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wWO9iRVsEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_wWO9ihVsEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_zWxWUBVsEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_zWDkoBVsEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_zWxWURVsEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_wWO9ixVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_wWO9jBVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_wWO9jRVsEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wWO9jhVsEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_wWO9jxVsEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_wWO9kBVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_wWO9kRVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_wWO9khVsEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wWO9kxVsEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_wWBiIBVsEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wWO9gRVsEeeMzp7YIeMZtw" x="2216" y="1415"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_15nGgRVsEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_15nGgxVsEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_15nGhBVsEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_15nGhRVsEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_15nGhhVsEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_15nGhxVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_15nGiBVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_15nGiRVsEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_15nGihVsEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_15nGixVsEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_6hM8sBVsEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_6gpjEBVsEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_6hM8sRVsEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_15nGjBVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_15nGjRVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_15nGjhVsEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_15nGjxVsEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_15nGkBVsEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_15nGkRVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_15nGkhVsEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_15nGkxVsEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_15nGlBVsEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_15nGgBVsEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_15nGghVsEeeMzp7YIeMZtw" x="2371" y="1415"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_TQvYkBVtEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_TQvYkhVtEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_TQvYkxVtEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_TQvYlBVtEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_TQvYlRVtEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_Fmv4UBVuEeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_Fl5jwBVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Fmv4URVuEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_TQvYlhVtEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_TQvYlxVtEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_TQvYmBVtEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TQvYmRVtEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_TQxNwBVtEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_BYH7wBVuEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_BXlJMBVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_BYH7wRVuEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_TQxNwRVtEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_TQxNwhVtEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_TQxNwxVtEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TQxNxBVtEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_TQxNxRVtEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_TQxNxhVtEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_TQxNxxVtEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_TQxNyBVtEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TQxNyRVtEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_TQsVQBVtEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TQvYkRVtEeeMzp7YIeMZtw" x="2611" y="1310"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_trQ6MRVuEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_trQ6MhVuEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_trQ6MxVuEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trQ6NBVuEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trQ6NRVuEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_trQ6NhVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trQ6NxVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trQ6OBVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trQ6ORVuEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trQ6OhVuEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_trQ6OxVuEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_trQ6JRVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trQ6PBVuEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_trQ6PRVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trQ6PhVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trQ6PxVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trQ6QBVuEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trQ6QRVuEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_trQ6QhVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trQ6QxVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trQ6RBVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trQ6RRVuEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_trQ6JBVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trQ6SRVuEeeMzp7YIeMZtw" x="2956" y="1271"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_trRhOxVuEeeMzp7YIeMZtw" type="Interface_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhPBVuEeeMzp7YIeMZtw" type="Interface_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhPRVuEeeMzp7YIeMZtw" type="Interface_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhPhVuEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trRhPxVuEeeMzp7YIeMZtw" type="Interface_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_trRhQBVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trRhQRVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trRhQhVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhQxVuEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trRhRBVuEeeMzp7YIeMZtw" type="Interface_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_trRhRRVuEeeMzp7YIeMZtw" type="Operation_InterfaceOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_trQTGBVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhRhVuEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_trRhRxVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trRhSBVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trRhSRVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhShVuEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trRhSxVuEeeMzp7YIeMZtw" type="Interface_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_trRhTBVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trRhTRVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trRhThVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhTxVuEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Interface" href="model.uml#_trQTFxVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhUxVuEeeMzp7YIeMZtw" x="3046" y="1109"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_trRhaxVuEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhbBVuEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhbRVuEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhbhVuEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trRhbxVuEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_trRhcBVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trRhcRVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trRhchVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhcxVuEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trRhdBVuEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_trRhdRVuEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_trQTFhVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhdhVuEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_trRhdxVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trRheBVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trRheRVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhehVuEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trRhexVuEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_trRhfBVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trRhfRVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trRhfhVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhfxVuEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_trQTFRVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhgxVuEeeMzp7YIeMZtw" x="3139" y="1275"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_trRhhBVuEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhhRVuEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhhhVuEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhhxVuEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trRhiBVuEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_trRhiRVuEeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_trQTERVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhihVuEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_trRhixVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trRhjBVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trRhjRVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhjhVuEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trRhjxVuEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_trRhkBVuEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_trQTExVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhkRVuEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_trRhkhVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trRhkxVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trRhlBVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhlRVuEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_trRhlhVuEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_trRhlxVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_trRhmBVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_trRhmRVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhmhVuEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_trQTEBVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_trRhnhVuEeeMzp7YIeMZtw" x="2838" y="959"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_7uQ60BVuEeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_7uQ60RVuEeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_7uQ60hVuEeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_7uQ60xVuEeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_7uQ61BVuEeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_7uQ61RVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_7uQ61hVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_7uQ61xVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7uQ62BVuEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_7uQ62RVuEeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_7uQ62hVuEeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_7uPssRVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_7uQ62xVuEeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_7uQ63BVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_7uQ63RVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_7uQ63hVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7uQ63xVuEeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_7uQ64BVuEeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_7uQ64RVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_7uQ64hVuEeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_7uQ64xVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7uQ65BVuEeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_7uPssBVuEeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7uQ66BVuEeeMzp7YIeMZtw" x="2841" y="1127"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_OgQLcBV1EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_OgQLchV1EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_OgQLcxV1EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_OgQLdBV1EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_OgQLdRV1EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_SBongBV1EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_SBA8cBV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_SBongRV1EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_VfZH0BV1EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_Ve1uMBV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_VfZH0RV1EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_agXHUBV1EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_afrK0BV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_agXHURV1EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_hKpOABV1EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_hKSosBV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_hKpOARV1EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_hka_8BV1EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_hkFowBV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_hka_8RV1EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_hlW0EBV1EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_hk8kYBV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_hlW0ERV1EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_uwAQcBV1EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_uvbosBV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_uwAQcRV1EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_1l2t8BV1EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_1lKKYBV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_1l2t8RV1EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_ARw3ABV2EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_AQ-M0BV2EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_ARw3ARV2EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_JGnX0BV2EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_JFxqUBV2EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_JGnX0RV2EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_OgQLdhV1EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_OgQLdxV1EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_OgQLeBV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OgQLeRV1EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_OgSAoBV1EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_avHfkBV2EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_auaU8BV2EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_avHfkRV2EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_OgSAoRV1EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_OgSAohV1EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_OgSAoxV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OgSApBV1EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_OgSApRV1EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_OgSAphV1EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_OgSApxV1EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_OgSAqBV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OgSAqRV1EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_OgNIIBV1EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OgQLcRV1EeeMzp7YIeMZtw" x="990" y="834"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxSq4xV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxSq5BV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxSq5RV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxSq5hV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxSq5xV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxSq6BV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxSq6RV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxSq6hV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxSq6xV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxSq7BV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxSq7RV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxSq7hV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxSq7xV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxSq8BV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxSq8RV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxSq8hV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxSq8xV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxSq9BV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxSq9RV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxQ1sBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxSq-RV-EeeMzp7YIeMZtw" x="670" y="398" width="177" height="176"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxSq-hV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxSq-xV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxSq_BV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxSq_RV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxSq_hV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxSq_xV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQ1thV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxSrABV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxSrARV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQ1txV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxSrAhV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxSrAxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxSrBBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxSrBRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxSrBhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxSrBxV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxSrCBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxSrCRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxSrChV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxSrCxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxSrDBV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxSrDRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxSrDhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxSrDxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxSrEBV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxQ1tRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxSrFBV-EeeMzp7YIeMZtw" x="1702" y="198"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxTR8BV-EeeMzp7YIeMZtw" type="Interface_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTR8RV-EeeMzp7YIeMZtw" type="Interface_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTR8hV-EeeMzp7YIeMZtw" type="Interface_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTR8xV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTR9BV-EeeMzp7YIeMZtw" type="Interface_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTR9RV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTR9hV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTR9xV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTR-BV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTR-RV-EeeMzp7YIeMZtw" type="Interface_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxTR-hV-EeeMzp7YIeMZtw" type="Operation_InterfaceOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxRcxhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTR-xV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxTR_BV-EeeMzp7YIeMZtw" type="Operation_InterfaceOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxRcxxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTR_RV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxTR_hV-EeeMzp7YIeMZtw" type="Operation_InterfaceOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxRcyBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTR_xV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSABV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSARV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSAhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSAxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTSBBV-EeeMzp7YIeMZtw" type="Interface_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSBRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSBhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSBxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSCBV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Interface" href="model.uml#_QxRcxRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSDBV-EeeMzp7YIeMZtw" x="557" y="1010" width="140" height="131"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxTSIRV-EeeMzp7YIeMZtw" type="Interface_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSIhV-EeeMzp7YIeMZtw" type="Interface_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSIxV-EeeMzp7YIeMZtw" type="Interface_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSJBV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTSJRV-EeeMzp7YIeMZtw" type="Interface_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSJhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSJxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSKBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSKRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTSKhV-EeeMzp7YIeMZtw" type="Interface_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxTSKxV-EeeMzp7YIeMZtw" type="Operation_InterfaceOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxPnkhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSLBV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSLRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSLhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSLxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSMBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTSMRV-EeeMzp7YIeMZtw" type="Interface_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSMhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSMxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSNBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSNRV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Interface" href="model.uml#_QxPnkBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSORV-EeeMzp7YIeMZtw" x="215" y="995" width="139" height="145"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxTSQxV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSRBV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSRRV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSRhV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTSRxV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxTSSBV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPnmRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSSRV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSShV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSSxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSTBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSTRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTSThV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSTxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSUBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSURV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSUhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTSUxV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSVBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSVRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSVhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSVxV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxPnmBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSWxV-EeeMzp7YIeMZtw" x="920" y="357"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxTSXBV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSXRV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSXhV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSXxV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTSYBV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxTSYRV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQOthV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSYhV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSYxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSZBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSZRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSZhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTSZxV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSaBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSaRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSahV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSaxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxTSbBV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxTSbRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxTSbhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxTSbxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTScBV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxQOtRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxTSdBV-EeeMzp7YIeMZtw" x="1273" y="413" width="240" height="199"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5HhV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5HxV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5IBV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5IRV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5IhV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxT5IxV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxSD3RV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5JBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5JRV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxSD3hV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5JhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5JxV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxSD3xV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5KBV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5KRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5KhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5KxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5LBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5LRV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxT5LhV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD4BV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5LxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5MBV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD4RV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5MRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5MhV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD4hV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5MxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5NBV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD4xV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5NRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5NhV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD5BV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5NxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5OBV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD5RV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5ORV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5OhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5OxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5PBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5PRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5PhV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5PxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5QBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5QRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5QhV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxSD2xV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5RhV-EeeMzp7YIeMZtw" x="442" y="603" width="189" height="249"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5TxV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5UBV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5URV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5UhV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5UxV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxT5VBV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAhRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5VRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5VhV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAhhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5VxV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5WBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5WRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5WhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5WxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5XBV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5XRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5XhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5XxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5YBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5YRV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5YhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5YxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5ZBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5ZRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5ZhV-EeeMzp7YIeMZtw" type="compartment_shape_display"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5ZxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5aBV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxPAhBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5aRV-EeeMzp7YIeMZtw" x="166" y="403" width="196" height="173"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5ahV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5axV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5bBV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5bRV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5bhV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5bxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5cBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5cRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5chV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5cxV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5dBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5dRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5dhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5dxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5eBV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5eRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5ehV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5exV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5fBV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxQOrxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5gBV-EeeMzp7YIeMZtw" x="1115" y="676"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5gRV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5ghV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5gxV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5hBV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5hRV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5hhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5hxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5iBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5iRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5ihV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxT5ixV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSq4hV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5jBV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5jRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5jhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5jxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5kBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5kRV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5khV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5kxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5lBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5lRV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxSq4BV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5mRV-EeeMzp7YIeMZtw" x="868" y="36" width="208" height="196"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5mhV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5mxV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5nBV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5nRV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5nhV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxT5nxV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQOoRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5oBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxT5oRV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQOohV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5ohV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5oxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5pBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5pRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5phV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5pxV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5qBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5qRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5qhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5qxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxT5rBV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxT5rRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxT5rhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxT5rxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5sBV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxQOoBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxT5tBV-EeeMzp7YIeMZtw" x="1551" y="201"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgERV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxUgEhV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxUgExV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgFBV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgFRV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QxUgFhV-EeeMzp7YIeMZtw" source="PapyrusCSSForceValue"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QxUgFxV-EeeMzp7YIeMZtw" key="collapsed" value="true"/> + </eAnnotations> + <children xmi:type="notation:Shape" xmi:id="_QxUgGBV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAiRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgGRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgGhV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAihV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgGxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgHBV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAixV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgHRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgHhV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAjRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgHxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgIBV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAjhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgIRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgIhV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAkBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgIxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgJBV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAjBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgJRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgJhV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAjxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgJxV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgKBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgKRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgKhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgKxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgLBV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QxUgLRV-EeeMzp7YIeMZtw" source="PapyrusCSSForceValue"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QxUgLhV-EeeMzp7YIeMZtw" key="collapsed" value="true"/> + </eAnnotations> + <children xmi:type="notation:Shape" xmi:id="_QxUgLxV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxPAkRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgMBV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgMRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgMhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgMxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgNBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgNRV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgNhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgNxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgOBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgORV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxPAiBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgPRV-EeeMzp7YIeMZtw" x="378" y="15" width="204" height="303"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgRxV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxUgSBV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxUgSRV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgShV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgSxV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxUgTBV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQOshV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgTRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgThV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQOsxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgTxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgUBV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQOtBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgURV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgUhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgUxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgVBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgVRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgVhV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgVxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgWBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgWRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgWhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgWxV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgXBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgXRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgXhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgXxV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxQOsRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgYxV-EeeMzp7YIeMZtw" x="1344" y="200"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgZBV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxUgZRV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxUgZhV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgZxV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgaBV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxUgaRV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxSD1RV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgahV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgaxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgbBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgbRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgbhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgbxV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxUgcBV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD1hV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgcRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgchV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD1xV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgcxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgdBV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD2BV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgdRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgdhV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD2RV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgdxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgeBV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxSD2hV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgeRV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgehV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgexV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgfBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgfRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgfhV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgfxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUggBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUggRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgghV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxSD0xV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUghhV-EeeMzp7YIeMZtw" x="691" y="683" width="161" height="167"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgnhV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxUgnxV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxUgoBV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgoRV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgohV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxUgoxV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQOpRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgpBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgpRV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQOphV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgphV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgpxV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQOpxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgqBV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgqRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgqhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgqxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgrBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgrRV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxUgrhV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQOqBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgrxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgsBV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQOqRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgsRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgshV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQOqhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgsxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgtBV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQOqxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgtRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUgthV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQOrBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgtxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUguBV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQOrRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUguRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxUguhV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQOrhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUguxV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgvBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgvRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgvhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgvxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxUgwBV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxUgwRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxUgwhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxUgwxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgxBV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxQOoxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxUgyBV-EeeMzp7YIeMZtw" x="176" y="660" width="168" height="257"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHMRV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHMhV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHMxV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHNBV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHNRV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxVHNhV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxQ1tBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHNxV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHOBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHORV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHOhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHOxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHPBV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHPRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHPhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHPxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHQBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHQRV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHQhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHQxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHRBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHRRV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxQ1shV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHSRV-EeeMzp7YIeMZtw" x="1598" y="675"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHYRV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHYhV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHYxV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHZBV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHZRV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHZhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHZxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHaBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHaRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHahV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxVHaxV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1uhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHbBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHbRV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1vBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHbhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHbxV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1vhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHcBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHcRV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1vxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHchV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHcxV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1wBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHdBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHdRV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1wRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHdhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHdxV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1whV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHeBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHeRV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1wxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHehV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHexV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1xBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHfBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHfRV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1xRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHfhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHfxV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1xhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHgBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHgRV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1xxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHghV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHgxV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1yBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHhBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHhRV-EeeMzp7YIeMZtw" type="Operation_ClassOperationLabel"> + <element xmi:type="uml:Operation" href="model.uml#_QxQ1yRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHhhV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHhxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHiBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHiRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHihV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHixV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHjBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHjRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHjhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHjxV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxQ1uBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHkxV-EeeMzp7YIeMZtw" x="-69" y="660" width="177" height="412"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHlBV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHlRV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHlhV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHlxV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHmBV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxVHmRV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAgRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHmhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHmxV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAghV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHnBV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHnRV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPAgxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHnhV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHnxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHoBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHoRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHohV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHoxV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHpBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHpRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHphV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHpxV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHqBV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHqRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHqhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHqxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHrBV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxPAgBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHsBV-EeeMzp7YIeMZtw" x="501" y="1216" width="151" height="141"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVHsRV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHshV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHsxV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHtBV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHtRV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxVHthV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxSD0RV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHtxV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHuhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHuxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHvBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHvRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHvhV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHvxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHwBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHwRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHwhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVHwxV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVHxBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVHxRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVHxhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHxxV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxSD0BV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVHyxV-EeeMzp7YIeMZtw" x="689" y="1216" width="136" height="136"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_QxVuSxV-EeeMzp7YIeMZtw" type="Class_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVuTBV-EeeMzp7YIeMZtw" type="Class_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVuTRV-EeeMzp7YIeMZtw" type="Class_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVuThV-EeeMzp7YIeMZtw" y="5"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVuTxV-EeeMzp7YIeMZtw" type="Class_AttributeCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QxVuUBV-EeeMzp7YIeMZtw" type="Property_ClassAttributeLabel"> + <element xmi:type="uml:Property" href="model.uml#_QxPnlxV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVuURV-EeeMzp7YIeMZtw"/> + </children> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVuUhV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVuUxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVuVBV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVuVRV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVuVhV-EeeMzp7YIeMZtw" type="Class_OperationCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVuVxV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVuWBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVuWRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVuWhV-EeeMzp7YIeMZtw"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QxVuWxV-EeeMzp7YIeMZtw" type="Class_NestedClassifierCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_QxVuXBV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QxVuXRV-EeeMzp7YIeMZtw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QxVuXhV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVuXxV-EeeMzp7YIeMZtw"/> + </children> + <element xmi:type="uml:Class" href="model.uml#_QxPnlRV-EeeMzp7YIeMZtw"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QxVuYxV-EeeMzp7YIeMZtw" x="1309" y="673"/> + </children> + <styles xmi:type="notation:StringValueStyle" xmi:id="_AN9ZERVKEeeMzp7YIeMZtw" name="diagram_compatibility_version" stringValue="1.2.0"/> + <styles xmi:type="notation:DiagramStyle" xmi:id="_AN9ZEhVKEeeMzp7YIeMZtw"/> + <styles xmi:type="style:PapyrusViewStyle" xmi:id="_AN9ZExVKEeeMzp7YIeMZtw"> + <owner xmi:type="uml:Model" href="model.uml#_oX-IkBPOEeeugOD0sSUlEg"/> + </styles> + <element xmi:type="uml:Model" href="model.uml#_oX-IkBPOEeeugOD0sSUlEg"/> + <edges xmi:type="notation:Connector" xmi:id="_d3PDsBVNEeeMzp7YIeMZtw" type="Generalization_Edge" source="_td6vkBVLEeeMzp7YIeMZtw" target="_0EXCoBVMEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_d3PDsxVNEeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QfG6EBVPEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_d3PDtBVNEeeMzp7YIeMZtw" x="1" y="38"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_d3PDsRVNEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_d28IwBVNEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_d3PDshVNEeeMzp7YIeMZtw" points="[1619, 526, -643984, -643984]$[1652, 462, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eIzU0BVNEeeMzp7YIeMZtw" id="(0.63,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eIzU0RVNEeeMzp7YIeMZtw" id="(0.0,0.7734375)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_g_M6MBVNEeeMzp7YIeMZtw" type="Generalization_Edge" source="_3Heq0RVLEeeMzp7YIeMZtw" target="_0EXCoBVMEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_g_M6MxVNEeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QfjmABVPEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_g_M6NBVNEeeMzp7YIeMZtw" y="40"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_g_M6MRVNEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_g-wOQBVNEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_g_M6MhVNEeeMzp7YIeMZtw" points="[1714, 531, -643984, -643984]$[1711, 487, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_g_o_EBVNEeeMzp7YIeMZtw" id="(0.46,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_g_o_ERVNEeeMzp7YIeMZtw" id="(0.45925925925925926,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_iOWN4BVNEeeMzp7YIeMZtw" type="Generalization_Edge" source="_7yg2kRVLEeeMzp7YIeMZtw" target="_0EXCoBVMEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_iOWN4xVNEeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Qgc94BVPEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_iOWN5BVNEeeMzp7YIeMZtw" x="-1" y="38"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_iOWN4RVNEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_iN5h8BVNEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iOWN4hVNEeeMzp7YIeMZtw" points="[1832, 495, -643984, -643984]$[1787, 464, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iOy50BVNEeeMzp7YIeMZtw" id="(0.45,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iOy50RVNEeeMzp7YIeMZtw" id="(1.0,0.7890625)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_AhSn8RVOEeeMzp7YIeMZtw" type="Dependency_Edge" source="_0EXCoBVMEeeMzp7YIeMZtw" target="_9zOfMRVNEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_Ahbx4BVOEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Qf2g8BVPEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Ahbx4RVOEeeMzp7YIeMZtw" y="40"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_Ahbx4hVOEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QgTM4BVPEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Ahbx4xVOEeeMzp7YIeMZtw" y="60"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_AhSn8hVOEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_AhSn8BVOEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AhSn8xVOEeeMzp7YIeMZtw" points="[1709, 375, -643984, -643984]$[1709, 347, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AiLYwBVOEeeMzp7YIeMZtw" id="(0.12574850299401197,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AiLYwRVOEeeMzp7YIeMZtw" id="(1.0,0.5967741935483871)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_Gn1vcBVOEeeMzp7YIeMZtw" type="Association_Edge" source="_4sOJIRVNEeeMzp7YIeMZtw" target="_0EXCoBVMEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_Gn1vcxVOEeeMzp7YIeMZtw" type="Association_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3yl9ABVOEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Gn1vdBVOEeeMzp7YIeMZtw" x="1" y="-18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_Gn1vdRVOEeeMzp7YIeMZtw" type="Association_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3zCo8BVOEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Gn1vdhVOEeeMzp7YIeMZtw" y="19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_Gn1vdxVOEeeMzp7YIeMZtw" type="Association_TargetRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3zMZ8BVOEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Gn1veBVOEeeMzp7YIeMZtw" x="-5" y="21"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_Gn1veRVOEeeMzp7YIeMZtw" type="Association_SourceRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3zVj4BVOEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Gn1vehVOEeeMzp7YIeMZtw" x="-56" y="11"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_Gn1vexVOEeeMzp7YIeMZtw" type="Association_SourceMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3zfU4BVOEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Gn1vfBVOEeeMzp7YIeMZtw" x="43" y="19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_Gn1vfRVOEeeMzp7YIeMZtw" type="Association_TargetMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3zpF4BVOEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Gn1vfhVOEeeMzp7YIeMZtw" x="-43" y="-18"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_Gn1vcRVOEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Association" href="model.uml#_GXLdQBVOEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Gn1vchVOEeeMzp7YIeMZtw" points="[1384, 534, -643984, -643984]$[1652, 413, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GpLzQBVOEeeMzp7YIeMZtw" id="(0.22026431718061673,0.98)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GpLzQRVOEeeMzp7YIeMZtw" id="(0.844311377245509,0.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QsWsKhVPEeeMzp7YIeMZtw" type="Generalization_Edge" source="_QsWsSBVPEeeMzp7YIeMZtw" target="_QsWslBVPEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QsWsKxVPEeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_S0VFABVPEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QsWsLBVPEeeMzp7YIeMZtw" y="39"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QsWsLRVPEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_QsWr5BVPEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QsWsLhVPEeeMzp7YIeMZtw" points="[1027, 517, -643984, -643984]$[1024, 473, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QsWsLxVPEeeMzp7YIeMZtw" id="(0.46,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QsWsMBVPEeeMzp7YIeMZtw" id="(0.9880952380952381,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QsWsdhVPEeeMzp7YIeMZtw" type="Generalization_Edge" source="_QsWsXxVPEeeMzp7YIeMZtw" target="_QsWslBVPEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QsWsdxVPEeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_S1Oc4BVPEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QsWseBVPEeeMzp7YIeMZtw" y="39"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QsWseRVPEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_QsWr4hVPEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QsWsehVPEeeMzp7YIeMZtw" points="[932, 512, -643984, -643984]$[965, 448, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QsWsexVPEeeMzp7YIeMZtw" id="(0.62,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QsWsfBVPEeeMzp7YIeMZtw" id="(0.0,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_jbedcRVPEeeMzp7YIeMZtw" type="Dependency_Edge" source="_QsWslBVPEeeMzp7YIeMZtw" target="_9zOfMRVNEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_jbeddBVPEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_S_kH0BVTEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_jbeddRVPEeeMzp7YIeMZtw" x="-1" y="39"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_jbeddhVPEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_S_3CwBVTEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_jbeddxVPEeeMzp7YIeMZtw" x="-1" y="59"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_jbedchVPEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_jbedcBVPEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jbedcxVPEeeMzp7YIeMZtw" points="[1019, 371, -643984, -643984]$[1324, 295, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jcg_QBVPEeeMzp7YIeMZtw" id="(0.5515151515151515,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jcg_QRVPEeeMzp7YIeMZtw" id="(0.0,0.5967741935483871)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_YErngBVTEeeMzp7YIeMZtw" type="Dependency_Edge" source="_QsWslBVPEeeMzp7YIeMZtw" target="_6giNIBVSEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_YErngxVTEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_RZHmEBVhEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_YErnhBVTEeeMzp7YIeMZtw" y="38"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_YErnhRVTEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_RZ4bEBVhEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_YErnhhVTEeeMzp7YIeMZtw" y="59"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_YErngRVTEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_YEh2gBVTEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YErnghVTEeeMzp7YIeMZtw" points="[1143, 420, -643984, -643984]$[1324, 320, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YFuJUBVTEeeMzp7YIeMZtw" id="(1.0,0.07407407407407407)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YFuJURVTEeeMzp7YIeMZtw" id="(0.0,0.22388059701492538)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_a_WB0BVTEeeMzp7YIeMZtw" type="Dependency_Edge" source="_0EXCoBVMEeeMzp7YIeMZtw" target="_6giNIBVSEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_a_WB0xVTEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_RbbTMBVhEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_a_WB1BVTEeeMzp7YIeMZtw" x="-1" y="38"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_a_WB1RVTEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_RbsY8BVhEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_a_WB1hVTEeeMzp7YIeMZtw" x="-1" y="58"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_a_WB0RVTEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_a_MQ0BVTEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_a_WB0hVTEeeMzp7YIeMZtw" points="[1652, 405, -643984, -643984]$[1424, 326, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bAFosBVTEeeMzp7YIeMZtw" id="(0.0,0.15625)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bAFosRVTEeeMzp7YIeMZtw" id="(1.0,0.31343283582089554)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_tsxKQRVTEeeMzp7YIeMZtw" type="Dependency_Edge" source="_qOaNARVTEeeMzp7YIeMZtw" target="_QsWslBVPEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_tsxKRBVTEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_RaeQ8BVhEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_tsxKRRVTEeeMzp7YIeMZtw" x="1" y="39"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_tsxKRhVTEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Ra8yEBVhEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_tsxKRxVTEeeMzp7YIeMZtw" x="-1" y="58"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_tsxKQhVTEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_tsxKQBVTEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tsxKQxVTEeeMzp7YIeMZtw" points="[1379, 541, -643984, -643984]$[1143, 468, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ttqiIBVTEeeMzp7YIeMZtw" id="(0.45,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ttqiIRVTEeeMzp7YIeMZtw" id="(1.0,0.7185185185185186)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_aeMUMBVhEeeMzp7YIeMZtw" type="Dependency_Edge" source="_QsWr8xVPEeeMzp7YIeMZtw" target="_QsWslBVPEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_aeMUMxVhEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QNbI0BV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_aeMUNBVhEeeMzp7YIeMZtw" y="40"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_aeMUNRVhEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QN6RABV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_aeMUNhVhEeeMzp7YIeMZtw" y="60"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_aeMUMRVhEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_aeJQ4BVhEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aeMUMhVhEeeMzp7YIeMZtw" points="[843, 524, -643984, -643984]$[1024, 524, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_afLLoBVhEeeMzp7YIeMZtw" id="(0.9955947136563876,0.51)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_afLLoRVhEeeMzp7YIeMZtw" id="(0.0,0.37037037037037035)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_8dGJABVpEeeMzp7YIeMZtw" type="Association_Edge" source="_QsWslBVPEeeMzp7YIeMZtw" target="_o3hKMBVhEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_8dGJAxVpEeeMzp7YIeMZtw" type="Association_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QK6AUBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_8dGJBBVpEeeMzp7YIeMZtw" x="-2" y="-17"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_8dGJBRVpEeeMzp7YIeMZtw" type="Association_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QLVeIBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_8dGJBhVpEeeMzp7YIeMZtw" x="1" y="18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_8dGJBxVpEeeMzp7YIeMZtw" type="Association_TargetRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QL3poBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_8dGJCBVpEeeMzp7YIeMZtw" x="216" y="-18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_8dGJCRVpEeeMzp7YIeMZtw" type="Association_SourceRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QMQrMBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_8dGJChVpEeeMzp7YIeMZtw" x="-216" y="19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_8dGJCxVpEeeMzp7YIeMZtw" type="Association_SourceMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QMmpcBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_8dGJDBVpEeeMzp7YIeMZtw" x="214" y="18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_8dGJDRVpEeeMzp7YIeMZtw" type="Association_TargetMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QM8AoBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_8dGJDhVpEeeMzp7YIeMZtw" x="-215" y="-17"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_8dGJARVpEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Association" href="model.uml#_8clysBVpEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8dGJAhVpEeeMzp7YIeMZtw" points="[1083, 449, -643984, -643984]$[1357, 213, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8dl4QBVpEeeMzp7YIeMZtw" id="(0.3575757575757576,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8dl4QRVpEeeMzp7YIeMZtw" id="(0.0,0.4827586206896552)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_IM27wBVqEeeMzp7YIeMZtw" type="Association_Edge" source="_0EXCoBVMEeeMzp7YIeMZtw" target="_o3hKMBVhEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_IM4w8BVqEeeMzp7YIeMZtw" type="Association_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_JeN18BVqEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_IM4w8RVqEeeMzp7YIeMZtw" y="-20"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_IM4w8hVqEeeMzp7YIeMZtw" type="Association_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_JeuMQBVqEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_IM4w8xVqEeeMzp7YIeMZtw" y="20"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_IM4w9BVqEeeMzp7YIeMZtw" type="Association_TargetRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Je-q8BVqEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_IM4w9RVqEeeMzp7YIeMZtw" x="56" y="-20"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_IM4w9hVqEeeMzp7YIeMZtw" type="Association_SourceRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_JfN7gBVqEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_IM4w9xVqEeeMzp7YIeMZtw" x="-56" y="19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_IM4w-BVqEeeMzp7YIeMZtw" type="Association_SourceMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_JfdMEBVqEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_IM4w-RVqEeeMzp7YIeMZtw" x="56" y="20"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_IM4w-hVqEeeMzp7YIeMZtw" type="Association_TargetMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Jf1mkBVqEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_IM4w-xVqEeeMzp7YIeMZtw" x="-56" y="-18"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_IM27wRVqEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Association" href="model.uml#_IMUJMBVqEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IM27whVqEeeMzp7YIeMZtw" points="[1735, 454, -643984, -643984]$[1512, 209, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_INbjgBVqEeeMzp7YIeMZtw" id="(0.3652694610778443,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_INbjgRVqEeeMzp7YIeMZtw" id="(1.0,0.42528735632183906)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_CBI5ABVtEeeMzp7YIeMZtw" type="Dependency_Edge" source="_15nGgRVsEeeMzp7YIeMZtw" target="_T_A7MBVqEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_CBKuMBVtEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_ppUHoBVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_CBKuMRVtEeeMzp7YIeMZtw" x="-1" y="38"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_CBKuMhVtEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_ppqF4BVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_CBKuMxVtEeeMzp7YIeMZtw" y="59"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_CBI5ARVtEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_CBHq4BVtEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CBI5AhVtEeeMzp7YIeMZtw" points="[1924, 843, -643984, -643984]$[1890, 792, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CB8xUBVtEeeMzp7YIeMZtw" id="(0.30985915492957744,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CB8xURVtEeeMzp7YIeMZtw" id="(0.5434782608695652,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_PdCdcBVtEeeMzp7YIeMZtw" type="Dependency_Edge" source="_wWO9gBVsEeeMzp7YIeMZtw" target="_T_A7MBVqEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_PdDrkBVtEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_pp7ysBVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_PdDrkRVtEeeMzp7YIeMZtw" y="38"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_PdDrkhVtEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_pqPUsBVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_PdDrkxVtEeeMzp7YIeMZtw" y="58"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_PdCdcRVtEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_Pc_aIBVtEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PdCdchVtEeeMzp7YIeMZtw" points="[1789, 843, -643984, -643984]$[1815, 792, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PduZ8BVtEeeMzp7YIeMZtw" id="(0.765625,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PduZ8RVtEeeMzp7YIeMZtw" id="(0.2753623188405797,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_RM6qMBVuEeeMzp7YIeMZtw" type="Association_Edge" source="_TQvYkBVtEeeMzp7YIeMZtw" target="_T_A7MBVqEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_RM7RQBVuEeeMzp7YIeMZtw" type="Association_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_mTnXIBVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_RM7RQRVuEeeMzp7YIeMZtw" x="-1" y="-18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_RM7RQhVuEeeMzp7YIeMZtw" type="Association_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_mUBm0BVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_RM7RQxVuEeeMzp7YIeMZtw" x="-2" y="17"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_RM7RRBVuEeeMzp7YIeMZtw" type="Association_TargetRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_mUTToBVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_RM7RRRVuEeeMzp7YIeMZtw" x="117" y="-63"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_RM7RRhVuEeeMzp7YIeMZtw" type="Association_SourceRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_mUjLQBVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_RM7RRxVuEeeMzp7YIeMZtw" x="-5" y="12"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_RM7RSBVuEeeMzp7YIeMZtw" type="Association_SourceMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_mU04EBVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_RM7RSRVuEeeMzp7YIeMZtw" x="20" y="18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_RM7RShVuEeeMzp7YIeMZtw" type="Association_TargetMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_mVMEcBVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_RM7RSxVuEeeMzp7YIeMZtw" x="-21" y="-19"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_RM6qMRVuEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Association" href="model.uml#_RMhooBVuEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RM6qMhVuEeeMzp7YIeMZtw" points="[2076, 810, -643984, -643984]$[1953, 739, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RNlYkBVuEeeMzp7YIeMZtw" id="(0.0,0.7087378640776699)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RNlYkRVuEeeMzp7YIeMZtw" id="(1.0,0.5225225225225225)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_trQ6JhVuEeeMzp7YIeMZtw" type="Dependency_Edge" source="_trRhaxVuEeeMzp7YIeMZtw" target="_trRhOxVuEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_trQ6JxVuEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_trQ6KBVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trQ6KRVuEeeMzp7YIeMZtw" x="-1" y="38"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_trQ6KhVuEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_trQ6KxVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trQ6LBVuEeeMzp7YIeMZtw" y="59"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_trQ6LRVuEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_trPsABVuEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_trQ6LhVuEeeMzp7YIeMZtw" points="[2289, 766, -643984, -643984]$[2255, 715, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_trQ6LxVuEeeMzp7YIeMZtw" id="(0.305,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_trQ6MBVuEeeMzp7YIeMZtw" id="(0.5408163265306123,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_trRhMBVuEeeMzp7YIeMZtw" type="Dependency_Edge" source="_trQ6MRVuEeeMzp7YIeMZtw" target="_trRhOxVuEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhMRVuEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_trRhMhVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhMxVuEeeMzp7YIeMZtw" y="38"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhNBVuEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_trRhNRVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhNhVuEeeMzp7YIeMZtw" y="58"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_trRhNxVuEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_trQTFBVuEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_trRhOBVuEeeMzp7YIeMZtw" points="[2154, 766, -643984, -643984]$[2180, 715, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_trRhORVuEeeMzp7YIeMZtw" id="(0.765625,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_trRhOhVuEeeMzp7YIeMZtw" id="(0.2753623188405797,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_trRhVBVuEeeMzp7YIeMZtw" type="Association_Edge" source="_trRhhBVuEeeMzp7YIeMZtw" target="_trRhOxVuEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhVRVuEeeMzp7YIeMZtw" type="Association_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_trRhVhVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhVxVuEeeMzp7YIeMZtw" x="-1" y="-18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhWBVuEeeMzp7YIeMZtw" type="Association_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_trRhWRVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhWhVuEeeMzp7YIeMZtw" x="-2" y="17"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhWxVuEeeMzp7YIeMZtw" type="Association_TargetRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_trRhXBVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhXRVuEeeMzp7YIeMZtw" x="117" y="-63"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhXhVuEeeMzp7YIeMZtw" type="Association_SourceRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_trRhXxVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhYBVuEeeMzp7YIeMZtw" x="-5" y="12"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhYRVuEeeMzp7YIeMZtw" type="Association_SourceMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_trRhYhVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhYxVuEeeMzp7YIeMZtw" x="20" y="18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_trRhZBVuEeeMzp7YIeMZtw" type="Association_TargetMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_trRhZRVuEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_trRhZhVuEeeMzp7YIeMZtw" x="-21" y="-19"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_trRhZxVuEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Association" href="model.uml#_trQ6IBVuEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_trRhaBVuEeeMzp7YIeMZtw" points="[2174, 573, -643984, -643984]$[2051, 502, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_trRhaRVuEeeMzp7YIeMZtw" id="(0.8888888888888888,1.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_trRhahVuEeeMzp7YIeMZtw" id="(0.389937106918239,0.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_BMxx8RVvEeeMzp7YIeMZtw" type="Dependency_Edge" source="_7uQ60BVuEeeMzp7YIeMZtw" target="_trRhOxVuEeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_BMxx9BVvEeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_HxRkQBVwEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_BMxx9RVvEeeMzp7YIeMZtw" x="1" y="38"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_BMxx9hVvEeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Hx-u4BVwEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_BMxx9xVvEeeMzp7YIeMZtw" x="1" y="58"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_BMxx8hVvEeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_BMxx8BVvEeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BMxx8xVvEeeMzp7YIeMZtw" points="[1968, 789, -643984, -643984]$[2245, 718, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BNrw4BVvEeeMzp7YIeMZtw" id="(0.993421052631579,0.61)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BNrw4RVvEeeMzp7YIeMZtw" id="(0.0,0.5855855855855856)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxTSDRV-EeeMzp7YIeMZtw" type="Dependency_Edge" source="_QxVHlBV-EeeMzp7YIeMZtw" target="_QxTR8BV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSDhV-EeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSDxV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSEBV-EeeMzp7YIeMZtw" y="39"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSERV-EeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSEhV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSExV-EeeMzp7YIeMZtw" x="-1" y="58"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxTSFBV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_QxRcwBV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxTSFRV-EeeMzp7YIeMZtw" points="[519, 1169, -643984, -643984]$[519, 1092, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSFhV-EeeMzp7YIeMZtw" id="(0.44370860927152317,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSFxV-EeeMzp7YIeMZtw" id="(0.19285714285714287,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxTSGBV-EeeMzp7YIeMZtw" type="Dependency_Edge" source="_QxUgnhV-EeeMzp7YIeMZtw" target="_QxTSIRV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSGRV-EeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSGhV-EeeMzp7YIeMZtw" y="40"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSGxV-EeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSHBV-EeeMzp7YIeMZtw" y="60"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxTSHRV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_QxPAhxV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxTSHhV-EeeMzp7YIeMZtw" points="[291, 907, -643984, -643984]$[290, 985, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSHxV-EeeMzp7YIeMZtw" id="(0.7440476190476191,1.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSIBV-EeeMzp7YIeMZtw" id="(0.6115107913669064,0.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxTSOhV-EeeMzp7YIeMZtw" type="Dependency_Edge" source="_QxT5TxV-EeeMzp7YIeMZtw" target="_QxUgERV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSOxV-EeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSPBV-EeeMzp7YIeMZtw" y="40"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSPRV-EeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSPhV-EeeMzp7YIeMZtw" y="60"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxTSPxV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_QxPnkxV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxTSQBV-EeeMzp7YIeMZtw" points="[253, 393, -643984, -643984]$[368, 308, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSQRV-EeeMzp7YIeMZtw" id="(0.49489795918367346,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSQhV-EeeMzp7YIeMZtw" id="(0.0,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxTSdRV-EeeMzp7YIeMZtw" type="Generalization_Edge" source="_QxT5HhV-EeeMzp7YIeMZtw" target="_QxT5TxV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSdhV-EeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSdxV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSeBV-EeeMzp7YIeMZtw" y="39"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxTSeRV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_QxSD3BV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxTSehV-EeeMzp7YIeMZtw" points="[427, 677, -643984, -643984]$[352, 566, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSexV-EeeMzp7YIeMZtw" id="(0.1111111111111111,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSfBV-EeeMzp7YIeMZtw" id="(1.0,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxTSfRV-EeeMzp7YIeMZtw" type="Association_Edge" source="_QxTSQxV-EeeMzp7YIeMZtw" target="_QxUgERV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSfhV-EeeMzp7YIeMZtw" type="Association_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSfxV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSgBV-EeeMzp7YIeMZtw" y="-19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSgRV-EeeMzp7YIeMZtw" type="Association_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSghV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSgxV-EeeMzp7YIeMZtw" x="-1" y="18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTShBV-EeeMzp7YIeMZtw" type="Association_TargetRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTShRV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTShhV-EeeMzp7YIeMZtw" x="51" y="-19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTShxV-EeeMzp7YIeMZtw" type="Association_SourceRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSiBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSiRV-EeeMzp7YIeMZtw" x="-52" y="19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSihV-EeeMzp7YIeMZtw" type="Association_SourceMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSixV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSjBV-EeeMzp7YIeMZtw" x="51" y="18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSjRV-EeeMzp7YIeMZtw" type="Association_TargetMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSjhV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSjxV-EeeMzp7YIeMZtw" x="-52" y="-18"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxTSkBV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Association" href="model.uml#_QxOZdBV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxTSkRV-EeeMzp7YIeMZtw" points="[903, 338, -643984, -643984]$[572, 230, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSkhV-EeeMzp7YIeMZtw" id="(0.0,0.35)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSkxV-EeeMzp7YIeMZtw" id="(1.0,0.7425742574257426)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxTSlBV-EeeMzp7YIeMZtw" type="Generalization_Edge" source="_QxT5ahV-EeeMzp7YIeMZtw" target="_QxTSXBV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSlRV-EeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSlhV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSlxV-EeeMzp7YIeMZtw" x="1" y="38"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxTSmBV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_QxQOsBV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxTSmRV-EeeMzp7YIeMZtw" points="[1424, 636, -643984, -643984]$[1515, 572, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSmhV-EeeMzp7YIeMZtw" id="(0.5982142857142857,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSmxV-EeeMzp7YIeMZtw" id="(0.0,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxTSnBV-EeeMzp7YIeMZtw" type="Association_Edge" source="_QxT5gRV-EeeMzp7YIeMZtw" target="_QxUgERV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSnRV-EeeMzp7YIeMZtw" type="Association_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSnhV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSnxV-EeeMzp7YIeMZtw" x="-1" y="-18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSoBV-EeeMzp7YIeMZtw" type="Association_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSoRV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSohV-EeeMzp7YIeMZtw" x="-2" y="17"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSoxV-EeeMzp7YIeMZtw" type="Association_TargetRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSpBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSpRV-EeeMzp7YIeMZtw" x="44" y="-19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSphV-EeeMzp7YIeMZtw" type="Association_SourceRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSpxV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSqBV-EeeMzp7YIeMZtw" x="-43" y="18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSqRV-EeeMzp7YIeMZtw" type="Association_SourceMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSqhV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSqxV-EeeMzp7YIeMZtw" x="44" y="18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxTSrBV-EeeMzp7YIeMZtw" type="Association_TargetMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxTSrRV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxTSrhV-EeeMzp7YIeMZtw" x="-43" y="-19"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxTSrxV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Association" href="model.uml#_QxSD5hV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxTSsBV-EeeMzp7YIeMZtw" points="[862, 51, -643984, -643984]$[572, 58, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSsRV-EeeMzp7YIeMZtw" id="(0.0,0.1683673469387755)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxTSshV-EeeMzp7YIeMZtw" id="(1.0,0.17491749174917492)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxT5ABV-EeeMzp7YIeMZtw" type="Association_Edge" source="_QxTSQxV-EeeMzp7YIeMZtw" target="_QxT5gRV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5ARV-EeeMzp7YIeMZtw" type="Association_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxT5AhV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5AxV-EeeMzp7YIeMZtw" x="1" y="-18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5BBV-EeeMzp7YIeMZtw" type="Association_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxT5BRV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5BhV-EeeMzp7YIeMZtw" y="19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5BxV-EeeMzp7YIeMZtw" type="Association_TargetRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxT5CBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5CRV-EeeMzp7YIeMZtw" x="15" y="-18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5ChV-EeeMzp7YIeMZtw" type="Association_SourceRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxT5CxV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5DBV-EeeMzp7YIeMZtw" x="-15" y="19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5DRV-EeeMzp7YIeMZtw" type="Association_SourceMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxT5DhV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5DxV-EeeMzp7YIeMZtw" x="15" y="19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5EBV-EeeMzp7YIeMZtw" type="Association_TargetMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxT5ERV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5EhV-EeeMzp7YIeMZtw" x="-15" y="-18"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxT5ExV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Association" href="model.uml#_QxOZeBV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxT5FBV-EeeMzp7YIeMZtw" points="[935, 317, -643984, -643984]$[928, 214, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxT5FRV-EeeMzp7YIeMZtw" id="(0.23958333333333334,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxT5FhV-EeeMzp7YIeMZtw" id="(0.3173076923076923,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxT5FxV-EeeMzp7YIeMZtw" type="Generalization_Edge" source="_QxUgnhV-EeeMzp7YIeMZtw" target="_QxT5TxV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5GBV-EeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5GRV-EeeMzp7YIeMZtw" y="40"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxT5GhV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_QxQOpBV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxT5GxV-EeeMzp7YIeMZtw" points="[213, 650, -643984, -643984]$[217, 566, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxT5HBV-EeeMzp7YIeMZtw" id="(0.27976190476190477,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxT5HRV-EeeMzp7YIeMZtw" id="(0.3112244897959184,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxT5RxV-EeeMzp7YIeMZtw" type="Generalization_Edge" source="_QxVHYRV-EeeMzp7YIeMZtw" target="_QxT5TxV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5SBV-EeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxT5SRV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5ShV-EeeMzp7YIeMZtw" y="39"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxT5SxV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_QxQ1uRV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxT5TBV-EeeMzp7YIeMZtw" points="[104, 683, -643984, -643984]$[156, 566, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxT5TRV-EeeMzp7YIeMZtw" id="(0.6101694915254238,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxT5ThV-EeeMzp7YIeMZtw" id="(0.0,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxT5tRV-EeeMzp7YIeMZtw" type="Generalization_Edge" source="_QxUgZBV-EeeMzp7YIeMZtw" target="_QxSq4xV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxT5thV-EeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxT5txV-EeeMzp7YIeMZtw" y="40"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxT5uBV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_QxSD1BV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxT5uRV-EeeMzp7YIeMZtw" points="[717, 673, -643984, -643984]$[717, 564, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxT5uhV-EeeMzp7YIeMZtw" id="(0.2236024844720497,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxUgEBV-EeeMzp7YIeMZtw" id="(0.3220338983050847,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxUgPhV-EeeMzp7YIeMZtw" type="Dependency_Edge" source="_QxSq4xV-EeeMzp7YIeMZtw" target="_QxUgERV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxUgPxV-EeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgQBV-EeeMzp7YIeMZtw" y="40"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxUgQRV-EeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxUgQhV-EeeMzp7YIeMZtw" y="60"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxUgQxV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_QxPnlBV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxUgRBV-EeeMzp7YIeMZtw" points="[660, 412, -643984, -643984]$[572, 308, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxUgRRV-EeeMzp7YIeMZtw" id="(0.0,0.13636363636363635)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxUgRhV-EeeMzp7YIeMZtw" id="(1.0,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxVHIBV-EeeMzp7YIeMZtw" type="Dependency_Edge" source="_QxVHsRV-EeeMzp7YIeMZtw" target="_QxTR8BV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHIRV-EeeMzp7YIeMZtw" type="Dependency_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_L2DOABWAEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHIhV-EeeMzp7YIeMZtw" x="-1" y="38"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHIxV-EeeMzp7YIeMZtw" type="Dependency_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_L3NEkBWAEeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHJBV-EeeMzp7YIeMZtw" x="-1" y="57"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxVHJRV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Dependency" href="model.uml#_QxOZcxV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxVHJhV-EeeMzp7YIeMZtw" points="[716, 1196, -643984, -643984]$[632, 1108, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxVHJxV-EeeMzp7YIeMZtw" id="(0.3553921568627451,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxVHKBV-EeeMzp7YIeMZtw" id="(0.65,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxVHKRV-EeeMzp7YIeMZtw" type="Generalization_Edge" source="_QxVuSxV-EeeMzp7YIeMZtw" target="_QxTSXBV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHKhV-EeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxVHKxV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHLBV-EeeMzp7YIeMZtw" y="40"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxVHLRV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_QxPnlhV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxVHLhV-EeeMzp7YIeMZtw" points="[1589, 633, -643984, -643984]$[1589, 572, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxVHLxV-EeeMzp7YIeMZtw" id="(0.19895287958115182,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxVHMBV-EeeMzp7YIeMZtw" id="(0.30833333333333335,1.0)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxVHShV-EeeMzp7YIeMZtw" type="Association_Edge" source="_QxTSIRV-EeeMzp7YIeMZtw" target="_QxTR8BV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHSxV-EeeMzp7YIeMZtw" type="Association_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxVHTBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHTRV-EeeMzp7YIeMZtw" x="-1" y="-18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHThV-EeeMzp7YIeMZtw" type="Association_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxVHTxV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHUBV-EeeMzp7YIeMZtw" x="1" y="19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHURV-EeeMzp7YIeMZtw" type="Association_TargetRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxVHUhV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHUxV-EeeMzp7YIeMZtw" x="33" y="-18"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHVBV-EeeMzp7YIeMZtw" type="Association_SourceRoleLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxVHVRV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHVhV-EeeMzp7YIeMZtw" x="-97" y="17"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHVxV-EeeMzp7YIeMZtw" type="Association_SourceMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxVHWBV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHWRV-EeeMzp7YIeMZtw" x="35" y="19"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHWhV-EeeMzp7YIeMZtw" type="Association_TargetMultiplicityLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxVHWxV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHXBV-EeeMzp7YIeMZtw" x="-13" y="3"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxVHXRV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Association" href="model.uml#_QxRcwRV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxVHXhV-EeeMzp7YIeMZtw" points="[334, 1039, -643984, -643984]$[539, 1024, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxVHXxV-EeeMzp7YIeMZtw" id="(1.0,0.4298850574712644)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxVHYBV-EeeMzp7YIeMZtw" id="(0.0,0.3511450381679389)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_QxVHzBV-EeeMzp7YIeMZtw" type="Generalization_Edge" source="_QxVHMRV-EeeMzp7YIeMZtw" target="_QxTSXBV-EeeMzp7YIeMZtw"> + <children xmi:type="notation:DecorationNode" xmi:id="_QxVHzRV-EeeMzp7YIeMZtw" type="Generalization_StereotypeLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QxVHzhV-EeeMzp7YIeMZtw" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QxVHzxV-EeeMzp7YIeMZtw" x="-1" y="38"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_QxVH0BV-EeeMzp7YIeMZtw"/> + <element xmi:type="uml:Generalization" href="model.uml#_QxQ1sxV-EeeMzp7YIeMZtw"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QxVH0RV-EeeMzp7YIeMZtw" points="[1686, 645, -643984, -643984]$[1601, 581, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxVH0hV-EeeMzp7YIeMZtw" id="(0.1242603550295858,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QxVH0xV-EeeMzp7YIeMZtw" id="(1.0,1.0)"/> + </edges> +</notation:Diagram> diff --git a/src/model.uml b/src/model.uml new file mode 100644 index 0000000..2dd5385 --- /dev/null +++ b/src/model.uml @@ -0,0 +1,377 @@ +<?xml version="1.0" encoding="UTF-8"?> +<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_oX-IkBPOEeeugOD0sSUlEg" name="RootElement"> + <packagedElement xmi:type="uml:Class" xmi:id="_tdw-kBVLEeeMzp7YIeMZtw" name="Starters"> + <generalization xmi:type="uml:Generalization" xmi:id="_d28IwBVNEeeMzp7YIeMZtw" general="_0EEHsBVMEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_3Heq0BVLEeeMzp7YIeMZtw" name="MainDishes"> + <generalization xmi:type="uml:Generalization" xmi:id="_g-wOQBVNEeeMzp7YIeMZtw" general="_0EEHsBVMEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_7yg2kBVLEeeMzp7YIeMZtw" name="Desserts"> + <generalization xmi:type="uml:Generalization" xmi:id="_iN5h8BVNEeeMzp7YIeMZtw" general="_0EEHsBVMEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_0EEHsBVMEeeMzp7YIeMZtw" name="Dishe"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_-UmjYBVMEeeMzp7YIeMZtw" name="Name" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_FrEaoBVNEeeMzp7YIeMZtw" name="Price" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EInt"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_OAX74BVREeeMzp7YIeMZtw" name="disheType" visibility="private" type="_-j608BVQEeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_IMVXUhVqEeeMzp7YIeMZtw" name="ordervisitor" type="_o3bDkBVhEeeMzp7YIeMZtw" association="_IMUJMBVqEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_4sOJIBVNEeeMzp7YIeMZtw" name="FactoryDishe"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_GnP5kBVOEeeMzp7YIeMZtw" name="dishes" type="_0EEHsBVMEeeMzp7YIeMZtw" association="_GXLdQBVOEeeMzp7YIeMZtw"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_5QxLMBVOEeeMzp7YIeMZtw" name="createDishes"> + <ownedParameter xmi:type="uml:Parameter" xmi:id="_Cxjk8BVPEeeMzp7YIeMZtw" name="dishName"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/> + </ownedParameter> + </ownedOperation> + </packagedElement> + <packagedElement xmi:type="uml:Interface" xmi:id="_9zOfMBVNEeeMzp7YIeMZtw" name="Item"/> + <packagedElement xmi:type="uml:Dependency" xmi:id="_AhSn8BVOEeeMzp7YIeMZtw" client="_oX-IkBPOEeeugOD0sSUlEg" supplier="_9zOfMBVNEeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Association" xmi:id="_GXLdQBVOEeeMzp7YIeMZtw" memberEnd="_GnP5kBVOEeeMzp7YIeMZtw _GnZDgBVOEeeMzp7YIeMZtw"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GXLdQRVOEeeMzp7YIeMZtw" source="org.eclipse.papyrus"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GXLdQhVOEeeMzp7YIeMZtw" key="nature" value="UML_Nature"/> + </eAnnotations> + <ownedEnd xmi:type="uml:Property" xmi:id="_GnZDgBVOEeeMzp7YIeMZtw" name="factorydishes" type="_4sOJIBVNEeeMzp7YIeMZtw" association="_GXLdQBVOEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QsWr4RVPEeeMzp7YIeMZtw" name="FullMeal"> + <generalization xmi:type="uml:Generalization" xmi:id="_QsWr4hVPEeeMzp7YIeMZtw" general="_QsWr7BVPEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QsWr4xVPEeeMzp7YIeMZtw" name="HalfMeal"> + <generalization xmi:type="uml:Generalization" xmi:id="_QsWr5BVPEeeMzp7YIeMZtw" general="_QsWr7BVPEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QsWr7BVPEeeMzp7YIeMZtw" name="Meal"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QsWr7RVPEeeMzp7YIeMZtw" name="name" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_SBh5oBVQEeeMzp7YIeMZtw" name="meal" visibility="private" type="_D3KFoBVQEeeMzp7YIeMZtw" isUnique="false"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_bQOoYBVREeeMzp7YIeMZtw" name="mealType" visibility="private" type="_-j608BVQEeeMzp7YIeMZtw" isUnique="false"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_8co2AhVpEeeMzp7YIeMZtw" name="ordervisitor" type="_o3bDkBVhEeeMzp7YIeMZtw" association="_8clysBVpEeeMzp7YIeMZtw"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_uKTFsBVREeeMzp7YIeMZtw" name="accept"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QsWr7xVPEeeMzp7YIeMZtw" name="MealFactory"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QsWr8RVPEeeMzp7YIeMZtw" name="createMeal"> + <ownedParameter xmi:type="uml:Parameter" xmi:id="_QsWr8hVPEeeMzp7YIeMZtw" name="dishName"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/> + </ownedParameter> + </ownedOperation> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_jbedcBVPEeeMzp7YIeMZtw" client="_oX-IkBPOEeeugOD0sSUlEg" supplier="_9zOfMBVNEeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Class" xmi:id="_D3KFoBVQEeeMzp7YIeMZtw" name="ArrayList"/> + <packagedElement xmi:type="uml:Enumeration" xmi:id="_-j608BVQEeeMzp7YIeMZtw" name="ItemType"> + <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_CVrPUBVREeeMzp7YIeMZtw" name="Standard"/> + <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_FD5JEBVREeeMzp7YIeMZtw" name="Vegetarian"/> + <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_GTVXsBVREeeMzp7YIeMZtw" name="GlutenFree"/> + </packagedElement> + <packagedElement xmi:type="uml:Interface" xmi:id="_31XnYBVSEeeMzp7YIeMZtw" name="Visitor"/> + <packagedElement xmi:type="uml:Interface" xmi:id="_6gYcIBVSEeeMzp7YIeMZtw" name="Visitable"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_ESR0ABVTEeeMzp7YIeMZtw" name="accept"> + <ownedParameter xmi:type="uml:Parameter" xmi:id="_Qc4vsBVTEeeMzp7YIeMZtw" name="visitor" type="_31XnYBVSEeeMzp7YIeMZtw"/> + </ownedOperation> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_YEh2gBVTEeeMzp7YIeMZtw" client="_QsWr7BVPEeeMzp7YIeMZtw" supplier="_6gYcIBVSEeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Dependency" xmi:id="_a_MQ0BVTEeeMzp7YIeMZtw" client="_0EEHsBVMEeeMzp7YIeMZtw" supplier="_6gYcIBVSEeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Class" xmi:id="_qOaNABVTEeeMzp7YIeMZtw" name="Order"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_hwhkQBVfEeeMzp7YIeMZtw" name="listMeal" visibility="private" type="_D3KFoBVQEeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_xVpCgBVgEeeMzp7YIeMZtw" name="listDishes" visibility="private" type="_D3KFoBVQEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_tsxKQBVTEeeMzp7YIeMZtw" client="_qOaNABVTEeeMzp7YIeMZtw" supplier="_QsWr7BVPEeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Dependency" xmi:id="_aeJQ4BVhEeeMzp7YIeMZtw" client="_QsWr7xVPEeeMzp7YIeMZtw" supplier="_QsWr7BVPEeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Class" xmi:id="_o3bDkBVhEeeMzp7YIeMZtw" name="OrderVisitor"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_xDYYYBVhEeeMzp7YIeMZtw" name="visit"> + <ownedParameter xmi:type="uml:Parameter" xmi:id="_4635EBVhEeeMzp7YIeMZtw" name="meal" type="_QsWr7BVPEeeMzp7YIeMZtw"/> + </ownedOperation> + <ownedOperation xmi:type="uml:Operation" xmi:id="_5_YDABVhEeeMzp7YIeMZtw" name="visit"> + <ownedParameter xmi:type="uml:Parameter" xmi:id="_-mbGoBVhEeeMzp7YIeMZtw" name="dishe" type="_0EEHsBVMEeeMzp7YIeMZtw"/> + </ownedOperation> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_8clysBVpEeeMzp7YIeMZtw" memberEnd="_8co2AhVpEeeMzp7YIeMZtw _8co2AxVpEeeMzp7YIeMZtw"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8co2ABVpEeeMzp7YIeMZtw" source="org.eclipse.papyrus"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8co2ARVpEeeMzp7YIeMZtw" key="nature" value="UML_Nature"/> + </eAnnotations> + <ownedEnd xmi:type="uml:Property" xmi:id="_8co2AxVpEeeMzp7YIeMZtw" name="meal" type="_QsWr7BVPEeeMzp7YIeMZtw" association="_8clysBVpEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_IMUJMBVqEeeMzp7YIeMZtw" memberEnd="_IMVXUhVqEeeMzp7YIeMZtw _IMVXUxVqEeeMzp7YIeMZtw"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IMVXUBVqEeeMzp7YIeMZtw" source="org.eclipse.papyrus"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IMVXURVqEeeMzp7YIeMZtw" key="nature" value="UML_Nature"/> + </eAnnotations> + <ownedEnd xmi:type="uml:Property" xmi:id="_IMVXUxVqEeeMzp7YIeMZtw" name="dishe" type="_0EEHsBVMEeeMzp7YIeMZtw" association="_IMUJMBVqEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Interface" xmi:id="_T-934BVqEeeMzp7YIeMZtw" name="StrategyDeliveryPolicy"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_aBVC8BVqEeeMzp7YIeMZtw" name="chooseCourier"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_wWBiIBVsEeeMzp7YIeMZtw" name="FastestDelivery"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_zWDkoBVsEeeMzp7YIeMZtw" name="chooseCourier"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_15nGgBVsEeeMzp7YIeMZtw" name="FairOccupationDelivery"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_6gpjEBVsEeeMzp7YIeMZtw" name="chooseCourier"/> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_CBHq4BVtEeeMzp7YIeMZtw" client="_15nGgBVsEeeMzp7YIeMZtw" supplier="_T-934BVqEeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Dependency" xmi:id="_Pc_aIBVtEeeMzp7YIeMZtw" client="_wWBiIBVsEeeMzp7YIeMZtw" supplier="_oX-IkBPOEeeugOD0sSUlEg"/> + <packagedElement xmi:type="uml:Class" xmi:id="_TQsVQBVtEeeMzp7YIeMZtw" name="ContextDeliveryPolicy"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_Fl5jwBVuEeeMzp7YIeMZtw" name="strategyDeliveryPolicy" visibility="private" type="_T-934BVqEeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_RMiPshVuEeeMzp7YIeMZtw" name="strategydeliverypolicy" type="_T-934BVqEeeMzp7YIeMZtw" association="_RMhooBVuEeeMzp7YIeMZtw"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_BXlJMBVuEeeMzp7YIeMZtw" name="execute"/> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_RMhooBVuEeeMzp7YIeMZtw" memberEnd="_RMiPshVuEeeMzp7YIeMZtw _RMiPsxVuEeeMzp7YIeMZtw"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RMiPsBVuEeeMzp7YIeMZtw" source="org.eclipse.papyrus"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RMiPsRVuEeeMzp7YIeMZtw" key="nature" value="UML_Nature"/> + </eAnnotations> + <ownedEnd xmi:type="uml:Property" xmi:id="_RMiPsxVuEeeMzp7YIeMZtw" name="contextdeliverypolicy" type="_TQsVQBVtEeeMzp7YIeMZtw" association="_RMhooBVuEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_trPsABVuEeeMzp7YIeMZtw" client="_trQTFRVuEeeMzp7YIeMZtw" supplier="_trQTFxVuEeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Class" xmi:id="_trQTEBVuEeeMzp7YIeMZtw" name="ContextTargetProfit"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_trQTERVuEeeMzp7YIeMZtw" name="strategyTargetProfit" visibility="private" type="_trQTFxVuEeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_trQTEhVuEeeMzp7YIeMZtw" name="strategydeliverypolicy" type="_trQTFxVuEeeMzp7YIeMZtw" association="_trQ6IBVuEeeMzp7YIeMZtw"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_trQTExVuEeeMzp7YIeMZtw" name="execute"/> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_trQTFBVuEeeMzp7YIeMZtw" client="_trQ6JBVuEeeMzp7YIeMZtw" supplier="_oX-IkBPOEeeugOD0sSUlEg"/> + <packagedElement xmi:type="uml:Class" xmi:id="_trQTFRVuEeeMzp7YIeMZtw" name="TargetProfitMarkup"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_trQTFhVuEeeMzp7YIeMZtw" name="chooseTragetProfit"/> + </packagedElement> + <packagedElement xmi:type="uml:Interface" xmi:id="_trQTFxVuEeeMzp7YIeMZtw" name="StrategyTargetProfitPolicy"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_trQTGBVuEeeMzp7YIeMZtw" name="chooseTragetProfit"/> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_trQ6IBVuEeeMzp7YIeMZtw" memberEnd="_trQTEhVuEeeMzp7YIeMZtw _trQ6IxVuEeeMzp7YIeMZtw"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_trQ6IRVuEeeMzp7YIeMZtw" source="org.eclipse.papyrus"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_trQ6IhVuEeeMzp7YIeMZtw" key="nature" value="UML_Nature"/> + </eAnnotations> + <ownedEnd xmi:type="uml:Property" xmi:id="_trQ6IxVuEeeMzp7YIeMZtw" name="contextdeliverypolicy" type="_trQTEBVuEeeMzp7YIeMZtw" association="_trQ6IBVuEeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_trQ6JBVuEeeMzp7YIeMZtw" name="TargetProfitServiceFee"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_trQ6JRVuEeeMzp7YIeMZtw" name="chooseTragetProfit"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_7uPssBVuEeeMzp7YIeMZtw" name="TargetProfitDeliveryCost"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_7uPssRVuEeeMzp7YIeMZtw" name="chooseTragetProfit"/> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_BMxx8BVvEeeMzp7YIeMZtw" client="_oX-IkBPOEeeugOD0sSUlEg" supplier="_trQTFxVuEeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Class" xmi:id="_OgNIIBV1EeeMzp7YIeMZtw" name="MyFoodora"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_SBA8cBV1EeeMzp7YIeMZtw" name="serviceFee" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EFloat"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_Ve1uMBV1EeeMzp7YIeMZtw" name="markupPercentage" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EFloat"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_afrK0BV1EeeMzp7YIeMZtw" name="deliveryCost" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EFloat"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_hKSosBV1EeeMzp7YIeMZtw" name="listRestaurant" visibility="private" type="_D3KFoBVQEeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_hkFowBV1EeeMzp7YIeMZtw" name="listCustomer" visibility="private" type="_D3KFoBVQEeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_hk8kYBV1EeeMzp7YIeMZtw" name="listCourier" visibility="private" type="_D3KFoBVQEeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_uvbosBV1EeeMzp7YIeMZtw" name="listManager" visibility="private" type="_D3KFoBVQEeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_1lKKYBV1EeeMzp7YIeMZtw" name="targetProfitPolicy" visibility="private" type="_trQTEBVuEeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_AQ-M0BV2EeeMzp7YIeMZtw" name="deliveryPolicy" visibility="private" type="_TQsVQBVtEeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_JFxqUBV2EeeMzp7YIeMZtw" name="specialOffer" visibility="private"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_auaU8BV2EeeMzp7YIeMZtw" name="Operation1"/> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_QxOZcxV-EeeMzp7YIeMZtw" client="_QxSD0BV-EeeMzp7YIeMZtw" supplier="_QxRcxRV-EeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Association" xmi:id="_QxOZdBV-EeeMzp7YIeMZtw" memberEnd="_QxPnmxV-EeeMzp7YIeMZtw _QxOZdxV-EeeMzp7YIeMZtw"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QxOZdRV-EeeMzp7YIeMZtw" source="org.eclipse.papyrus"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QxOZdhV-EeeMzp7YIeMZtw" key="nature" value="UML_Nature"/> + </eAnnotations> + <ownedEnd xmi:type="uml:Property" xmi:id="_QxOZdxV-EeeMzp7YIeMZtw" name="clientapplication" type="_QxPnmBV-EeeMzp7YIeMZtw" association="_QxOZdBV-EeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_QxOZeBV-EeeMzp7YIeMZtw" memberEnd="_QxPnmhV-EeeMzp7YIeMZtw _QxOZexV-EeeMzp7YIeMZtw"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QxOZeRV-EeeMzp7YIeMZtw" source="org.eclipse.papyrus"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QxOZehV-EeeMzp7YIeMZtw" key="nature" value="UML_Nature"/> + </eAnnotations> + <ownedEnd xmi:type="uml:Property" xmi:id="_QxOZexV-EeeMzp7YIeMZtw" name="clientapplication" type="_QxPnmBV-EeeMzp7YIeMZtw" association="_QxOZeBV-EeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxPAgBV-EeeMzp7YIeMZtw" name="MealOfTheWeek"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAgRV-EeeMzp7YIeMZtw" name="state" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAghV-EeeMzp7YIeMZtw" name="name" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAgxV-EeeMzp7YIeMZtw" name="Meal" visibility="private"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxPAhBV-EeeMzp7YIeMZtw" name="HumanUser" isAbstract="true"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAhRV-EeeMzp7YIeMZtw" name="birthDate"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAhhV-EeeMzp7YIeMZtw" name="surname"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_QxPAhxV-EeeMzp7YIeMZtw" client="_QxQOoxV-EeeMzp7YIeMZtw" supplier="_QxPnkBV-EeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Class" xmi:id="_QxPAiBV-EeeMzp7YIeMZtw" name="User" visibility="public" isAbstract="true"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAiRV-EeeMzp7YIeMZtw" name="id" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAihV-EeeMzp7YIeMZtw" name="name" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAixV-EeeMzp7YIeMZtw" name="username" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAjBV-EeeMzp7YIeMZtw" name="password" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAjRV-EeeMzp7YIeMZtw" name="adress" visibility="private" type="_QxQOoBV-EeeMzp7YIeMZtw" isUnique="false"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAjhV-EeeMzp7YIeMZtw" name="mail" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAjxV-EeeMzp7YIeMZtw" name="phoneNumber" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPAkBV-EeeMzp7YIeMZtw" name="activated" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/> + </ownedAttribute> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxPAkRV-EeeMzp7YIeMZtw" name="register"/> + </packagedElement> + <packagedElement xmi:type="uml:Interface" xmi:id="_QxPnkBV-EeeMzp7YIeMZtw" name="Observer"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPnkRV-EeeMzp7YIeMZtw" name="oservableoffer" type="_QxRcxRV-EeeMzp7YIeMZtw" association="_QxRcwRV-EeeMzp7YIeMZtw"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxPnkhV-EeeMzp7YIeMZtw" name="update"/> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_QxPnkxV-EeeMzp7YIeMZtw" client="_QxPAhBV-EeeMzp7YIeMZtw" supplier="_QxPAiBV-EeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Dependency" xmi:id="_QxPnlBV-EeeMzp7YIeMZtw" client="_QxQ1sBV-EeeMzp7YIeMZtw" supplier="_QxPAiBV-EeeMzp7YIeMZtw"/> + <packagedElement xmi:type="uml:Class" xmi:id="_QxPnlRV-EeeMzp7YIeMZtw" name="PointFidelityCard"> + <generalization xmi:type="uml:Generalization" xmi:id="_QxPnlhV-EeeMzp7YIeMZtw" general="_QxQOtRV-EeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPnlxV-EeeMzp7YIeMZtw" name="numberOfPoints"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxPnmBV-EeeMzp7YIeMZtw" name="MyFoodoraSystem"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPnmRV-EeeMzp7YIeMZtw" name="prodFactory" visibility="private" type="_QxSq4BV-EeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPnmhV-EeeMzp7YIeMZtw" name="userfactory" type="_QxSq4BV-EeeMzp7YIeMZtw" association="_QxOZeBV-EeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxPnmxV-EeeMzp7YIeMZtw" name="user" type="_QxPAiBV-EeeMzp7YIeMZtw" association="_QxOZdBV-EeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxQOoBV-EeeMzp7YIeMZtw" name="Adress"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQOoRV-EeeMzp7YIeMZtw" name="x" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EDouble"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQOohV-EeeMzp7YIeMZtw" name="y" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EDouble"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxQOoxV-EeeMzp7YIeMZtw" name="Customer"> + <generalization xmi:type="uml:Generalization" xmi:id="_QxQOpBV-EeeMzp7YIeMZtw" general="_QxPAhBV-EeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQOpRV-EeeMzp7YIeMZtw" name="spamAgree" aggregation="composite"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQOphV-EeeMzp7YIeMZtw" name="historique"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQOpxV-EeeMzp7YIeMZtw" name="card" type="_QxQOtRV-EeeMzp7YIeMZtw"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQOqBV-EeeMzp7YIeMZtw" name="placeOrder"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQOqRV-EeeMzp7YIeMZtw" name="registerFidelityPlan"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQOqhV-EeeMzp7YIeMZtw" name="unregisterFidelityPlan"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQOqxV-EeeMzp7YIeMZtw" name="getHistoryOfOrders"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQOrBV-EeeMzp7YIeMZtw" name="getPointsInTheCard"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQOrRV-EeeMzp7YIeMZtw" name="acceptSpam"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQOrhV-EeeMzp7YIeMZtw" name="refuseSpam"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxQOrxV-EeeMzp7YIeMZtw" name="BasicFidelityCard"> + <generalization xmi:type="uml:Generalization" xmi:id="_QxQOsBV-EeeMzp7YIeMZtw" general="_QxQOtRV-EeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxQOsRV-EeeMzp7YIeMZtw" name="Date"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQOshV-EeeMzp7YIeMZtw" name="year" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQOsxV-EeeMzp7YIeMZtw" name="month" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQOtBV-EeeMzp7YIeMZtw" name="day" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxQOtRV-EeeMzp7YIeMZtw" name="FidelityCard"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQOthV-EeeMzp7YIeMZtw" name="ID"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxQ1sBV-EeeMzp7YIeMZtw" name="MoralUser" isAbstract="true"/> + <packagedElement xmi:type="uml:Class" xmi:id="_QxQ1shV-EeeMzp7YIeMZtw" name="LotteryFidelityCard"> + <generalization xmi:type="uml:Generalization" xmi:id="_QxQ1sxV-EeeMzp7YIeMZtw" general="_QxQOtRV-EeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQ1tBV-EeeMzp7YIeMZtw" name="percentage" isReadOnly="true"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EDouble"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxQ1tRV-EeeMzp7YIeMZtw" name="Position"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQ1thV-EeeMzp7YIeMZtw" name="x" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EDouble"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxQ1txV-EeeMzp7YIeMZtw" name="y" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EDouble"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxQ1uBV-EeeMzp7YIeMZtw" name="Manager"> + <generalization xmi:type="uml:Generalization" xmi:id="_QxQ1uRV-EeeMzp7YIeMZtw" general="_QxPAhBV-EeeMzp7YIeMZtw"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1uhV-EeeMzp7YIeMZtw" name="addUser"> + <ownedParameter xmi:type="uml:Parameter" xmi:id="_QxQ1uxV-EeeMzp7YIeMZtw" name="user" type="_QxPAiBV-EeeMzp7YIeMZtw"/> + </ownedOperation> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1vBV-EeeMzp7YIeMZtw" name="removeUser"> + <ownedParameter xmi:type="uml:Parameter" xmi:id="_QxQ1vRV-EeeMzp7YIeMZtw" name="user" type="_QxPAiBV-EeeMzp7YIeMZtw"/> + </ownedOperation> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1vhV-EeeMzp7YIeMZtw" name="changeServiceFee"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1vxV-EeeMzp7YIeMZtw" name="changeMarkupPercentage"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1wBV-EeeMzp7YIeMZtw" name="changeDeliveryCost"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1wRV-EeeMzp7YIeMZtw" name="getTotalIncome"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1whV-EeeMzp7YIeMZtw" name="getProfit"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1wxV-EeeMzp7YIeMZtw" name="getAverageIncome"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1xBV-EeeMzp7YIeMZtw" name="getAverageProfit"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1xRV-EeeMzp7YIeMZtw" name="getAverageIncomePerCustomer"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1xhV-EeeMzp7YIeMZtw" name="setTargetProfitPolicy"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1xxV-EeeMzp7YIeMZtw" name="getMostsellingRestaurant"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1yBV-EeeMzp7YIeMZtw" name="getLeastSellingRestaurant"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxQ1yRV-EeeMzp7YIeMZtw" name="setDeliveryPolicy"/> + </packagedElement> + <packagedElement xmi:type="uml:Dependency" xmi:id="_QxRcwBV-EeeMzp7YIeMZtw" client="_QxPAgBV-EeeMzp7YIeMZtw"> + <supplier xmi:type="uml:Model" href="file:/B:/Mes%20Documents/progra/java/software/td/my.foodora/FoodoraUml/model.uml#__GX94BP0EeeyD81rpgqPUg"/> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_QxRcwRV-EeeMzp7YIeMZtw" memberEnd="_QxPnkRV-EeeMzp7YIeMZtw _QxRcxBV-EeeMzp7YIeMZtw"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QxRcwhV-EeeMzp7YIeMZtw" source="org.eclipse.papyrus"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QxRcwxV-EeeMzp7YIeMZtw" key="nature" value="UML_Nature"/> + </eAnnotations> + <ownedEnd xmi:type="uml:Property" xmi:id="_QxRcxBV-EeeMzp7YIeMZtw" name="observer" type="_QxPnkBV-EeeMzp7YIeMZtw" association="_QxRcwRV-EeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Interface" xmi:id="_QxRcxRV-EeeMzp7YIeMZtw" name="OservableOffer"> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxRcxhV-EeeMzp7YIeMZtw" name="attachObserver"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxRcxxV-EeeMzp7YIeMZtw" name="detachObserver"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxRcyBV-EeeMzp7YIeMZtw" name="notify"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxSD0BV-EeeMzp7YIeMZtw" name="BirthdayOffer"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxSD0RV-EeeMzp7YIeMZtw" name="state" visibility="private"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxSD0xV-EeeMzp7YIeMZtw" name="Restaurant"> + <generalization xmi:type="uml:Generalization" xmi:id="_QxSD1BV-EeeMzp7YIeMZtw" general="_QxQ1sBV-EeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxSD1RV-EeeMzp7YIeMZtw" name="listOfMeal"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD1hV-EeeMzp7YIeMZtw" name="addItem"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD1xV-EeeMzp7YIeMZtw" name="removeItem"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD2BV-EeeMzp7YIeMZtw" name="setGenericDiscountFactor"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD2RV-EeeMzp7YIeMZtw" name="setSpecialDiscountFactor"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD2hV-EeeMzp7YIeMZtw" name="sortOrders"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxSD2xV-EeeMzp7YIeMZtw" name="Courier"> + <generalization xmi:type="uml:Generalization" xmi:id="_QxSD3BV-EeeMzp7YIeMZtw" general="_QxPAhBV-EeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxSD3RV-EeeMzp7YIeMZtw" name="position" type="_QxQ1tRV-EeeMzp7YIeMZtw"/> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxSD3hV-EeeMzp7YIeMZtw" name="numberOfLivraison"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/> + </ownedAttribute> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxSD3xV-EeeMzp7YIeMZtw" name="available"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/> + </ownedAttribute> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD4BV-EeeMzp7YIeMZtw" name="register"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD4RV-EeeMzp7YIeMZtw" name="unregister"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD4hV-EeeMzp7YIeMZtw" name="setAvailability"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD4xV-EeeMzp7YIeMZtw" name="changePosition"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD5BV-EeeMzp7YIeMZtw" name="acceptDelivery"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSD5RV-EeeMzp7YIeMZtw" name="refuseDelivery"/> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_QxSD5hV-EeeMzp7YIeMZtw" memberEnd="_QxSq4RV-EeeMzp7YIeMZtw _QxSD6RV-EeeMzp7YIeMZtw"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QxSD5xV-EeeMzp7YIeMZtw" source="org.eclipse.papyrus"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QxSD6BV-EeeMzp7YIeMZtw" key="nature" value="UML_Nature"/> + </eAnnotations> + <ownedEnd xmi:type="uml:Property" xmi:id="_QxSD6RV-EeeMzp7YIeMZtw" name="userfactory" type="_QxSq4BV-EeeMzp7YIeMZtw" association="_QxSD5hV-EeeMzp7YIeMZtw"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_QxSq4BV-EeeMzp7YIeMZtw" name="UserFactory"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_QxSq4RV-EeeMzp7YIeMZtw" name="user" type="_QxPAiBV-EeeMzp7YIeMZtw" association="_QxSD5hV-EeeMzp7YIeMZtw"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_QxSq4hV-EeeMzp7YIeMZtw" name="createUser"/> + </packagedElement> + <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_tczxwBVKEeeMzp7YIeMZtw"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tczxwRVKEeeMzp7YIeMZtw" source="http://www.eclipse.org/uml2/2.0.0/UML"> + <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/> + </eAnnotations> + <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/> + </profileApplication> +</uml:Model> diff --git a/src/test/TestCard.java b/src/test/TestCard.java new file mode 100644 index 0000000..755e731 --- /dev/null +++ b/src/test/TestCard.java @@ -0,0 +1,77 @@ +package test; + +import static org.junit.Assert.*; + +import java.util.ArrayList; + +import org.junit.Test; + +import Cards.BasicFidelityCard; +import Cards.LotteryFidelityCard; +import Core.MyFoodora; +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import Exception.ExceptionUnknownStartegyType; +import Exception.ExceptionUnknownTypeOfUser; +import Others.Adress; +import User.Customer; +import User.Manager; +import User.Restaurant; +import User.User; + +public class TestCard { + + public static final int UNKNOWN = 0; + public static final int COURIER = 1; + public static final int RESTAURANT = 2; + public static final int CUSTOMER = 3; + public static final int MANAGER = 4; + + @Test + public void testIDCard() { + BasicFidelityCard card1 = new BasicFidelityCard(); + BasicFidelityCard card2 = new BasicFidelityCard(); + assertTrue(card1.getId() != card2.getId()); + } + + + @Test + public void testPointInTheCard() throws ExceptionUnknownStartegyType, ExceptionUnknownDishType, ExceptionUnknownTypeOfUser{ + MyFoodora foodora = new MyFoodora(); + Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); + manager.addUser(0145, "henry", "henry", "henry.dupont@hotmail.fr", "124578", new Adress(11.0, 15.2), true, "25/12/1994", "henrynou", foodora, User.CUSTOMER, "Human"); + Customer henry = (Customer) foodora.getUserByName("henry", "henry"); + henry.registerFidelityPlan("Point"); + manager.addUser(0245, "La tani�re", "Lataniere", "contact@lataniere.fr", "1234", new Adress(10.0, 15.0), true,"1", "1", foodora,RESTAURANT,"Moral"); + manager.addUser(0245, "martin", "martin", "martin.zebre@hotmail.fr", "1234", new Adress(10.0, 18.0), true,"25/12/1945", "martinou", foodora,COURIER,"Human"); + Restaurant resto1 = (Restaurant) foodora.getUserByName("Lataniere", "La tani�re"); + resto1.addDish("MainDish", "pat�", "glutenfree", 5.0); + ArrayList<String> command = new ArrayList<String>(); + command.add("pat�"); + henry.placeOrder(resto1, "Dish", command, foodora); + assertTrue(henry.getPointInTheCard() == 1); + + } + + @Test + public void testPercentageInTheCard() throws ExceptionUnknownStartegyType, ExceptionUnknownTypeOfUser{ + MyFoodora foodora = new MyFoodora(); + Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); + manager.addUser(0145, "henry", "henry", "henry.dupont@hotmail.fr", "124578", new Adress(11.0, 15.2), true, "25/12/1994", "henrynou", foodora, User.CUSTOMER, "Human"); + Customer henry = (Customer) foodora.getUserByName("henry", "henry"); + henry.registerFidelityPlan("Lottery"); + manager.setProbabilityOnLoteryCard(henry.getCard(), 0.10); + assertTrue(((LotteryFidelityCard)henry.getCard()).getPercentage() == 0.10); + + } + + @Test + public void testGetReduction(){ + LotteryFidelityCard card = new LotteryFidelityCard(); + Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); + manager.setProbabilityOnLoteryCard(card, 1.0); + boolean chance = card.getReduction(); + assertTrue(chance); + } + +} diff --git a/src/test/TestCli.java b/src/test/TestCli.java new file mode 100644 index 0000000..4b805a9 --- /dev/null +++ b/src/test/TestCli.java @@ -0,0 +1,10 @@ +package test; + +import static org.junit.Assert.*; + + +public class TestCli { + + + +} diff --git a/src/test/TestCore.java b/src/test/TestCore.java new file mode 100644 index 0000000..4ef1c6c --- /dev/null +++ b/src/test/TestCore.java @@ -0,0 +1,128 @@ +package test; + +import static org.junit.Assert.*; + +import org.junit.Test; + +import Core.MyFoodora; +import Exception.ExceptionUnknownStartegyType; +import Exception.ExceptionUnknownTypeOfUser; +import Item.Dish; +import Order.Order; +import Others.Adress; +import Others.Date; +import User.Customer; +import User.Manager; +import User.Restaurant; + +public class TestCore { + + public static final int UNKNOWN = 0; + public static final int COURIER = 1; + public static final int RESTAURANT = 2; + public static final int CUSTOMER = 3; + public static final int MANAGER = 4; + + @Test + public void testGetUserByLogin() throws ExceptionUnknownTypeOfUser, ExceptionUnknownStartegyType { + MyFoodora foodora = new MyFoodora(); + Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); + manager.addUser(0145, "henry", "henry", "henry.dupont@hotmail.fr", "124578", new Adress(11.0, 15.2), true, "25/12/1994", "henrynou", foodora, CUSTOMER, "Human"); + Customer customer = (Customer) foodora.getUserByLogin("henry", "124578"); + assertTrue(customer.getName() == "henry"); + } + + @Test + public void testGetUserByName() throws ExceptionUnknownTypeOfUser, ExceptionUnknownStartegyType { + MyFoodora foodora = new MyFoodora(); + Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); + manager.addUser(0145, "henry", "henry", "henry.dupont@hotmail.fr", "124578", new Adress(11.0, 15.2), true, "25/12/1994", "henrynou", foodora, CUSTOMER, "Human"); + Customer customer = (Customer) foodora.getUserByName("henry", "henry"); + assertTrue(customer.getName() == "henry"); + } + + @Test + public void testRemoveWithID() throws ExceptionUnknownTypeOfUser, ExceptionUnknownStartegyType{ + MyFoodora foodora = new MyFoodora(); + Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); + manager.addUser(0145, "henry", "henry", "henry.dupont@hotmail.fr", "124578", new Adress(11.0, 15.2), true, "25/12/1994", "henrynou", foodora, CUSTOMER, "Human"); + Customer henry = (Customer) foodora.getUserByName("henry", "henry"); + foodora.removeWithID(CUSTOMER, henry.getId()); + assertTrue(foodora.getListCustomer().getList().size() ==0); + + } + + @Test + public void testGetLastMonthIncome() throws ExceptionUnknownStartegyType{ + MyFoodora foodora = new MyFoodora(); + Restaurant resto = new Restaurant(0245, "La tani�re", "Lataniere", "contact@lataniere.fr", "1234", new Adress(10.0, 15.0), true); + foodora.setMarkupPercentage(0.05); + foodora.setDeliveryCost(5); + foodora.setServiceFee(10); + int theDay = new java.util.Date().getDay(); + int theMonth = new java.util.Date().getMonth() + 1 ; + int theYear = new java.util.Date().getYear() + 1900; + Others.Date today = new Others.Date(theYear, theMonth, theDay); + int lastMonth = 0; + int yearOfLastMonth = 0; + if(theMonth == 1){ + yearOfLastMonth=today.getIntYear()-1; + lastMonth = 12; + } + else{ + yearOfLastMonth=today.getIntYear(); + lastMonth=today.getIntMonth()-1; + } + Order order1 = new Order(); + Order order2 = new Order(); + order1.setRestaurantAttached(resto); + order2.setRestaurantAttached(resto); + order1.setDate(new Date(yearOfLastMonth, lastMonth, 12)); + order2.setDate(new Date(yearOfLastMonth, lastMonth, 5)); + Dish dish1 = new Dish("pat�", "regular", 56); + order1.add(dish1); + Dish dish2 = new Dish("boulgour","glutenfree",44); + order2.add(dish2); + foodora.getGlobalHistoric().getListOrder().add(order2); + foodora.getGlobalHistoric().getListOrder().add(order1); + assertTrue(foodora.getLastMonthIncome()==100); + } + + @Test + public void testGetLastMonthNumberOfCommands() throws ExceptionUnknownStartegyType{ + MyFoodora foodora = new MyFoodora(); + Restaurant resto = new Restaurant(0245, "La tani�re", "Lataniere", "contact@lataniere.fr", "1234", new Adress(10.0, 15.0), true); + foodora.setMarkupPercentage(0.05); + foodora.setDeliveryCost(5); + foodora.setServiceFee(10); + int theDay = new java.util.Date().getDay(); + int theMonth = new java.util.Date().getMonth() + 1 ; + int theYear = new java.util.Date().getYear() + 1900; + Others.Date today = new Others.Date(theYear, theMonth, theDay); + int lastMonth = 0; + int yearOfLastMonth = 0; + if(theMonth == 1){ + yearOfLastMonth=today.getIntYear()-1; + lastMonth = 12; + } + else{ + yearOfLastMonth=today.getIntYear(); + lastMonth=today.getIntMonth()-1; + } + Order order1 = new Order(); + Order order2 = new Order(); + order1.setRestaurantAttached(resto); + order2.setRestaurantAttached(resto); + order1.setDate(new Date(yearOfLastMonth, lastMonth, 12)); + order2.setDate(new Date(yearOfLastMonth, lastMonth, 5)); + Dish dish1 = new Dish("pat�", "regular", 56); + order1.add(dish1); + Dish dish2 = new Dish("boulgour","glutenfree",44); + order2.add(dish2); + foodora.getGlobalHistoric().getListOrder().add(order2); + foodora.getGlobalHistoric().getListOrder().add(order1); + assertTrue(foodora.getNumberOfOrderLastMonth()==2); + + } + +} diff --git a/src/test/TestCourier.java b/src/test/TestCourier.java index c7c0f05..c650e52 100644 --- a/src/test/TestCourier.java +++ b/src/test/TestCourier.java @@ -8,7 +8,9 @@ import org.junit.Test; import Core.MyFoodora; import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; import Exception.ExceptionUnknownStartegyType; +import Exception.ExceptionUnknownTypeOfUser; import Others.Adress; import Others.Period; import Others.Position; @@ -78,7 +80,7 @@ public class TestCourier { } @Test - public void testAcceptDelivery() throws ExceptionUnknownDishType, ExceptionUnknownStartegyType { + public void testAcceptDelivery() throws ExceptionUnknownDishType, ExceptionUnknownStartegyType, ExceptionUnknownTypeOfUser { MyFoodora foodora = new MyFoodora(); Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); manager.addUser(0145, "henry", "henry", "henry.dupont@hotmail.fr", "124578", new Adress(11.0, 15.2), true, "25/12/1994", "henrynou", foodora, CUSTOMER, "Human"); @@ -95,7 +97,7 @@ public class TestCourier { } @Test - public void testGetNbOfOrderOfTheDay() throws ExceptionUnknownDishType, ExceptionUnknownStartegyType { + public void testGetNbOfOrderOfTheDay() throws ExceptionUnknownDishType, ExceptionUnknownStartegyType, ExceptionUnknownTypeOfUser { MyFoodora foodora = new MyFoodora(); Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); manager.addUser(0145, "henry", "henry", "henry.dupont@hotmail.fr", "124578", new Adress(11.0, 15.2), true, "25/12/1994", "henrynou", foodora, CUSTOMER, "Human"); diff --git a/src/test/TestCustomer.java b/src/test/TestCustomer.java index 40e9f0c..3d9d126 100644 --- a/src/test/TestCustomer.java +++ b/src/test/TestCustomer.java @@ -10,7 +10,9 @@ import Cards.BasicFidelityCard; import Cards.FidelityCard; import Core.MyFoodora; import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; import Exception.ExceptionUnknownStartegyType; +import Exception.ExceptionUnknownTypeOfUser; import Item.Dish; import Others.Adress; import User.Customer; @@ -34,7 +36,7 @@ public class TestCustomer { } @Test - public void testPlaceOrder() throws ExceptionUnknownStartegyType, ExceptionUnknownDishType { + public void testPlaceOrder() throws ExceptionUnknownStartegyType, ExceptionUnknownDishType, ExceptionUnknownTypeOfUser { MyFoodora foodora = new MyFoodora(); Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); manager.addUser(0245, "La tani�re", "Lataniere", "contact@lataniere.fr", "1234", new Adress(10.0, 15.0), true,"1", "1", foodora,RESTAURANT,"Moral"); @@ -69,7 +71,7 @@ public class TestCustomer { } @Test - public void testGetPointInTheCard() throws ExceptionUnknownStartegyType, ExceptionUnknownDishType { + public void testGetPointInTheCard() throws ExceptionUnknownStartegyType, ExceptionUnknownDishType, ExceptionUnknownTypeOfUser { MyFoodora foodora = new MyFoodora(); Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); manager.addUser(0245, "La tani�re", "Lataniere", "contact@lataniere.fr", "1234", new Adress(10.0, 15.0), true,"1", "1", foodora,RESTAURANT,"Moral"); @@ -101,10 +103,5 @@ public class TestCustomer { assertTrue(henry.isSpamAgree() == false); } - @Test - public void testUpdate() { - fail("Not yet implemented"); - } - } diff --git a/src/test/TestDeliveryStrategy.java b/src/test/TestDeliveryStrategy.java new file mode 100644 index 0000000..2d5e715 --- /dev/null +++ b/src/test/TestDeliveryStrategy.java @@ -0,0 +1,68 @@ +package test; + +import static org.junit.Assert.*; + +import org.junit.Test; + +import Core.MyFoodora; + +import DeliveryStrategy.ContextDeliveryStrategy; +import Exception.ExceptionUnknownMealType; +import Exception.ExceptionUnknownStartegyType; +import Exception.ExceptionUnknownTypeOfUser; +import Others.Adress; +import Others.Position; +import User.Courier; +import User.Customer; +import User.Manager; +import User.Restaurant; + +public class TestDeliveryStrategy { + + + public static final int UNKNOWN = 0; + public static final int COURIER = 1; + public static final int RESTAURANT = 2; + public static final int CUSTOMER = 3; + public static final int MANAGER = 4; + + @Test + public void testFastestDelivery() throws ExceptionUnknownStartegyType, ExceptionUnknownTypeOfUser { + MyFoodora foodora = new MyFoodora(); + Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); + manager.addUser(0245, "martin", "martin", "martin.zebre@hotmail.fr", "1234", new Adress(1.0 , 2.0), true,"25/12/1945", "martinou", foodora,COURIER,"Human"); + manager.addUser(0246, "martin2", "martin2", "martin2.zebre@hotmail.fr", "12345", new Adress(10.0, 18.0), true,"25/12/1945", "martinou2", foodora,COURIER,"Human"); + manager.addUser(0245, "La tani�re", "Lataniere", "contact@lataniere.fr", "1234", new Adress(3.0, -2.0), true,"1", "1", foodora,RESTAURANT,"Moral"); + manager.addUser(0145, "henry", "henry", "henry.dupont@hotmail.fr", "124578", new Adress(1.0, 1.0), true, "25/12/1994", "henrynou", foodora, CUSTOMER, "Human"); + Customer henry = (Customer) foodora.getUserByName("henry", "henry"); + Restaurant resto1 = (Restaurant) foodora.getUserByName("Lataniere", "La tani�re"); + ContextDeliveryStrategy newStrategy = new ContextDeliveryStrategy("FastestDelivery"); + manager.setDeliveryPolicy(foodora, newStrategy); + Courier martin = (Courier) foodora.getUserByName("martin", "martin"); + Courier martin2 = (Courier) foodora.getUserByName("martin2", "martin2"); + martin.setPosition(new Position(1.0, 2.0)); + martin2.setPosition(new Position(18.0, 20.0)); + Courier courierToChoose = foodora.getContextDeliveryPolicy().getStrategy().chooseCourier(resto1, henry, foodora.getListCourier().getList()); + assertTrue(courierToChoose.getName() == "martin"); + + + } + + @Test + public void testFairOccupation() throws ExceptionUnknownStartegyType, ExceptionUnknownTypeOfUser{ + MyFoodora foodora = new MyFoodora(); + Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); + manager.addUser(0245, "martin", "martin", "martin.zebre@hotmail.fr", "1234", new Adress(1.0 , 2.0), true,"25/12/1945", "martinou", foodora,COURIER,"Human"); + manager.addUser(0246, "martin2", "martin2", "martin2.zebre@hotmail.fr", "12345", new Adress(10.0, 18.0), true,"25/12/1945", "martinou2", foodora,COURIER,"Human"); + manager.addUser(0245, "La tani�re", "Lataniere", "contact@lataniere.fr", "1234", new Adress(3.0, -2.0), true,"1", "1", foodora,RESTAURANT,"Moral"); + manager.addUser(0145, "henry", "henry", "henry.dupont@hotmail.fr", "124578", new Adress(1.0, 1.0), true, "25/12/1994", "henrynou", foodora, CUSTOMER, "Human"); + Customer henry = (Customer) foodora.getUserByName("henry", "henry"); + Restaurant resto1 = (Restaurant) foodora.getUserByName("Lataniere", "La tani�re"); + ContextDeliveryStrategy newStrategy = new ContextDeliveryStrategy("FairOccupation"); + Courier martin = (Courier) foodora.getUserByName("martin", "martin"); + martin.setNbOfLivraison(20); + Courier courierToChoose = foodora.getContextDeliveryPolicy().getStrategy().chooseCourier(resto1, henry, foodora.getListCourier().getList()); + assertTrue(courierToChoose.getName() == "martin2"); + } + +} diff --git a/src/test/TestException.java b/src/test/TestException.java new file mode 100644 index 0000000..8faa6f4 --- /dev/null +++ b/src/test/TestException.java @@ -0,0 +1,106 @@ +package test; + +import static org.junit.Assert.*; + +import org.junit.Test; + +import Core.MyFoodora; +import DeliveryStrategy.ContextDeliveryStrategy; +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import Exception.ExceptionUnknownStartegyType; +import Exception.ExceptionUnknownTypeOfUser; +import Item.Dish; +import Item.FactoryDish; +import Item.FactoryMeal; +import Item.Meal; +import Others.Adress; +import StrategyProfit.ContextTargetProfitStrategy; +import User.Manager; + +public class TestException { + + public static final int UNKNOWN = 0; + public static final int COURIER = 1; + public static final int RESTAURANT = 2; + public static final int CUSTOMER = 3; + public static final int MANAGER = 4; + @Test + public void testExceptionUnknownDishType() { + try{ + FactoryDish factory1 = new FactoryDish(); + Dish dish = factory1.createDish("Error", "pat�", "glutenfree", 4.5); + } + catch (ExceptionUnknownDishType e) { + assertTrue(true); + } + + } + + @Test + public void testExceptionUnknownMealType(){ + try { + FactoryMeal factory = new FactoryMeal(); + Meal meal = factory.createMeal("meal1", "eror"); + + } catch (ExceptionUnknownMealType e) { + assertTrue(true); + } + } + + @Test + public void testExceptionUnknownStartegyDelivery(){ + try{ + MyFoodora foodora = new MyFoodora(); + ContextDeliveryStrategy newStrategy = new ContextDeliveryStrategy("eror"); + foodora.setContextDeliveryPolicy(newStrategy); + } + catch (ExceptionUnknownStartegyType e) { + assertTrue(true); + } + } + + @Test + public void testExceptionUnknownStartegyProfit(){ + try{ + MyFoodora foodora = new MyFoodora(); + ContextTargetProfitStrategy newStrategy = new ContextTargetProfitStrategy("eror"); + foodora.setContextTargetProfitStrategy(newStrategy); + } + catch (ExceptionUnknownStartegyType e) { + assertTrue(true); + } + } + + @Test + public void testExceptionUnknownTypeOfUser() throws ExceptionUnknownStartegyType, ExceptionUnknownTypeOfUser{ + MyFoodora foodora = new MyFoodora(); + Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); + try { manager.addUser(0145, "henry", "henry", "henry.dupont@hotmail.fr", "124578", new Adress(11.0, 15.2), true, "25/12/1994", "henrynou", foodora, CUSTOMER, "error"); + } + catch (ExceptionUnknownTypeOfUser e) { + assertTrue(true); + } + + try { manager.addUser(0145, "henry", "henry", "henry.dupont@hotmail.fr", "124578", new Adress(11.0, 15.2), true, "25/12/1994", "henrynou", foodora, 25, "Human"); + } + catch (ExceptionUnknownTypeOfUser e) { + assertTrue(true); + } + + try { manager.addUser(0245, "La tani�re", "Lataniere", "contact@lataniere.fr", "1234", new Adress(10.0, 15.0), true,"1", "1", foodora,RESTAURANT,"eror"); + + } + catch (ExceptionUnknownTypeOfUser e) { + assertTrue(true); + } + try { manager.addUser(0245, "La tani�re", "Lataniere", "contact@lataniere.fr", "1234", new Adress(10.0, 15.0), true,"1", "1", foodora,75,"Moral"); + + } + catch (ExceptionUnknownTypeOfUser e) { + assertTrue(true); + } + } + + +} diff --git a/src/test/TestItem.java b/src/test/TestItem.java new file mode 100644 index 0000000..abe35bb --- /dev/null +++ b/src/test/TestItem.java @@ -0,0 +1,90 @@ +package test; + +import static org.junit.Assert.*; + +import java.io.IOException; +import java.io.InputStreamReader; + +import javax.print.DocFlavor.INPUT_STREAM; + +import org.junit.Test; + +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import Item.Dessert; +import Item.Dish; +import Item.FactoryDish; +import Item.FactoryMeal; +import Item.Meal; + +public class TestItem { + + @Test + public void testCreateDish() throws ExceptionUnknownDishType { + FactoryDish factory = new FactoryDish(); + Dish dish = factory.createDish("Dessert", "pat�", "glutenfree", 4.5); + assertTrue(dish instanceof Dessert); + assertTrue(dish.getPrice() == 4.5); + } + + @Test + public void testCreateHalfMeal() throws ExceptionUnknownMealType, ExceptionUnknownDishType{ + FactoryMeal factory = new FactoryMeal(); + Meal meal = factory.createMeal("meal1", "HalfMeal"); + FactoryDish factory1 = new FactoryDish(); + Dish dish = factory1.createDish("Dessert", "pat�", "glutenfree", 4.5); + Dish dish2 = factory1.createDish("MainDish", "boulgour", "glutenfree", 5.5); + meal.addDish(dish2); + meal.addDish(dish); + assertTrue(meal.getPrice() == 10.0); + } + + @Test + public void testCreateFullMeal() throws ExceptionUnknownDishType, ExceptionUnknownMealType{ + FactoryMeal factory = new FactoryMeal(); + Meal meal = factory.createMeal("meal1", "FullMeal"); + FactoryDish factory1 = new FactoryDish(); + Dish dish = factory1.createDish("Dessert", "pat�", "glutenfree", 4.5); + Dish dish2 = factory1.createDish("MainDish", "boulgour", "glutenfree", 5.5); + Dish dish3 = factory1.createDish("Starter", "soupe", "glutenfree", 5); + meal.addDish(dish3); + meal.addDish(dish2); + meal.addDish(dish); + assertTrue(meal.getPrice() == 15.0); + } + + + @Test + public void testAddDish() throws ExceptionUnknownDishType, ExceptionUnknownMealType, IOException{ + FactoryMeal factory = new FactoryMeal(); + Meal meal = factory.createMeal("meal1", "FullMeal"); + FactoryDish factory1 = new FactoryDish(); + Dish dish = factory1.createDish("Dessert", "pat�", "glutenfree", 4.5); + Dish dish2 = factory1.createDish("MainDish", "boulgour", "glutenfree", 5.5); + Dish dish3 = factory1.createDish("Dessert", "soupe", "glutenfree", 5); + meal.addDish(dish); + meal.addDish(dish2); + System.out.println("please type n"); + meal.addDish(dish3); + assertTrue(meal.getPrice() == 10.0); + + } + + + @Test + public void testRemoveDish() throws ExceptionUnknownMealType, ExceptionUnknownDishType{ + FactoryMeal factory = new FactoryMeal(); + Meal meal = factory.createMeal("meal1", "FullMeal"); + FactoryDish factory1 = new FactoryDish(); + Dish dish = factory1.createDish("Dessert", "pat�", "glutenfree", 4.5); + Dish dish2 = factory1.createDish("MainDish", "boulgour", "glutenfree", 5.5); + Dish dish3 = factory1.createDish("Starter", "soupe", "glutenfree", 5); + meal.addDish(dish); + meal.addDish(dish2); + meal.addDish(dish3); + meal.removeDish("soupe");; + assertTrue(meal.getPrice() == 10.0); + } + + +} diff --git a/src/test/TestManager.java b/src/test/TestManager.java index 3c48fd4..d8b2b6b 100644 --- a/src/test/TestManager.java +++ b/src/test/TestManager.java @@ -10,7 +10,9 @@ import Core.MyFoodora; import DeliveryStrategy.ContextDeliveryStrategy; import DeliveryStrategy.StrategyDeliveryPolicy; import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; import Exception.ExceptionUnknownStartegyType; +import Exception.ExceptionUnknownTypeOfUser; import Item.Dish; import Others.Adress; import Others.Period; @@ -33,7 +35,7 @@ public class TestManager { public static final int MANAGER = 4; @Test - public void testAddUser() throws ExceptionUnknownStartegyType { + public void testAddUser() throws ExceptionUnknownStartegyType, ExceptionUnknownTypeOfUser { MyFoodora foodora = new MyFoodora(); Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); manager.addUser(0145, "henry", "henry", "henry.dupont@hotmail.fr", "124578", new Adress(11.0, 15.2), true, "25/12/1994", "henrynou", foodora, CUSTOMER, "Human"); @@ -58,7 +60,7 @@ public class TestManager { } @Test - public void testRemoveUser() throws ExceptionUnknownStartegyType { + public void testRemoveUser() throws ExceptionUnknownStartegyType, ExceptionUnknownTypeOfUser { MyFoodora foodora = new MyFoodora(); Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); manager.addUser(0145, "henry", "henry", "henry.dupont@hotmail.fr", "124578", new Adress(11.0, 15.2), true, "25/12/1994", "henrynou", foodora, CUSTOMER, "Human"); @@ -87,7 +89,7 @@ public class TestManager { } @Test - public void testGetTotalIncome() throws ExceptionUnknownStartegyType, ExceptionUnknownDishType { + public void testGetTotalIncome() throws ExceptionUnknownStartegyType, ExceptionUnknownDishType, ExceptionUnknownTypeOfUser { MyFoodora foodora = new MyFoodora(); Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); Others.Date begin = new Others.Date(2017, 04, 30); @@ -107,7 +109,7 @@ public class TestManager { } @Test - public void testGetTotalProfit() throws ExceptionUnknownStartegyType, ExceptionUnknownDishType { + public void testGetTotalProfit() throws ExceptionUnknownStartegyType, ExceptionUnknownDishType,ExceptionUnknownTypeOfUser { MyFoodora foodora = new MyFoodora(); foodora.setMarkupPercentage(0.05); foodora.setDeliveryCost(10); @@ -130,7 +132,7 @@ public class TestManager { } @Test - public void testGetAverageIncomePerCustomer() throws ExceptionUnknownStartegyType, ExceptionUnknownDishType { + public void testGetAverageIncomePerCustomer() throws ExceptionUnknownStartegyType, ExceptionUnknownDishType, ExceptionUnknownTypeOfUser { MyFoodora foodora = new MyFoodora(); Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); Others.Date begin = new Others.Date(2017, 04, 30); @@ -169,7 +171,7 @@ public class TestManager { } @Test - public void testGetMostSellingRestaurant() throws ExceptionUnknownStartegyType, ExceptionUnknownDishType { + public void testGetMostSellingRestaurant() throws ExceptionUnknownStartegyType, ExceptionUnknownDishType, ExceptionUnknownTypeOfUser { MyFoodora foodora = new MyFoodora(); Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); manager.addUser(0245, "La tani�re", "Lataniere", "contact@lataniere.fr", "1234", new Adress(10.0, 15.0), true,"1", "1", foodora,RESTAURANT,"Moral"); @@ -187,7 +189,7 @@ public class TestManager { } @Test - public void testGetLeastSellingRestaurant() throws ExceptionUnknownStartegyType, ExceptionUnknownDishType { + public void testGetLeastSellingRestaurant() throws ExceptionUnknownStartegyType, ExceptionUnknownDishType, ExceptionUnknownTypeOfUser { MyFoodora foodora = new MyFoodora(); Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); manager.addUser(0245, "La tani�re", "Lataniere", "contact@lataniere.fr", "1234", new Adress(10.0, 15.0), true,"1", "1", foodora,RESTAURANT,"Moral"); @@ -205,7 +207,7 @@ public class TestManager { } @Test - public void testGetLeastActiveCourier() throws ExceptionUnknownStartegyType, ExceptionUnknownDishType { + public void testGetLeastActiveCourier() throws ExceptionUnknownStartegyType, ExceptionUnknownDishType, ExceptionUnknownTypeOfUser { MyFoodora foodora = new MyFoodora(); Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); manager.addUser(0245, "martin", "martin", "martin.zebre@hotmail.fr", "1234", new Adress(10.0, 18.0), true,"25/12/1945", "martinou", foodora,COURIER,"Human"); @@ -218,14 +220,12 @@ public class TestManager { ArrayList<String> command = new ArrayList<String>(); command.add("pat�"); henry.placeOrder(resto1, "Dish", command, foodora); - Courier martin = (Courier) foodora.getUserByName("martin", "martin"); - Courier martin2 = (Courier) foodora.getUserByName("martin2", "martin2"); String leastActiveCourier = manager.getLeastActiveCourier(foodora); - assertTrue(leastActiveCourier == "martin"); // pb + assertTrue(leastActiveCourier == "martin"); } @Test - public void testGetMostActiveCourier() throws ExceptionUnknownStartegyType, ExceptionUnknownDishType { + public void testGetMostActiveCourier() throws ExceptionUnknownStartegyType, ExceptionUnknownDishType, ExceptionUnknownTypeOfUser { MyFoodora foodora = new MyFoodora(); Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); manager.addUser(0245, "martin", "martin", "martin.zebre@hotmail.fr", "1234", new Adress(10.0, 18.0), true,"25/12/1945", "martinou", foodora,COURIER,"Human"); @@ -243,7 +243,7 @@ public class TestManager { } @Test - public void testActivateUser() throws ExceptionUnknownStartegyType { + public void testActivateUser() throws ExceptionUnknownStartegyType, ExceptionUnknownTypeOfUser { MyFoodora foodora = new MyFoodora(); Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); manager.addUser(0145, "henry", "henry", "henry.dupont@hotmail.fr", "124578", new Adress(11.0, 15.2), true, "25/12/1994", "henrynou", foodora, CUSTOMER, "Human"); @@ -254,7 +254,7 @@ public class TestManager { } @Test - public void testDesactivateUser() throws ExceptionUnknownStartegyType { + public void testDesactivateUser() throws ExceptionUnknownStartegyType, ExceptionUnknownTypeOfUser { MyFoodora foodora = new MyFoodora(); Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); manager.addUser(0145, "henry", "henry", "henry.dupont@hotmail.fr", "124578", new Adress(11.0, 15.2), true, "25/12/1994", "henrynou", foodora, CUSTOMER, "Human"); diff --git a/src/test/TestOffers.java b/src/test/TestOffers.java new file mode 100644 index 0000000..14118f4 --- /dev/null +++ b/src/test/TestOffers.java @@ -0,0 +1,80 @@ +package test; + +import static org.junit.Assert.*; + +import org.junit.Test; + +import Core.MyFoodora; +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import Exception.ExceptionUnknownStartegyType; +import Exception.ExceptionUnknownTypeOfUser; +import Item.Dish; +import Item.FactoryDish; +import Item.FactoryMeal; +import Item.Meal; +import Offers.MealOfTheWeek; +import Order.Order; +import Others.Adress; +import Others.Period; +import User.Customer; +import User.Manager; +import User.Restaurant; + +public class TestOffers { + + public static final int UNKNOWN = 0; + public static final int COURIER = 1; + public static final int RESTAURANT = 2; + public static final int CUSTOMER = 3; + public static final int MANAGER = 4; + + + @Test + public void testNotifyObservers() throws ExceptionUnknownMealType, ExceptionUnknownDishType { + Customer customer = new Customer(0145, "henry", "henry", "henry.dupont@hotmail.fr", "124578", new Adress(11.0, 15.2), true, "25/12/1994", "henrynou"); + Restaurant r = new Restaurant(0245, "La tani�re", "Lataniere", "contact@lataniere.fr", "1234", new Adress(10.0, 15.0), true); + Order order = new Order(); + FactoryMeal factory = new FactoryMeal(); + Meal meal = factory.createMeal("meal1", "FullMeal"); + FactoryDish factory1 = new FactoryDish(); + Dish dish = factory1.createDish("Dessert", "pat�", "glutenfree", 4.5); + Dish dish2 = factory1.createDish("MainDish", "boulgour", "glutenfree", 5.5); + Dish dish3 = factory1.createDish("Starter", "soupe", "glutenfree", 5); + meal.addDish(dish3); + meal.addDish(dish2); + meal.addDish(dish); + MealOfTheWeek mealOfTheWeek = new MealOfTheWeek(meal); + mealOfTheWeek.attachObserver(customer); + mealOfTheWeek.setInterests(r); + assertTrue(customer.getNbOfOfferReceived() == 1); + } + + @Test + public void testInFoodora() throws ExceptionUnknownDishType, ExceptionUnknownStartegyType, ExceptionUnknownMealType, ExceptionUnknownTypeOfUser{ + MyFoodora foodora = new MyFoodora(); + Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); + manager.addUser(0145, "henry", "henry", "henry.dupont@hotmail.fr", "124578", new Adress(11.0, 15.2), true, "25/12/1994", "henrynou", foodora, CUSTOMER, "Human"); + manager.addUser(0146, "henry2", "henry2", "henry2.dupont@hotmail.fr", "1245789", new Adress(11.0, 15.3), true, "25/12/1995", "henrynou2", foodora, CUSTOMER, "Human"); + manager.addUser(0245, "La tani�re", "Lataniere", "contact@lataniere.fr", "1234", new Adress(10.0, 15.0), true,"1", "1", foodora,RESTAURANT,"Moral"); + Customer henry = (Customer) foodora.getUserByName("henry", "henry"); + Customer henry2 = (Customer) foodora.getUserByName("henry2", "henry2"); + henry2.refuseSpam(); + Restaurant resto = (Restaurant) foodora.getUserByName("Lataniere", "La tani�re"); + resto.addDish("MainDish", "pat�", "glutenfree", 4.5); + resto.addDish("Starter","boulgour","vegetarian", 5); + resto.addDish("Dessert", "fondant", "regular", 7); + Dish pat� = resto.getDishByName("pat�"); + Dish boulgour = resto.getDishByName("boulgour"); + Dish fondant = resto.getDishByName("fondant"); + resto.createMeal("meal1", "FullMeal"); + Meal meal1 = resto.getMealByName("meal1"); + resto.addDishToMeal(fondant, meal1); + resto.addDishToMeal(boulgour, meal1); + resto.addDishToMeal(pat�, meal1); + resto.addMealOfTheWeek(foodora, "meal1"); + assertTrue(henry.getNbOfOfferReceived() ==1); + assertTrue(henry2.getNbOfOfferReceived() == 0); + } + +} diff --git a/src/test/TestOrder.java b/src/test/TestOrder.java new file mode 100644 index 0000000..460cc15 --- /dev/null +++ b/src/test/TestOrder.java @@ -0,0 +1,70 @@ +package test; + +import static org.junit.Assert.*; + +import java.util.ArrayList; + +import org.junit.Test; + +import Exception.ExceptionUnknownDishType; +import Exception.ExceptionUnknownMealType; +import Item.Dish; +import Item.FactoryDish; +import Item.FactoryMeal; +import Item.Meal; +import Order.HistoricOrder; +import Order.Order; +import Others.Adress; +import Others.Date; +import Others.Period; +import User.Restaurant; + +public class TestOrder { + + @Test + public void testFinalize() { + Order order = new Order(); + order.finalize(); + int theDay = new java.util.Date().getDay(); + assertTrue(order.getDate().getIntDay() == theDay); + assertTrue(order.isFinalised()); + } + + @Test + public void testGetListOfOrderInAPeriod(){ + Order order = new Order(); + Order order2 = new Order(); + order.setDate(new Date(2017, 04, 25)); + order2.setDate(new Date(2017, 05, 25)); + Date end = new Date(2017, 05, 05); + Date begin = new Date(2017, 04, 01); + Period period = new Period(begin, end); + HistoricOrder listOfOrder = new HistoricOrder(); + listOfOrder.addOrder(order2); + listOfOrder.addOrder(order); + ArrayList<Order> listOfOrderInThePeriod = order.getListOfOrderInAPeriod(listOfOrder, period); + assertTrue(listOfOrderInThePeriod.size() == 1); + } + + @Test + public void testGetPrice() throws ExceptionUnknownMealType, ExceptionUnknownDishType{ + Order order = new Order(); + Restaurant resto = new Restaurant(0245, "La tani�re", "Lataniere", "contact@lataniere.fr", "1234", new Adress(10.0, 15.0), true); + order.setRestaurantAttached(resto); + FactoryMeal factory = new FactoryMeal(); + Meal meal = factory.createMeal("meal1", "FullMeal"); + FactoryDish factory1 = new FactoryDish(); + Dish dish = factory1.createDish("Dessert", "pat�", "glutenfree", 4.5); + Dish dish2 = factory1.createDish("MainDish", "boulgour", "glutenfree", 5.5); + Dish dish3 = factory1.createDish("Starter", "soupe", "glutenfree", 5); + meal.addDish(dish3); + meal.addDish(dish2); + meal.addDish(dish); + order.add(meal); + order.add(dish3); + assertTrue(order.getPrice() == 19.25); + + + } + +} diff --git a/src/test/TestOthers.java b/src/test/TestOthers.java new file mode 100644 index 0000000..4049ec9 --- /dev/null +++ b/src/test/TestOthers.java @@ -0,0 +1,27 @@ +package test; + +import static org.junit.Assert.*; + +import org.junit.Test; + +import Cards.BasicFidelityCard; +import Cards.PointFidelityCard; +import Others.Adress; + +public class TestOthers { + + @Test + public void testIDCard() { + BasicFidelityCard card1 = new BasicFidelityCard(); + PointFidelityCard card2 = new PointFidelityCard(); + assertTrue(card1.getId() != card2.getId()); + } + + @Test + public void testAdressFromString(){ + Adress adress = Adress.fromStr("0.1,0.4"); + assertTrue(adress.getX()==0.1); + assertTrue(adress.getY()==0.4); + } + +} diff --git a/src/test/TestRestaurant.java b/src/test/TestRestaurant.java index 03de4a1..711c613 100644 --- a/src/test/TestRestaurant.java +++ b/src/test/TestRestaurant.java @@ -10,6 +10,7 @@ import Core.MyFoodora; import Exception.ExceptionUnknownDishType; import Exception.ExceptionUnknownMealType; import Exception.ExceptionUnknownStartegyType; +import Exception.ExceptionUnknownTypeOfUser; import Item.Dish; import Item.HalfMeal; import Item.Meal; @@ -111,15 +112,14 @@ public class TestRestaurant { Dish pat� = resto.getDishByName("pat�"); Dish boulgour = resto.getDishByName("boulgour"); Dish fondant = resto.getDishByName("fondant"); - resto.createMeal("meal1", "FullMeal"); + resto.createMeal("meal1", "HalfMeal"); Meal meal1 = resto.getMealByName("meal1"); resto.addDishToMeal(fondant, meal1); - resto.addDishToMeal(boulgour, meal1); resto.addDishToMeal(pat�, meal1); - resto.createMeal("meal1", "HalfMeal"); - Meal meal2 = resto.getMealByName("meal1"); - resto.addDishToMeal(fondant, meal2); + resto.createMeal("meal2", "HalfMeal"); + Meal meal2 = resto.getMealByName("meal2"); resto.addDishToMeal(boulgour, meal2); + resto.addDishToMeal(pat�, meal2); for(Meal m : resto.getListOfMeal()){ if(m.getName() == "meal1"){ m.setNbOfSell(20); @@ -131,7 +131,7 @@ public class TestRestaurant { } @Test - public void testGetSortListOfDish() throws ExceptionUnknownDishType, ExceptionUnknownStartegyType { + public void testGetSortListOfDish() throws ExceptionUnknownDishType, ExceptionUnknownStartegyType, ExceptionUnknownTypeOfUser { MyFoodora foodora = new MyFoodora(); Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); manager.addUser(0245, "La tani�re", "Lataniere", "contact@lataniere.fr", "1234", new Adress(10.0, 15.0), true,"1", "1", foodora,RESTAURANT,"Moral"); @@ -149,5 +149,27 @@ public class TestRestaurant { assertTrue(mostSelled.getName() == "pat�"); } + + @Test + public void testSetMealOfTheWeek() throws ExceptionUnknownStartegyType, ExceptionUnknownMealType, ExceptionUnknownDishType, ExceptionUnknownTypeOfUser{ + MyFoodora foodora = new MyFoodora(); + Manager manager = new Manager(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo"); + manager.addUser(0245, "La tani�re", "Lataniere", "contact@lataniere.fr", "1234", new Adress(10.0, 15.0), true,"1", "1", foodora,RESTAURANT,"Moral"); + Restaurant resto1 = (Restaurant) foodora.getUserByName("Lataniere", "La tani�re"); + Restaurant resto = (Restaurant) foodora.getUserByName("Lataniere", "La tani�re"); + resto.addDish("MainDish", "pat�", "glutenfree", 4.5); + resto.addDish("Starter","boulgour","vegetarian", 5); + resto.addDish("Dessert", "fondant", "regular", 7); + Dish pat� = resto.getDishByName("pat�"); + Dish boulgour = resto.getDishByName("boulgour"); + Dish fondant = resto.getDishByName("fondant"); + resto.createMeal("meal1", "FullMeal"); + Meal meal1 = resto.getMealByName("meal1"); + resto.addDishToMeal(fondant, meal1); + resto.addDishToMeal(boulgour, meal1); + resto.addDishToMeal(pat�, meal1); + resto.addMealOfTheWeek(foodora, "meal1"); + assertTrue(resto.getMealOfTheWeek().getMeal().getName() == "meal1"); + } } diff --git a/src/test/TestTargetProfitStrategy.java b/src/test/TestTargetProfitStrategy.java new file mode 100644 index 0000000..5c4152f --- /dev/null +++ b/src/test/TestTargetProfitStrategy.java @@ -0,0 +1,146 @@ +package test; + +import static org.junit.Assert.*; + +import org.junit.Test; + +import Core.MyFoodora; +import DeliveryStrategy.ContextDeliveryStrategy; +import Exception.ExceptionUnknownStartegyType; +import Item.Dish; +import Order.Order; +import Others.Adress; +import Others.Date; +import StrategyProfit.ContextTargetProfitStrategy; +import StrategyProfit.TargetProfitDeliveryCost; +import User.Restaurant; + +public class TestTargetProfitStrategy { + + public static final int UNKNOWN = 0; + public static final int COURIER = 1; + public static final int RESTAURANT = 2; + public static final int CUSTOMER = 3; + public static final int MANAGER = 4; + + @Test + public void testDeliveryCost() throws ExceptionUnknownStartegyType { + MyFoodora foodora = new MyFoodora(); + Restaurant resto = new Restaurant(0245, "La tani�re", "Lataniere", "contact@lataniere.fr", "1234", new Adress(10.0, 15.0), true); + foodora.setMarkupPercentage(0.05); + foodora.setDeliveryCost(5); + foodora.setServiceFee(10); + int theDay = new java.util.Date().getDay(); + int theMonth = new java.util.Date().getMonth() + 1 ; + int theYear = new java.util.Date().getYear() + 1900; + Others.Date today = new Others.Date(theYear, theMonth, theDay); + int lastMonth = 0; + int yearOfLastMonth = 0; + if(theMonth == 1){ + yearOfLastMonth=today.getIntYear()-1; + lastMonth = 12; + } + else{ + yearOfLastMonth=today.getIntYear(); + lastMonth=today.getIntMonth()-1; + } + Order order1 = new Order(); + Order order2 = new Order(); + order1.setRestaurantAttached(resto); + order2.setRestaurantAttached(resto); + order1.setDate(new Date(yearOfLastMonth, lastMonth, 12)); + order2.setDate(new Date(yearOfLastMonth, lastMonth, 5)); + Dish dish1 = new Dish("pat�", "regular", 56); + order1.add(dish1); + Dish dish2 = new Dish("boulgour","glutenfree",44); + order2.add(dish2); + foodora.getGlobalHistoric().getListOrder().add(order2); + foodora.getGlobalHistoric().getListOrder().add(order1); + double targetProfit = 20.0; + ContextTargetProfitStrategy newProfitPolicy = new ContextTargetProfitStrategy("DeliveryCost"); + foodora.setContextTargetProfitStrategy(newProfitPolicy); + foodora.getContextTargetProfitStrategy().execute(foodora, targetProfit); + assertTrue(foodora.getDeliveryCost() == 2.5); + } + + @Test + public void testMarkupPercentage() throws ExceptionUnknownStartegyType { + MyFoodora foodora = new MyFoodora(); + Restaurant resto = new Restaurant(0245, "La tani�re", "Lataniere", "contact@lataniere.fr", "1234", new Adress(10.0, 15.0), true); + foodora.setMarkupPercentage(0.05); + foodora.setDeliveryCost(5); + foodora.setServiceFee(10); + int theDay = new java.util.Date().getDay(); + int theMonth = new java.util.Date().getMonth() + 1 ; + int theYear = new java.util.Date().getYear() + 1900; + Others.Date today = new Others.Date(theYear, theMonth, theDay); + int lastMonth = 0; + int yearOfLastMonth = 0; + if(theMonth == 1){ + yearOfLastMonth=today.getIntYear()-1; + lastMonth = 12; + } + else{ + yearOfLastMonth=today.getIntYear(); + lastMonth=today.getIntMonth()-1; + } + Order order1 = new Order(); + Order order2 = new Order(); + order1.setRestaurantAttached(resto); + order2.setRestaurantAttached(resto); + order1.setDate(new Date(yearOfLastMonth, lastMonth, 12)); + order2.setDate(new Date(yearOfLastMonth, lastMonth, 5)); + Dish dish1 = new Dish("pat�", "regular", 56); + order1.add(dish1); + Dish dish2 = new Dish("boulgour","glutenfree",44); + order2.add(dish2); + foodora.getGlobalHistoric().getListOrder().add(order2); + foodora.getGlobalHistoric().getListOrder().add(order1); + double targetProfit = 20.0; + ContextTargetProfitStrategy newProfitPolicy = new ContextTargetProfitStrategy("Markup"); + foodora.setContextTargetProfitStrategy(newProfitPolicy); + foodora.getContextTargetProfitStrategy().execute(foodora, targetProfit); + assertTrue(foodora.getMarkupPercentage() == 0.1); + } + + @Test + public void testServiceFee() throws ExceptionUnknownStartegyType { + MyFoodora foodora = new MyFoodora(); + Restaurant resto = new Restaurant(0245, "La tani�re", "Lataniere", "contact@lataniere.fr", "1234", new Adress(10.0, 15.0), true); + foodora.setMarkupPercentage(0.05); + foodora.setDeliveryCost(5); + foodora.setServiceFee(10); + int theDay = new java.util.Date().getDay(); + int theMonth = new java.util.Date().getMonth() + 1 ; + int theYear = new java.util.Date().getYear() + 1900; + Others.Date today = new Others.Date(theYear, theMonth, theDay); + int lastMonth = 0; + int yearOfLastMonth = 0; + if(theMonth == 1){ + yearOfLastMonth=today.getIntYear()-1; + lastMonth = 12; + } + else{ + yearOfLastMonth=today.getIntYear(); + lastMonth=today.getIntMonth()-1; + } + Order order1 = new Order(); + Order order2 = new Order(); + order1.setRestaurantAttached(resto); + order2.setRestaurantAttached(resto); + order1.setDate(new Date(yearOfLastMonth, lastMonth, 12)); + order2.setDate(new Date(yearOfLastMonth, lastMonth, 5)); + Dish dish1 = new Dish("pat�", "regular", 56); + order1.add(dish1); + Dish dish2 = new Dish("boulgour","glutenfree",44); + order2.add(dish2); + foodora.getGlobalHistoric().getListOrder().add(order2); + foodora.getGlobalHistoric().getListOrder().add(order1); + double targetProfit = 20.0; + ContextTargetProfitStrategy newProfitPolicy = new ContextTargetProfitStrategy("ServiceFee"); + foodora.setContextTargetProfitStrategy(newProfitPolicy); + foodora.getContextTargetProfitStrategy().execute(foodora, targetProfit); + assertTrue(foodora.getServiceFee() == 12.5); + } + +} diff --git a/src/test/TestUserFactory.java b/src/test/TestUserFactory.java new file mode 100644 index 0000000..264c4a9 --- /dev/null +++ b/src/test/TestUserFactory.java @@ -0,0 +1,42 @@ +package test; + +import static org.junit.Assert.*; + +import org.junit.Test; + + +import Exception.ExceptionUnknownTypeOfUser; +import Others.Adress; +import User.HumanUser; +import User.Manager; +import User.MoralUser; +import UserFactoryPattern.FactoryUserFactory; +import UserFactoryPattern.UserFactory; + +public class TestUserFactory { + + public static final int UNKNOWN = 0; + public static final int COURIER = 1; + public static final int RESTAURANT = 2; + public static final int CUSTOMER = 3; + public static final int MANAGER = 4; + + @Test + public void testCreateHumanUser() throws ExceptionUnknownTypeOfUser { + UserFactory factory = FactoryUserFactory.createUserFactory("Human") ; + HumanUser manager = factory.createHumanUser(0674, "jacques", "jacquo", "jacques.martin@hotmail.fr", "123456789", new Adress(15.0, 10.0), true, "25/15/1955", "jacquo", MANAGER ); + assertTrue(manager.getTypeOfUser() == MANAGER); + assertTrue(manager.getName()=="jacques"); + } + + + @Test + public void testCreateMoralUser() throws ExceptionUnknownTypeOfUser { + UserFactory factory = FactoryUserFactory.createUserFactory("Moral") ; + MoralUser manager = factory.createMoralUser(0245, "La tani�re", "Lataniere", "contact@lataniere.fr", "1234", new Adress(10.0, 15.0), true,RESTAURANT); + assertTrue(manager.getTypeOfUser() == RESTAURANT); + assertTrue(manager.getName()=="La tani�re"); + } + + +} -- GitLab