From fea897778a22a8f2aa0964a6e2084dbbec27a595 Mon Sep 17 00:00:00 2001 From: Frank Rohde <frank.rohde@tu-dresden.de> Date: Thu, 10 Mar 2022 16:16:52 +0100 Subject: [PATCH] VDA5050 implemented and tested ToozExt implemented and tested --- build.gradle | 3 +- emf_datamodel/model/iPos_Datamodel.aird | 698 ++++++++++++++++- emf_datamodel/model/iPos_Datamodel.ecore | 55 ++ emf_datamodel/model/iPos_Datamodel.genmodel | 55 ++ init_Industrierobotik.txt | 4 +- .../ipos/project/CustomLoggingFilter.java | 2 + .../SimpleSceneIntegration.java | 11 +- .../service/SimpleSceneTransformer.java | 69 +- .../VDA5050Processor/VDA5050Processor.java | 44 ++ .../api/MqttRequestHandler.java | 282 +++++++ .../service/VDA5050Transformer.java | 70 ++ .../IPosDevKit/IPosDevKitFactory.java | 9 + .../IPosDevKit/IPosDevKitPackage.java | 301 ++++++++ .../IPosDevKit/IposMsgRcvEvent.java | 229 ++++++ .../impl/IPosDevKitFactoryImpl.java | 12 + .../impl/IPosDevKitPackageImpl.java | 147 ++++ .../IPosDevKit/impl/IposMsgRcvEventImpl.java | 623 +++++++++++++++ .../util/IPosDevKitAdapterFactory.java | 19 + .../IPosDevKit/util/IPosDevKitSwitch.java | 22 + .../iPos_Datamodel/IPos_DatamodelFactory.java | 9 + .../iPos_Datamodel/IPos_DatamodelPackage.java | 258 ++++++- .../iPos_Datamodel/MessageReceivedEvent.java | 141 ++++ .../OFBiz/impl/OFBizPackageImpl.java | 8 + .../iPos_Datamodel/Tooz/DistantEntity.java | 23 + .../iPos_Datamodel/Tooz/ToozPackage.java | 30 +- .../Tooz/impl/DistantEntityImpl.java | 55 ++ .../Tooz/impl/ToozPackageImpl.java | 21 + .../iPos_Datamodel/VDA5050/AgvPosition.java | 115 +++ .../iPos_Datamodel/VDA5050/AgvState.java | 189 +++++ .../iPos_Datamodel/VDA5050/BatteryState.java | 46 ++ .../iPos_Datamodel/VDA5050/Error.java | 46 ++ .../iPos_Datamodel/VDA5050/Load.java | 46 ++ .../VDA5050/VDA5050Factory.java | 78 ++ .../VDA5050/VDA5050Package.java | 725 ++++++++++++++++++ .../VDA5050/impl/AgvPositionImpl.java | 327 ++++++++ .../VDA5050/impl/AgvStateImpl.java | 538 +++++++++++++ .../VDA5050/impl/BatteryStateImpl.java | 165 ++++ .../VDA5050/impl/ErrorImpl.java | 165 ++++ .../iPos_Datamodel/VDA5050/impl/LoadImpl.java | 164 ++++ .../VDA5050/impl/VDA5050FactoryImpl.java | 150 ++++ .../VDA5050/impl/VDA5050PackageImpl.java | 482 ++++++++++++ .../VDA5050/util/VDA5050AdapterFactory.java | 200 +++++ .../VDA5050/util/VDA5050Switch.java | 205 +++++ .../impl/IPos_DatamodelFactoryImpl.java | 60 ++ .../impl/IPos_DatamodelPackageImpl.java | 137 ++++ .../impl/LocalizableObjectImpl.java | 3 +- .../impl/MessageReceivedEventImpl.java | 392 ++++++++++ .../util/IPos_DatamodelAdapterFactory.java | 19 + .../util/IPos_DatamodelSwitch.java | 22 + .../eventfilter/BeaconFilteringResult.java | 17 +- .../eventfilter/MsgRcvFilteringResult.java | 18 + .../eventfilter/eventFilter.java | 24 +- .../Functionality/eventfilter/readConfig.java | 2 +- src/main/java/ipos/project/MainApp.java | 11 +- .../GenericSensorValueProcessor.java | 10 +- .../Service/GenericSensorTransformer.java | 15 +- .../UseCaseController/PositionMonitoring.java | 184 ++++- .../project/devkit/iposext/IPosExtension.java | 13 +- .../devkit/trans/IPos2protoTransformer.java | 6 + .../project/devkit/utility/OtherUtility.java | 24 +- .../ipos/project/iposextension/tooz/Tooz.java | 84 +- .../project/iposextension/tooz/ToozArgs.java | 13 +- .../project/iposextension/tooz/ToozExt.java | 59 +- .../iposextension/tooz/ToozExtInputMqtt.java | 7 +- .../iposextension/tooz/ToozExtOutputMqtt.java | 7 +- .../tooz/ToozIPosRawdataMqtt.java | 4 +- .../tooz/ToozMonitoringTarget.java | 89 +++ testdata_raw_tooz.txt | 5 +- testdata_raw_tooz_init.txt | 2 +- testdata_raw_vda5050.txt | 3 + 70 files changed, 7906 insertions(+), 165 deletions(-) create mode 100644 src/main/java/ipos/project/DataModellntegration/VDA5050Processor/VDA5050Processor.java create mode 100644 src/main/java/ipos/project/DataModellntegration/VDA5050Processor/api/MqttRequestHandler.java create mode 100644 src/main/java/ipos/project/DataModellntegration/VDA5050Processor/service/VDA5050Transformer.java create mode 100644 src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IposMsgRcvEvent.java create mode 100644 src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IposMsgRcvEventImpl.java create mode 100644 src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/MessageReceivedEvent.java create mode 100644 src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/AgvPosition.java create mode 100644 src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/AgvState.java create mode 100644 src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/BatteryState.java create mode 100644 src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/Error.java create mode 100644 src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/Load.java create mode 100644 src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/VDA5050Factory.java create mode 100644 src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/VDA5050Package.java create mode 100644 src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/AgvPositionImpl.java create mode 100644 src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/AgvStateImpl.java create mode 100644 src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/BatteryStateImpl.java create mode 100644 src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/ErrorImpl.java create mode 100644 src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/LoadImpl.java create mode 100644 src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/VDA5050FactoryImpl.java create mode 100644 src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/VDA5050PackageImpl.java create mode 100644 src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/util/VDA5050AdapterFactory.java create mode 100644 src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/util/VDA5050Switch.java create mode 100644 src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/MessageReceivedEventImpl.java create mode 100644 src/main/java/ipos/project/Functionality/eventfilter/MsgRcvFilteringResult.java create mode 100644 src/main/java/ipos/project/iposextension/tooz/ToozMonitoringTarget.java create mode 100644 testdata_raw_vda5050.txt diff --git a/build.gradle b/build.gradle index 6d8286e..2310a89 100644 --- a/build.gradle +++ b/build.gradle @@ -84,7 +84,8 @@ sourceSets { srcDirs "models/interfaces/GenericSensor", "models/interfaces/SimpleScene", "models/interfaces/OFBizOrderpicker", - "models/interfaces/Tooz" + "models/interfaces/Tooz", + "models/interfaces/VDA5050" // srcDir "src/main/resources" } java { diff --git a/emf_datamodel/model/iPos_Datamodel.aird b/emf_datamodel/model/iPos_Datamodel.aird index 2c5333e..2c493ea 100644 --- a/emf_datamodel/model/iPos_Datamodel.aird +++ b/emf_datamodel/model/iPos_Datamodel.aird @@ -5,7 +5,7 @@ <semanticResources>iPos_Datamodel.genmodel</semanticResources> <ownedViews xmi:type="viewpoint:DView" uid="_EpwecAQNEey-kNQ7esRa_g"> <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/> - <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_Et4wgAQNEey-kNQ7esRa_g" name="iPos_Datamodel" repPath="#_Es-xkAQNEey-kNQ7esRa_g" changeId="0678978b-7913-4092-aa95-af020ffe817b"> + <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_Et4wgAQNEey-kNQ7esRa_g" name="iPos_Datamodel" repPath="#_Es-xkAQNEey-kNQ7esRa_g" changeId="35178b3f-3d7f-425c-b778-889bae2431fb"> <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#/"/> </ownedRepresentationDescriptors> @@ -13,14 +13,18 @@ <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//OFBiz"/> </ownedRepresentationDescriptors> - <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_FmM9IDx3EeyWNq6fFfWVSw" name="IPosDevKit" repPath="#_FmLvADx3EeyWNq6fFfWVSw" changeId="e0c6c57f-c57d-4940-9ba8-94cba4d59d54"> + <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_FmM9IDx3EeyWNq6fFfWVSw" name="IPosDevKit" repPath="#_FmLvADx3EeyWNq6fFfWVSw" changeId="c29febc3-272a-4523-bfce-a791886b5899"> <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//IPosDevKit"/> </ownedRepresentationDescriptors> - <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_27WZMIsNEeyJ0bON1VCj7g" name="Tooz" repPath="#_27T88IsNEeyJ0bON1VCj7g" changeId="5e4ba94c-59c7-414d-8cd7-014b3bd38dd7"> + <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_27WZMIsNEeyJ0bON1VCj7g" name="Tooz" repPath="#_27T88IsNEeyJ0bON1VCj7g" changeId="d3c69b19-086f-45f8-ab55-f7de57bffb9a"> <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//Tooz"/> </ownedRepresentationDescriptors> + <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_KUBu0I_UEeyJ0bON1VCj7g" name="VDA5050" repPath="#_KUAgsI_UEeyJ0bON1VCj7g" changeId="c93da314-38a7-4738-ab2b-de17dd609a6b"> + <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> + <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//VDA5050"/> + </ownedRepresentationDescriptors> </ownedViews> </viewpoint:DAnalysis> <diagram:DSemanticDiagram uid="_Es-xkAQNEey-kNQ7esRa_g"> @@ -649,7 +653,7 @@ <styles xmi:type="notation:FilteringStyle" xmi:id="_1eT4MhFjEeydeasO1RaQEg"/> </children> <styles xmi:type="notation:ShapeStyle" xmi:id="_1eTRIRFjEeydeasO1RaQEg" fontName="Segoe UI" fontHeight="8"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1eTRIhFjEeydeasO1RaQEg" x="2342" y="751" width="140" height="50"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1eTRIhFjEeydeasO1RaQEg" x="2342" y="751" width="140" height="92"/> </children> <children xmi:type="notation:Node" xmi:id="_RzygABFkEeydeasO1RaQEg" type="2003" element="_RzioYBFkEeydeasO1RaQEg"> <children xmi:type="notation:Node" xmi:id="_RzzHEBFkEeydeasO1RaQEg" type="5007"/> @@ -688,7 +692,7 @@ <styles xmi:type="notation:FilteringStyle" xmi:id="_I2AawxFmEeydeasO1RaQEg"/> </children> <styles xmi:type="notation:ShapeStyle" xmi:id="_I1_zsRFmEeydeasO1RaQEg" fontName="Segoe UI" fontHeight="8"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I1_zshFmEeydeasO1RaQEg" x="2535" y="751" width="140" height="50"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I1_zshFmEeydeasO1RaQEg" x="2535" y="751" width="140" height="86"/> </children> <children xmi:type="notation:Node" xmi:id="_Q9NrECxEEeyc2bacnWuMrg" type="2003" element="_Q7S_gCxEEeyc2bacnWuMrg"> <children xmi:type="notation:Node" xmi:id="_Q9SjkCxEEeyc2bacnWuMrg" type="5007"/> @@ -705,7 +709,7 @@ <styles xmi:type="notation:FilteringStyle" xmi:id="_Q9TKoixEEeyc2bacnWuMrg"/> </children> <styles xmi:type="notation:ShapeStyle" xmi:id="_Q9NrESxEEeyc2bacnWuMrg" fontName="Segoe UI" fontHeight="8"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q9NrEixEEeyc2bacnWuMrg" x="1542" y="852" width="171" height="75"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q9NrEixEEeyc2bacnWuMrg" x="1536" y="564" width="171" height="75"/> </children> <children xmi:type="notation:Node" xmi:id="_ipaesCxSEeyc2bacnWuMrg" type="2003" element="_ipG8sCxSEeyc2bacnWuMrg"> <children xmi:type="notation:Node" xmi:id="_ipbFwCxSEeyc2bacnWuMrg" type="5007"/> @@ -720,6 +724,61 @@ <styles xmi:type="notation:ShapeStyle" xmi:id="_ipaesSxSEeyc2bacnWuMrg" fontName="Segoe UI" fontHeight="8"/> <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ipaesixSEeyc2bacnWuMrg" x="1806" y="714" width="195" height="100"/> </children> + <children xmi:type="notation:Node" xmi:id="_-3jIcJSJEeyJ0bON1VCj7g" type="2003" element="_-2weQJSJEeyJ0bON1VCj7g"> + <children xmi:type="notation:Node" xmi:id="_-3jvgJSJEeyJ0bON1VCj7g" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_-3jvgZSJEeyJ0bON1VCj7g" type="7004"> + <children xmi:type="notation:Node" xmi:id="_E3gfwJSKEeyJ0bON1VCj7g" type="3010" element="_E3M9wJSKEeyJ0bON1VCj7g"> + <styles xmi:type="notation:FontStyle" xmi:id="_E3gfwZSKEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_E3gfwpSKEeyJ0bON1VCj7g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_gVeQwJSKEeyJ0bON1VCj7g" type="3010" element="_gVMj8JSKEeyJ0bON1VCj7g"> + <styles xmi:type="notation:FontStyle" xmi:id="_gVeQwZSKEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_gVeQwpSKEeyJ0bON1VCj7g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_R2M8EJSQEeyJ0bON1VCj7g" type="3010" element="_R19rgJSQEeyJ0bON1VCj7g"> + <styles xmi:type="notation:FontStyle" xmi:id="_R2M8EZSQEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_R2M8EpSQEeyJ0bON1VCj7g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_YXErQJSUEeyJ0bON1VCj7g" type="3010" element="_YW1asJSUEeyJ0bON1VCj7g"> + <styles xmi:type="notation:FontStyle" xmi:id="_YXErQZSUEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_YXErQpSUEeyJ0bON1VCj7g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_5dKL8JriEeybDM53IXNodQ" type="3010" element="_5c0NsJriEeybDM53IXNodQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_5dKL8ZriEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_5dKL8priEeybDM53IXNodQ"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_-3jvgpSJEeyJ0bON1VCj7g"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_-3jvg5SJEeyJ0bON1VCj7g"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_-3jIcZSJEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-3jIcpSJEeyJ0bON1VCj7g" x="1877" y="954" width="190" height="142"/> + </children> + <children xmi:type="notation:Node" xmi:id="_swdx1JSKEeyJ0bON1VCj7g" type="2003" element="_swMsEJSKEeyJ0bON1VCj7g"> + <children xmi:type="notation:Node" xmi:id="_swdx15SKEeyJ0bON1VCj7g" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_sweY4JSKEeyJ0bON1VCj7g" type="7004"> + <children xmi:type="notation:Node" xmi:id="_sweY45SKEeyJ0bON1VCj7g" type="3010" element="_swUA0pSKEeyJ0bON1VCj7g"> + <styles xmi:type="notation:FontStyle" xmi:id="_sweY5JSKEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8" italic="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_sweY5ZSKEeyJ0bON1VCj7g"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_sweY4ZSKEeyJ0bON1VCj7g"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_sweY4pSKEeyJ0bON1VCj7g"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_swdx1ZSKEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_swdx1pSKEeyJ0bON1VCj7g" x="2406" y="937" width="140" height="62"/> + </children> + <children xmi:type="notation:Node" xmi:id="_-HZlMJosEeybDM53IXNodQ" type="2003" element="_-GdxEJosEeybDM53IXNodQ"> + <children xmi:type="notation:Node" xmi:id="_-HfEwJosEeybDM53IXNodQ" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_-Hfr0JosEeybDM53IXNodQ" type="7004"> + <children xmi:type="notation:Node" xmi:id="_-HhhAJosEeybDM53IXNodQ" type="3010" element="_-G09cJosEeybDM53IXNodQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_-HhhAZosEeybDM53IXNodQ" fontName="Segoe UI" fontHeight="8" italic="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_-HhhAposEeybDM53IXNodQ"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_-Hfr0ZosEeybDM53IXNodQ"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_-Hfr0posEeybDM53IXNodQ"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_-HZlMZosEeybDM53IXNodQ" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-HZlMposEeybDM53IXNodQ" x="2715" y="924" width="276" height="141"/> + </children> <styles xmi:type="notation:DiagramStyle" xmi:id="_EuqzogQNEey-kNQ7esRa_g"/> <edges xmi:type="notation:Edge" xmi:id="_slHHwAQOEey-kNQ7esRa_g" type="4001" element="_sk66gAQOEey-kNQ7esRa_g" source="_OVBp4AQNEey-kNQ7esRa_g" target="_hS0UIAQOEey-kNQ7esRa_g"> <children xmi:type="notation:Node" xmi:id="_slIV4AQOEey-kNQ7esRa_g" type="6001"> @@ -1165,9 +1224,8 @@ </children> <styles xmi:type="notation:ConnectorStyle" xmi:id="_eXoJkQcoEey-kNQ7esRa_g" routing="Tree"/> <styles xmi:type="notation:FontStyle" xmi:id="_eXoJkgcoEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eXoJkwcoEey-kNQ7esRa_g" points="[0, 0, 113, 0]$[-113, 0, 0, 0]"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eXoJkwcoEey-kNQ7esRa_g" points="[0, 100, 172, 58]$[0, 109, 172, 67]$[-171, 109, 1, 67]$[-171, 91, 1, 49]"/> <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eXowoAcoEey-kNQ7esRa_g" id="(0.0,0.06542056074766354)"/> - <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eXowoQcoEey-kNQ7esRa_g" id="(0.5,0.5)"/> </edges> <edges xmi:type="notation:Edge" xmi:id="_oMShkAcoEey-kNQ7esRa_g" type="4001" element="_X6rBlgQlEey-kNQ7esRa_g" source="_fodekAQjEey-kNQ7esRa_g" target="_-LbRoAQjEey-kNQ7esRa_g"> <children xmi:type="notation:Node" xmi:id="_oMShlAcoEey-kNQ7esRa_g" type="6001"> @@ -1378,17 +1436,17 @@ </edges> <edges xmi:type="notation:Edge" xmi:id="_r0eocCxEEeyc2bacnWuMrg" type="4001" element="_rz8c8CxEEeyc2bacnWuMrg" source="_lCMqkAZsEey-kNQ7esRa_g" target="_Q9NrECxEEeyc2bacnWuMrg"> <children xmi:type="notation:Node" xmi:id="_r0gdoCxEEeyc2bacnWuMrg" type="6001"> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r0gdoSxEEeyc2bacnWuMrg" y="-10"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r0gdoSxEEeyc2bacnWuMrg" y="10"/> </children> <children xmi:type="notation:Node" xmi:id="_r0gdoixEEeyc2bacnWuMrg" type="6002"> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r0gdoyxEEeyc2bacnWuMrg" y="10"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r0gdoyxEEeyc2bacnWuMrg" x="1" y="-10"/> </children> <children xmi:type="notation:Node" xmi:id="_r0hEsCxEEeyc2bacnWuMrg" type="6003"> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r0hEsSxEEeyc2bacnWuMrg" y="10"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r0hEsSxEEeyc2bacnWuMrg" x="1" y="-10"/> </children> <styles xmi:type="notation:ConnectorStyle" xmi:id="_r0eocSxEEeyc2bacnWuMrg" routing="Rectilinear"/> <styles xmi:type="notation:FontStyle" xmi:id="_r0eocixEEeyc2bacnWuMrg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_r0eocyxEEeyc2bacnWuMrg" points="[0, 0, 0, -40]$[0, 40, 0, 0]"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_r0eocyxEEeyc2bacnWuMrg" points="[-6, 0, 0, 248]$[-6, -248, 0, 0]"/> <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_r0jg8CxEEeyc2bacnWuMrg" id="(0.6779661016949152,1.0)"/> <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_r0jg8SxEEeyc2bacnWuMrg" id="(0.47337278106508873,0.0)"/> </edges> @@ -3005,6 +3063,97 @@ </ownedStyle> <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_-2weQJSJEeyJ0bON1VCj7g" name="MessageReceivedEvent" tooltipText="" width="12" height="10"> + <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//MessageReceivedEvent"/> + <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//MessageReceivedEvent"/> + <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_7_EvF5riEeybDM53IXNodQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_E3M9wJSKEeyJ0bON1VCj7g" name="protocolName : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//MessageReceivedEvent/protocolName"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//MessageReceivedEvent/protocolName"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_H6qux5SKEeyJ0bON1VCj7g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_gVMj8JSKEeyJ0bON1VCj7g" name="serializedMsg : ByteArray" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//MessageReceivedEvent/serializedMsg"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//MessageReceivedEvent/serializedMsg"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_6Ez8z5SKEeyJ0bON1VCj7g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_R19rgJSQEeyJ0bON1VCj7g" name="agentId : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//MessageReceivedEvent/agentId"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//MessageReceivedEvent/agentId"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_U5wMo5SQEeyJ0bON1VCj7g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_YW1asJSUEeyJ0bON1VCj7g" name="extractedAttributes : ListOfStringMaps" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//MessageReceivedEvent/extractedAttributes"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//MessageReceivedEvent/extractedAttributes"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_kF1ERJotEeybDM53IXNodQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_5c0NsJriEeybDM53IXNodQ" name="timestamp : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//MessageReceivedEvent/timestamp"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//MessageReceivedEvent/timestamp"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_7_IZdZriEeybDM53IXNodQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_swMsEJSKEeyJ0bON1VCj7g" name="ByteArray" tooltipText="" width="14" height="5"> + <target xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//ByteArray"/> + <semanticElements xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//ByteArray"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_swMsEZSKEeyJ0bON1VCj7g" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="255,250,191"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']"/> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_swUA0pSKEeyJ0bON1VCj7g" name="java.lang.byte[]" tooltipText=""> + <target xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//ByteArray"/> + <semanticElements xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//ByteArray"/> + <decorations xmi:type="viewpoint:Decoration" uid="_swUA05SKEeyJ0bON1VCj7g"> + <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> + </decorations> + <ownedStyle xmi:type="diagram:BundledImage" uid="_swUA1JSKEeyJ0bON1VCj7g" showIcon="false"> + <labelFormat>italic</labelFormat> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']/@subNodeMappings[name='EC_DataType_InstanceClassName']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']/@subNodeMappings[name='EC_DataType_InstanceClassName']"/> + </ownedElements> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_-GdxEJosEeybDM53IXNodQ" name="ListOfStringMaps" tooltipText="" width="14" height="5"> + <target xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//ListOfStringMaps"/> + <semanticElements xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//ListOfStringMaps"/> + <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_-GeYIJosEeybDM53IXNodQ" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="255,250,191"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']"/> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_-G09cJosEeybDM53IXNodQ" name="java.util.LinkedList<java.util.HashMap<java.lang.String, java.lang.String>>" tooltipText=""> + <target xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//ListOfStringMaps"/> + <semanticElements xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//ListOfStringMaps"/> + <decorations xmi:type="viewpoint:Decoration" uid="_-G09cZosEeybDM53IXNodQ"> + <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> + </decorations> + <ownedStyle xmi:type="diagram:BundledImage" uid="_-G09cposEeybDM53IXNodQ" showIcon="false"> + <labelFormat>italic</labelFormat> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']/@subNodeMappings[name='EC_DataType_InstanceClassName']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']/@subNodeMappings[name='EC_DataType_InstanceClassName']"/> + </ownedElements> + </ownedDiagramElements> <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_EthkIAQNEey-kNQ7esRa_g"/> <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> @@ -3514,9 +3663,9 @@ <styles xmi:type="notation:FontStyle" xmi:id="_E86K4T8cEeyWNq6fFfWVSw" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> <layoutConstraint xmi:type="notation:Location" xmi:id="_E86K4j8cEeyWNq6fFfWVSw"/> </children> - <children xmi:type="notation:Node" xmi:id="_mTvzwD8cEeyWNq6fFfWVSw" type="3010" element="_mTJW1j8cEeyWNq6fFfWVSw"> - <styles xmi:type="notation:FontStyle" xmi:id="_mTvzwT8cEeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8" bold="true"/> - <layoutConstraint xmi:type="notation:Location" xmi:id="_mTvzwj8cEeyWNq6fFfWVSw"/> + <children xmi:type="notation:Node" xmi:id="_wTAkIJSNEeyJ0bON1VCj7g" type="3010" element="_wS9g1pSNEeyJ0bON1VCj7g"> + <styles xmi:type="notation:FontStyle" xmi:id="_wTAkIZSNEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8" bold="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_wTAkIpSNEeyJ0bON1VCj7g"/> </children> <children xmi:type="notation:Node" xmi:id="_mTwa0D8cEeyWNq6fFfWVSw" type="3010" element="_mTLzED8cEeyWNq6fFfWVSw"> <styles xmi:type="notation:FontStyle" xmi:id="_mTwa0T8cEeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8" bold="true"/> @@ -3670,6 +3819,51 @@ <styles xmi:type="notation:ShapeStyle" xmi:id="_ZNRYcYqZEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/> <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZNRYcoqZEeyJ0bON1VCj7g" x="1074" y="516" width="174" height="100"/> </children> + <children xmi:type="notation:Node" xmi:id="_vsQ_J5SLEeyJ0bON1VCj7g" type="2003" element="_vsCVoJSLEeyJ0bON1VCj7g"> + <children xmi:type="notation:Node" xmi:id="_vsRmMJSLEeyJ0bON1VCj7g" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_vsRmMZSLEeyJ0bON1VCj7g" type="7004"> + <children xmi:type="notation:Node" xmi:id="_1WZQYJSLEeyJ0bON1VCj7g" type="3010" element="_1WHjkJSLEeyJ0bON1VCj7g"> + <styles xmi:type="notation:FontStyle" xmi:id="_1WZQYZSLEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_1WZQYpSLEeyJ0bON1VCj7g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_5AFT4pSLEeyJ0bON1VCj7g" type="3010" element="_4_zAAJSLEeyJ0bON1VCj7g"> + <styles xmi:type="notation:FontStyle" xmi:id="_5AFT45SLEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_5AFT5JSLEeyJ0bON1VCj7g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_O-8-8JSMEeyJ0bON1VCj7g" type="3010" element="_O-qrEJSMEeyJ0bON1VCj7g"> + <styles xmi:type="notation:FontStyle" xmi:id="_O-8-8ZSMEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_O-8-8pSMEeyJ0bON1VCj7g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_ZCaEEJSQEeyJ0bON1VCj7g" type="3010" element="_ZCHwMJSQEeyJ0bON1VCj7g"> + <styles xmi:type="notation:FontStyle" xmi:id="_ZCaEEZSQEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_ZCaEEpSQEeyJ0bON1VCj7g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_VDezl5SUEeyJ0bON1VCj7g" type="3010" element="_VDHnMJSUEeyJ0bON1VCj7g"> + <styles xmi:type="notation:FontStyle" xmi:id="_VDezmJSUEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_VDezmZSUEeyJ0bON1VCj7g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_2GDGMJriEeybDM53IXNodQ" type="3010" element="_2FmaQJriEeybDM53IXNodQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_2GDGMZriEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_2GDGMpriEeybDM53IXNodQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_NWceIJSOEeyJ0bON1VCj7g" type="3010" element="_NVZ8VpSOEeyJ0bON1VCj7g"> + <styles xmi:type="notation:FontStyle" xmi:id="_NWceIZSOEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_NWceIpSOEeyJ0bON1VCj7g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_rkPScJSOEeyJ0bON1VCj7g" type="3010" element="_rjuVG5SOEeyJ0bON1VCj7g"> + <styles xmi:type="notation:FontStyle" xmi:id="_rkPScZSOEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_rkPScpSOEeyJ0bON1VCj7g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_zvcj4JSPEeyJ0bON1VCj7g" type="3010" element="_zu2uA5SPEeyJ0bON1VCj7g"> + <styles xmi:type="notation:FontStyle" xmi:id="_zvcj4ZSPEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_zvcj4pSPEeyJ0bON1VCj7g"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_vsRmMpSLEeyJ0bON1VCj7g"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_vsRmM5SLEeyJ0bON1VCj7g"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_vsQ_KJSLEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vsQ_KZSLEeyJ0bON1VCj7g" x="252" y="367" width="213" height="212"/> + </children> <styles xmi:type="notation:DiagramStyle" xmi:id="_FmNkMjx3EeyWNq6fFfWVSw"/> <edges xmi:type="notation:Edge" xmi:id="_E5KQ8IqXEeyJ0bON1VCj7g" type="4001" element="_E4rIwIqXEeyJ0bON1VCj7g" source="__LdHQIqWEeyJ0bON1VCj7g" target="_KOCgYIqWEeyJ0bON1VCj7g"> <children xmi:type="notation:Node" xmi:id="_E5x8AIqXEeyJ0bON1VCj7g" type="6001"> @@ -3825,6 +4019,12 @@ <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> </computedStyleDescriptions> + <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_eDHIZJSREeyJ0bON1VCj7g" labelExpression="service:render" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1"> + <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> + <labelFormat>bold</labelFormat> + <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> + <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> + </computedStyleDescriptions> </data> </ownedAnnotationEntries> <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_GE5EQDx3EeyWNq6fFfWVSw" name="TrackingRequest" tooltipText="" width="12" height="10"> @@ -4042,10 +4242,10 @@ </ownedStyle> <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> </ownedElements> - <ownedElements xmi:type="diagram:DNodeListElement" uid="_mTJW1j8cEeyWNq6fFfWVSw" name=" position : Position" tooltipText=""> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_wS9g1pSNEeyJ0bON1VCj7g" name=" position : Position" tooltipText=""> <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/position"/> <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/position"/> - <ownedStyle xmi:type="diagram:BundledImage" uid="_mTLMAT8cEeyWNq6fFfWVSw" labelAlignment="LEFT" description="_mTLMAD8cEeyWNq6fFfWVSw" color="114,159,207"> + <ownedStyle xmi:type="diagram:BundledImage" uid="_wS9g15SNEeyJ0bON1VCj7g" labelAlignment="LEFT" description="_mTLMAD8cEeyWNq6fFfWVSw" color="114,159,207"> <labelFormat>bold</labelFormat> </ownedStyle> <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/> @@ -4381,6 +4581,89 @@ </ownedStyle> <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_vsCVoJSLEeyJ0bON1VCj7g" name="IposMsgRcvEvent" tooltipText="" width="12" height="10"> + <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent"/> + <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_y4b88p_TEeyjYoAVD5IwbQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_1WHjkJSLEeyJ0bON1VCj7g" name="protocolName : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/protocolName"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/protocolName"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_fzbPdZSREeyJ0bON1VCj7g" labelAlignment="LEFT" description="_eDHIZJSREeyJ0bON1VCj7g"> + <labelFormat>bold</labelFormat> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_4_zAAJSLEeyJ0bON1VCj7g" name="serializedMsg : ByteArray" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/serializedMsg"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/serializedMsg"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_6rcpkZSLEeyJ0bON1VCj7g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_O-qrEJSMEeyJ0bON1VCj7g" name="lastPosUpdate : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastPosUpdate"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastPosUpdate"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_SbNDZJSMEeyJ0bON1VCj7g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_ZCHwMJSQEeyJ0bON1VCj7g" name="agentId : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/agentId"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/agentId"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_eDHIZpSREeyJ0bON1VCj7g" labelAlignment="LEFT" description="_eDHIZJSREeyJ0bON1VCj7g"> + <labelFormat>bold</labelFormat> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_VDHnMJSUEeyJ0bON1VCj7g" name="extractedAttributes : ListOfStringMaps" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/extractedAttributes"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/extractedAttributes"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_hgtcJJotEeybDM53IXNodQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_2FmaQJriEeybDM53IXNodQ" name="timestamp : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/timestamp"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/timestamp"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_3eQ2WZriEeybDM53IXNodQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_NVZ8VpSOEeyJ0bON1VCj7g" name=" lastKnownPosition : Position" tooltipText=""> + <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastKnownPosition"/> + <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastKnownPosition"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_NVZ8V5SOEeyJ0bON1VCj7g" labelAlignment="LEFT" color="114,159,207"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_rjuVG5SOEeyJ0bON1VCj7g" name=" lastKnownOrientation : Orientation" tooltipText=""> + <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastKnownOrientation"/> + <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastKnownOrientation"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_rju8IJSOEeyJ0bON1VCj7g" labelAlignment="LEFT" color="114,159,207"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_zu2uA5SPEeyJ0bON1VCj7g" name=" lastKnownZonedescriptors : ZoneDescriptor" tooltipText=""> + <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastKnownZonedescriptors"/> + <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastKnownZonedescriptors"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_zu2uBJSPEeyJ0bON1VCj7g" labelAlignment="LEFT" color="114,159,207"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/> + </ownedElements> + </ownedDiagramElements> <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_FmMWEDx3EeyWNq6fFfWVSw"/> <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> @@ -4431,11 +4714,15 @@ <styles xmi:type="notation:FontStyle" xmi:id="_syMsAYsaEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> <layoutConstraint xmi:type="notation:Location" xmi:id="_syMsAosaEeyJ0bON1VCj7g"/> </children> + <children xmi:type="notation:Node" xmi:id="_IBk-4I3CEeyJ0bON1VCj7g" type="3010" element="_IBJhEI3CEeyJ0bON1VCj7g"> + <styles xmi:type="notation:FontStyle" xmi:id="_IBk-4Y3CEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_IBk-4o3CEeyJ0bON1VCj7g"/> + </children> <styles xmi:type="notation:SortingStyle" xmi:id="_t1IlIosZEeyJ0bON1VCj7g"/> <styles xmi:type="notation:FilteringStyle" xmi:id="_t1IlI4sZEeyJ0bON1VCj7g"/> </children> <styles xmi:type="notation:ShapeStyle" xmi:id="_t1HXAIsZEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t1HXAYsZEeyJ0bON1VCj7g" x="738" y="204" width="189" height="147"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t1HXAYsZEeyJ0bON1VCj7g" x="738" y="204" width="189" height="159"/> </children> <styles xmi:type="notation:DiagramStyle" xmi:id="_28wHYosNEeyJ0bON1VCj7g"/> </data> @@ -4462,7 +4749,7 @@ <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_tz4n8IsZEeyJ0bON1VCj7g" name="DistantEntity" tooltipText="" width="12" height="10"> <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Tooz/DistantEntity"/> <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Tooz/DistantEntity"/> - <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_vHE4s4saEeyJ0bON1VCj7g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Ix8r443CEeyJ0bON1VCj7g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> </ownedStyle> <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> @@ -4514,6 +4801,14 @@ </ownedStyle> <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_IBJhEI3CEeyJ0bON1VCj7g" name="timeStamp : String" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Tooz/DistantEntity/timeStamp"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Tooz/DistantEntity/timeStamp"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_Ix8r7Y3CEeyJ0bON1VCj7g" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> </ownedDiagramElements> <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_27VLEIsNEeyJ0bON1VCj7g"/> @@ -4522,4 +4817,369 @@ <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/> <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//Tooz"/> </diagram:DSemanticDiagram> + <diagram:DSemanticDiagram uid="_KUAgsI_UEeyJ0bON1VCj7g"> + <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_KUCV4Y_UEeyJ0bON1VCj7g" source="GMF_DIAGRAMS"> + <data xmi:type="notation:Diagram" xmi:id="_KUCV4o_UEeyJ0bON1VCj7g" type="Sirius" element="_KUAgsI_UEeyJ0bON1VCj7g" measurementUnit="Pixel"> + <children xmi:type="notation:Node" xmi:id="_L1KxcI_UEeyJ0bON1VCj7g" type="2003" element="_L0y-AI_UEeyJ0bON1VCj7g"> + <children xmi:type="notation:Node" xmi:id="_L1Kxc4_UEeyJ0bON1VCj7g" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_L1KxdI_UEeyJ0bON1VCj7g" type="7004"> + <children xmi:type="notation:Node" xmi:id="_Ob6d0JrjEeybDM53IXNodQ" type="3010" element="_OblGoJrjEeybDM53IXNodQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_Ob6d0ZrjEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Ob6d0prjEeybDM53IXNodQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_TepX4JrjEeybDM53IXNodQ" type="3010" element="_TeTZoJrjEeybDM53IXNodQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_TepX4ZrjEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_TepX4prjEeybDM53IXNodQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_fsVcwJrjEeybDM53IXNodQ" type="3010" element="_fsAsoJrjEeybDM53IXNodQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_fsVcwZrjEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_fsVcwprjEeybDM53IXNodQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_OSwHgJrzEeybDM53IXNodQ" type="3010" element="_OSSNcJrzEeybDM53IXNodQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_OSwHgZrzEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_OSwHgprzEeybDM53IXNodQ"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_L1KxdY_UEeyJ0bON1VCj7g"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_L1Kxdo_UEeyJ0bON1VCj7g"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_L1KxcY_UEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_L1Kxco_UEeyJ0bON1VCj7g" x="258" y="138" width="171" height="105"/> + </children> + <children xmi:type="notation:Node" xmi:id="_iwcG8JrjEeybDM53IXNodQ" type="2003" element="_iwGvwJrjEeybDM53IXNodQ"> + <children xmi:type="notation:Node" xmi:id="_iwcG85rjEeybDM53IXNodQ" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_iwcuAJrjEeybDM53IXNodQ" type="7004"> + <children xmi:type="notation:Node" xmi:id="_pPlUoJrjEeybDM53IXNodQ" type="3010" element="_pPRyoJrjEeybDM53IXNodQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_pPl7sJrjEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_pPl7sZrjEeybDM53IXNodQ"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_iwcuAZrjEeybDM53IXNodQ"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_iwcuAprjEeybDM53IXNodQ"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_iwcG8ZrjEeybDM53IXNodQ" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iwcG8prjEeybDM53IXNodQ" x="555" y="135" width="120" height="100"/> + </children> + <children xmi:type="notation:Node" xmi:id="_yQrhsJrjEeybDM53IXNodQ" type="2003" element="_yQXYoJrjEeybDM53IXNodQ"> + <children xmi:type="notation:Node" xmi:id="_yQrhs5rjEeybDM53IXNodQ" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_yQrhtJrjEeybDM53IXNodQ" type="7004"> + <children xmi:type="notation:Node" xmi:id="_wkJ5AJrkEeybDM53IXNodQ" type="3010" element="_wj2-EJrkEeybDM53IXNodQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_wkJ5AZrkEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_wkJ5AprkEeybDM53IXNodQ"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_yQrhtZrjEeybDM53IXNodQ"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_yQrhtprjEeybDM53IXNodQ"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_yQrhsZrjEeybDM53IXNodQ" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yQrhsprjEeybDM53IXNodQ" x="570" y="273" width="120" height="75"/> + </children> + <children xmi:type="notation:Node" xmi:id="_8kO1IJrjEeybDM53IXNodQ" type="2003" element="_8j7TIJrjEeybDM53IXNodQ"> + <children xmi:type="notation:Node" xmi:id="_8kO1I5rjEeybDM53IXNodQ" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_8kPcMJrjEeybDM53IXNodQ" type="7004"> + <children xmi:type="notation:Node" xmi:id="_FHQmIJrkEeybDM53IXNodQ" type="3010" element="_FG9rMJrkEeybDM53IXNodQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_FHQmIZrkEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_FHQmIprkEeybDM53IXNodQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_Hfu5YJrkEeybDM53IXNodQ" type="3010" element="_HfdzoJrkEeybDM53IXNodQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_Hfu5YZrkEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Hfu5YprkEeybDM53IXNodQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_JA5xMJrkEeybDM53IXNodQ" type="3010" element="_JAloIJrkEeybDM53IXNodQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_JA5xMZrkEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_JA5xMprkEeybDM53IXNodQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_If9jIJ_NEeyjYoAVD5IwbQ" type="3010" element="_Ic5BAJ_NEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_If9jIZ_NEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_If9jIp_NEeyjYoAVD5IwbQ"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_8kPcMZrjEeybDM53IXNodQ"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_8kPcMprjEeybDM53IXNodQ"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_8kO1IZrjEeybDM53IXNodQ" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8kO1IprjEeybDM53IXNodQ" x="-24" y="150" width="162" height="100"/> + </children> + <children xmi:type="notation:Node" xmi:id="_WP47AJrkEeybDM53IXNodQ" type="2003" element="_WPmnIJrkEeybDM53IXNodQ"> + <children xmi:type="notation:Node" xmi:id="_WP47A5rkEeybDM53IXNodQ" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_WP5iEJrkEeybDM53IXNodQ" type="7004"> + <children xmi:type="notation:Node" xmi:id="_o6EiMJrkEeybDM53IXNodQ" type="3010" element="_o50qkJrkEeybDM53IXNodQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_o6EiMZrkEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_o6EiMprkEeybDM53IXNodQ"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_WP5iEZrkEeybDM53IXNodQ"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_WP5iEprkEeybDM53IXNodQ"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_WP47AZrkEeybDM53IXNodQ" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WP47AprkEeybDM53IXNodQ" x="-24" y="276" width="159" height="69"/> + </children> + <styles xmi:type="notation:DiagramStyle" xmi:id="_KUCV44_UEeyJ0bON1VCj7g"/> + <edges xmi:type="notation:Edge" xmi:id="_k8XzAJrjEeybDM53IXNodQ" type="4001" element="_k7x9IJrjEeybDM53IXNodQ" source="_L1KxcI_UEeyJ0bON1VCj7g" target="_iwcG8JrjEeybDM53IXNodQ"> + <children xmi:type="notation:Node" xmi:id="_k9HZ4JrjEeybDM53IXNodQ" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k9HZ4ZrjEeybDM53IXNodQ" x="14" y="-14"/> + </children> + <children xmi:type="notation:Node" xmi:id="_k9IA8JrjEeybDM53IXNodQ" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k9IA8ZrjEeybDM53IXNodQ" x="-6" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_k9IoAJrjEeybDM53IXNodQ" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k9IoAZrjEeybDM53IXNodQ" x="-83" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_k8XzAZrjEeybDM53IXNodQ" routing="Rectilinear"/> + <styles xmi:type="notation:FontStyle" xmi:id="_k8XzAprjEeybDM53IXNodQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_k8XzA5rjEeybDM53IXNodQ" points="[0, -3, -187, 6]$[128, -3, -59, 6]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_k9MSYJrjEeybDM53IXNodQ" id="(1.0,0.05825242718446602)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_k9MSYZrjEeybDM53IXNodQ" id="(0.5,0.0)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_zdy1EJrjEeybDM53IXNodQ" type="4001" element="_zdX-VprjEeybDM53IXNodQ" source="_L1KxcI_UEeyJ0bON1VCj7g" target="_yQrhsJrjEeybDM53IXNodQ"> + <children xmi:type="notation:Node" xmi:id="_zdy1FJrjEeybDM53IXNodQ" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zdy1FZrjEeybDM53IXNodQ" x="121" y="-16"/> + </children> + <children xmi:type="notation:Node" xmi:id="_zdy1FprjEeybDM53IXNodQ" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zdy1F5rjEeybDM53IXNodQ" x="68" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_zdy1GJrjEeybDM53IXNodQ" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zdy1GZrjEeybDM53IXNodQ" x="16" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_zdy1EZrjEeybDM53IXNodQ" routing="Rectilinear"/> + <styles xmi:type="notation:FontStyle" xmi:id="_zdy1EprjEeybDM53IXNodQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zdy1E5rjEeybDM53IXNodQ" points="[-84, -53, -286, -44]$[-84, 39, -286, 48]$[143, 39, -59, 48]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zdzcIJrjEeybDM53IXNodQ" id="(1.0,1.3980582524271845)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zdzcIZrjEeybDM53IXNodQ" id="(0.5,0.0)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_-xQGUJrjEeybDM53IXNodQ" type="4001" element="_-wqQdprjEeybDM53IXNodQ" source="_L1KxcI_UEeyJ0bON1VCj7g" target="_8kO1IJrjEeybDM53IXNodQ"> + <children xmi:type="notation:Node" xmi:id="_-xQGVJrjEeybDM53IXNodQ" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-xQGVZrjEeybDM53IXNodQ" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_-xQGVprjEeybDM53IXNodQ" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-xQGV5rjEeybDM53IXNodQ" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_-xQGWJrjEeybDM53IXNodQ" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-xQGWZrjEeybDM53IXNodQ" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_-xQGUZrjEeybDM53IXNodQ" routing="Rectilinear"/> + <styles xmi:type="notation:FontStyle" xmi:id="_-xQGUprjEeybDM53IXNodQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-xQGU5rjEeybDM53IXNodQ" points="[0, 0, 122, 0]$[-122, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-xQGWprjEeybDM53IXNodQ" id="(0.0,0.17475728155339806)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-xQGW5rjEeybDM53IXNodQ" id="(1.0,0.061224489795918366)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_XRb3kJrkEeybDM53IXNodQ" type="4001" element="_XQ9WdprkEeybDM53IXNodQ" source="_L1KxcI_UEeyJ0bON1VCj7g" target="_WP47AJrkEeybDM53IXNodQ"> + <children xmi:type="notation:Node" xmi:id="_XRb3lJrkEeybDM53IXNodQ" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XRb3lZrkEeybDM53IXNodQ" x="90" y="12"/> + </children> + <children xmi:type="notation:Node" xmi:id="_XRb3lprkEeybDM53IXNodQ" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XRb3l5rkEeybDM53IXNodQ" x="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_XRb3mJrkEeybDM53IXNodQ" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XRb3mZrkEeybDM53IXNodQ" x="-80" y="-10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_XRb3kZrkEeybDM53IXNodQ" routing="Rectilinear"/> + <styles xmi:type="notation:FontStyle" xmi:id="_XRb3kprkEeybDM53IXNodQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XRb3k5rkEeybDM53IXNodQ" points="[30, 79, 242, -47]$[30, 176, 242, 50]$[-164, 176, 48, 50]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XRceoJrkEeybDM53IXNodQ" id="(0.0,0.11650485436893204)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XRceoZrkEeybDM53IXNodQ" id="(0.445859872611465,0.0)"/> + </edges> + </data> + </ownedAnnotationEntries> + <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_KUDkAI_UEeyJ0bON1VCj7g" source="DANNOTATION_CUSTOMIZATION_KEY"> + <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_KUDkAY_UEeyJ0bON1VCj7g"/> + </ownedAnnotationEntries> + <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_L0y-AI_UEeyJ0bON1VCj7g" name="AgvState" tooltipText="" outgoingEdges="_k7x9IJrjEeybDM53IXNodQ _zdX-VprjEeybDM53IXNodQ _-wqQdprjEeybDM53IXNodQ _XQ9WdprkEeybDM53IXNodQ" width="12" height="10"> + <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//VDA5050/AgvState"/> + <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//VDA5050/AgvState"/> + <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_PlHuUZrzEeybDM53IXNodQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_OblGoJrjEeybDM53IXNodQ" name="timeStamp : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvState/timeStamp"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvState/timeStamp"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_PfGZJZrjEeybDM53IXNodQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_TeTZoJrjEeybDM53IXNodQ" name="serialNumber : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvState/serialNumber"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvState/serialNumber"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_U_ZY9ZrjEeybDM53IXNodQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_fsAsoJrjEeybDM53IXNodQ" name="lastNodeId : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvState/lastNodeId"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvState/lastNodeId"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_gyJORprjEeybDM53IXNodQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_OSSNcJrzEeybDM53IXNodQ" name="manufacturer : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvState/manufacturer"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvState/manufacturer"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_PlHuX5rzEeybDM53IXNodQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_iwGvwJrjEeybDM53IXNodQ" name="BatteryState" tooltipText="" incomingEdges="_k7x9IJrjEeybDM53IXNodQ" width="12" height="10"> + <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//VDA5050/BatteryState"/> + <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//VDA5050/BatteryState"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_qY4fA5rjEeybDM53IXNodQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_pPRyoJrjEeybDM53IXNodQ" name="batteryCharge : EFloat = 0.0" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/BatteryState/batteryCharge"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/BatteryState/batteryCharge"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_qY5GFJrjEeybDM53IXNodQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" uid="_k7x9IJrjEeybDM53IXNodQ" name="[0..1] batteryState" sourceNode="_L0y-AI_UEeyJ0bON1VCj7g" targetNode="_iwGvwJrjEeybDM53IXNodQ"> + <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//VDA5050/AgvState/batteryState"/> + <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//VDA5050/AgvState/batteryState"/> + <ownedStyle xmi:type="diagram:EdgeStyle" uid="_k7zyUJrjEeybDM53IXNodQ" routingStyle="manhattan" strokeColor="0,0,0"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_k7zyUprjEeybDM53IXNodQ" showIcon="false"> + <customFeatures>labelSize</customFeatures> + </centerLabelStyle> + <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_k7zyUZrjEeybDM53IXNodQ" showIcon="false" labelColor="39,76,114"> + <customFeatures>labelSize</customFeatures> + </endLabelStyle> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_yQXYoJrjEeybDM53IXNodQ" name="Error" tooltipText="" incomingEdges="_zdX-VprjEeybDM53IXNodQ" width="12" height="10"> + <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//VDA5050/Error"/> + <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//VDA5050/Error"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_xdtXNZrkEeybDM53IXNodQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_wj2-EJrkEeybDM53IXNodQ" name="errorType : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/Error/errorType"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/Error/errorType"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_xdt-QprkEeybDM53IXNodQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" uid="_zdX-VprjEeybDM53IXNodQ" name="[0..*] errors" sourceNode="_L0y-AI_UEeyJ0bON1VCj7g" targetNode="_yQXYoJrjEeybDM53IXNodQ"> + <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//VDA5050/AgvState/errors"/> + <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//VDA5050/AgvState/errors"/> + <ownedStyle xmi:type="diagram:EdgeStyle" uid="_zdYlYJrjEeybDM53IXNodQ" routingStyle="manhattan" strokeColor="0,0,0"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_zdYlYprjEeybDM53IXNodQ" showIcon="false"> + <customFeatures>labelSize</customFeatures> + </centerLabelStyle> + <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_zdYlYZrjEeybDM53IXNodQ" showIcon="false" labelColor="39,76,114"> + <customFeatures>labelSize</customFeatures> + </endLabelStyle> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_8j7TIJrjEeybDM53IXNodQ" name="AgvPosition" tooltipText="" incomingEdges="_-wqQdprjEeybDM53IXNodQ" width="12" height="10"> + <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//VDA5050/AgvPosition"/> + <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//VDA5050/AgvPosition"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_KdC655_NEeyjYoAVD5IwbQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_FG9rMJrkEeybDM53IXNodQ" name="x : EFloat = 0.0" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvPosition/x"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvPosition/x"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_GNywYprkEeybDM53IXNodQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_HfdzoJrkEeybDM53IXNodQ" name="y : EFloat = 0.0" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvPosition/y"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvPosition/y"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_IgADk5rkEeybDM53IXNodQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_JAloIJrkEeybDM53IXNodQ" name="theta : EFloat = 0.0" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvPosition/theta"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvPosition/theta"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_KO84wJrkEeybDM53IXNodQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_Ic5BAJ_NEeyjYoAVD5IwbQ" name="mapId : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvPosition/mapId"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvPosition/mapId"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_KdEwFJ_NEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" uid="_-wqQdprjEeybDM53IXNodQ" name="[0..1] agvposition" sourceNode="_L0y-AI_UEeyJ0bON1VCj7g" targetNode="_8j7TIJrjEeybDM53IXNodQ"> + <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//VDA5050/AgvState/agvposition"/> + <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//VDA5050/AgvState/agvposition"/> + <ownedStyle xmi:type="diagram:EdgeStyle" uid="_-wrekJrjEeybDM53IXNodQ" routingStyle="manhattan" strokeColor="0,0,0"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_-wrekprjEeybDM53IXNodQ" showIcon="false"> + <customFeatures>labelSize</customFeatures> + </centerLabelStyle> + <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_-wrekZrjEeybDM53IXNodQ" showIcon="false" labelColor="39,76,114"> + <customFeatures>labelSize</customFeatures> + </endLabelStyle> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_WPmnIJrkEeybDM53IXNodQ" name="Load" tooltipText="" incomingEdges="_XQ9WdprkEeybDM53IXNodQ" width="12" height="10"> + <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//VDA5050/Load"/> + <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//VDA5050/Load"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_rmMKOZrkEeybDM53IXNodQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_o50qkJrkEeybDM53IXNodQ" name="loadId : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/Load/loadId"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/Load/loadId"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_rmMxSZrkEeybDM53IXNodQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" uid="_XQ9WdprkEeybDM53IXNodQ" name="[0..*] loads" sourceNode="_L0y-AI_UEeyJ0bON1VCj7g" targetNode="_WPmnIJrkEeybDM53IXNodQ"> + <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//VDA5050/AgvState/loads"/> + <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//VDA5050/AgvState/loads"/> + <ownedStyle xmi:type="diagram:EdgeStyle" uid="_XQ99gJrkEeybDM53IXNodQ" routingStyle="manhattan" strokeColor="0,0,0"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_XQ99gprkEeybDM53IXNodQ" showIcon="false"> + <customFeatures>labelSize</customFeatures> + </centerLabelStyle> + <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_XQ99gZrkEeybDM53IXNodQ" showIcon="false" labelColor="39,76,114"> + <customFeatures>labelSize</customFeatures> + </endLabelStyle> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> + </ownedDiagramElements> + <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> + <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_KUAgsY_UEeyJ0bON1VCj7g"/> + <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> + <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/> + <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/> + <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//VDA5050"/> + </diagram:DSemanticDiagram> </xmi:XMI> diff --git a/emf_datamodel/model/iPos_Datamodel.ecore b/emf_datamodel/model/iPos_Datamodel.ecore index 3d45ccb..4b05f36 100644 --- a/emf_datamodel/model/iPos_Datamodel.ecore +++ b/emf_datamodel/model/iPos_Datamodel.ecore @@ -241,6 +241,15 @@ eType="#//PositionEvent"/> <eStructuralFeatures xsi:type="ecore:EAttribute" name="trackingTaskId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="MessageReceivedEvent"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="protocolName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="serializedMsg" eType="#//ByteArray"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="agentId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="extractedAttributes" eType="#//ListOfStringMaps"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="timestamp" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="ByteArray" instanceClassName="java.lang.byte[]"/> + <eClassifiers xsi:type="ecore:EDataType" name="ListOfStringMaps" instanceClassName="java.util.LinkedList<java.util.HashMap<java.lang.String, java.lang.String>>"/> <eSubpackages name="OFBiz" nsURI="ofbiz" nsPrefix="ofbiz"> <eClassifiers xsi:type="ecore:EClass" name="Picklist"> <eStructuralFeatures xsi:type="ecore:EAttribute" name="picklistId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/> @@ -362,6 +371,22 @@ </eGenericType> </eStructuralFeatures> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IposMsgRcvEvent"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="protocolName" lowerBound="1" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="serializedMsg" eType="#//ByteArray"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="lastPosUpdate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="lastKnownPosition" eType="#//Position"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="lastKnownOrientation" + eType="#//Orientation"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="lastKnownZonedescriptors" + upperBound="-1" eType="#//ZoneDescriptor"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="agentId" lowerBound="1" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="extractedAttributes" + eType="#//ListOfStringMaps"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="timestamp" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> </eSubpackages> <eSubpackages name="Tooz" nsURI="tooz" nsPrefix="tooz"> <eClassifiers xsi:type="ecore:EClass" name="MonitoringTarget"> @@ -379,6 +404,36 @@ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> </eGenericType> </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="timeStamp" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/> + </eClassifiers> + </eSubpackages> + <eSubpackages name="VDA5050" nsURI="vda5050" nsPrefix="vda5050"> + <eClassifiers xsi:type="ecore:EClass" name="AgvState"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="timeStamp" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="serialNumber" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="lastNodeId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="batteryState" eType="#//VDA5050/BatteryState"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="errors" upperBound="-1" + eType="#//VDA5050/Error"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="agvposition" eType="#//VDA5050/AgvPosition"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="loads" upperBound="-1" + eType="#//VDA5050/Load"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="manufacturer" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="BatteryState"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="batteryCharge" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Error"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="errorType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="AgvPosition"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="theta" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="mapId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Load"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="loadId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> </eClassifiers> </eSubpackages> </ecore:EPackage> diff --git a/emf_datamodel/model/iPos_Datamodel.genmodel b/emf_datamodel/model/iPos_Datamodel.genmodel index 9cc8af5..f526d0d 100644 --- a/emf_datamodel/model/iPos_Datamodel.genmodel +++ b/emf_datamodel/model/iPos_Datamodel.genmodel @@ -15,6 +15,8 @@ <genDataTypes ecoreDataType="iPos_Datamodel.ecore#//FloatArray3d"/> <genDataTypes ecoreDataType="iPos_Datamodel.ecore#//BooleanList"/> <genDataTypes ecoreDataType="iPos_Datamodel.ecore#//FloatArray"/> + <genDataTypes ecoreDataType="iPos_Datamodel.ecore#//ByteArray"/> + <genDataTypes ecoreDataType="iPos_Datamodel.ecore#//ListOfStringMaps"/> <genClasses ecoreClass="iPos_Datamodel.ecore#//Agent"> <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//Agent/lObject"/> <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Agent/agentType"/> @@ -174,6 +176,13 @@ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//DataStorageQueryResponse/positionEvents"/> <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//DataStorageQueryResponse/trackingTaskId"/> </genClasses> + <genClasses ecoreClass="iPos_Datamodel.ecore#//MessageReceivedEvent"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//MessageReceivedEvent/protocolName"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//MessageReceivedEvent/serializedMsg"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//MessageReceivedEvent/agentId"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//MessageReceivedEvent/extractedAttributes"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//MessageReceivedEvent/timestamp"/> + </genClasses> <nestedGenPackages prefix="OFBiz" disposableProviderFactory="true" ecorePackage="iPos_Datamodel.ecore#//OFBiz"> <genClasses ecoreClass="iPos_Datamodel.ecore#//OFBiz/Picklist"> <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OFBiz/Picklist/picklistId"/> @@ -270,6 +279,20 @@ <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/IPosOtherBeaconEvent"> <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IPosOtherBeaconEvent/data"/> </genClasses> + <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/protocolName"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/serializedMsg"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastPosUpdate"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastKnownPosition"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastKnownOrientation"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastKnownZonedescriptors"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/agentId"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/extractedAttributes"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/timestamp"/> + </genClasses> </nestedGenPackages> <nestedGenPackages prefix="Tooz" disposableProviderFactory="true" ecorePackage="iPos_Datamodel.ecore#//Tooz"> <genClasses ecoreClass="iPos_Datamodel.ecore#//Tooz/MonitoringTarget"> @@ -282,6 +305,38 @@ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Tooz/DistantEntity/distance"/> <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Tooz/DistantEntity/proximityIndex"/> <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Tooz/DistantEntity/entityData"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Tooz/DistantEntity/timeStamp"/> + </genClasses> + </nestedGenPackages> + <nestedGenPackages prefix="VDA5050" disposableProviderFactory="true" ecorePackage="iPos_Datamodel.ecore#//VDA5050"> + <genClasses ecoreClass="iPos_Datamodel.ecore#//VDA5050/AgvState"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/AgvState/timeStamp"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/AgvState/serialNumber"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/AgvState/lastNodeId"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//VDA5050/AgvState/batteryState"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//VDA5050/AgvState/errors"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//VDA5050/AgvState/agvposition"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//VDA5050/AgvState/loads"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/AgvState/manufacturer"/> + </genClasses> + <genClasses ecoreClass="iPos_Datamodel.ecore#//VDA5050/BatteryState"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/BatteryState/batteryCharge"/> + </genClasses> + <genClasses ecoreClass="iPos_Datamodel.ecore#//VDA5050/Error"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/Error/errorType"/> + </genClasses> + <genClasses ecoreClass="iPos_Datamodel.ecore#//VDA5050/AgvPosition"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/AgvPosition/x"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/AgvPosition/y"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/AgvPosition/theta"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/AgvPosition/mapId"/> + </genClasses> + <genClasses ecoreClass="iPos_Datamodel.ecore#//VDA5050/Load"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/Load/loadId"/> </genClasses> </nestedGenPackages> </genPackages> diff --git a/init_Industrierobotik.txt b/init_Industrierobotik.txt index 42f77f3..ebec6ac 100644 --- a/init_Industrierobotik.txt +++ b/init_Industrierobotik.txt @@ -1,5 +1,5 @@ {"frames": [{"id": "cobot1_door_zone", "space": [{"position": {"refSystemId": "ROOT", "point": {"x": 2.0,"y": 0.0,"z": 0.0}, "accuracy": 0.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 6.0, "y": 4.0, "z":6.0}]}, {"id": "cobot1_window_zone", "space": [{"position": {"refSystemId": "ROOT", "point": {"x": 2.0,"y": 4.0,"z": 0.0}, "accuracy": 0.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 6.0, "y": 4.0, "z":6.0}]}, {"id": "robolab_east", "space": [{"position": {"refSystemId": "ROOT", "point": {"x": 4.0,"y": 2.0,"z": 0.0}, "accuracy": 0.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 4.0, "y": 4.0, "z":4.0}]}, {"id": "robolab_west", "space": [{"position": {"refSystemId": "ROOT", "point": {"x": -4.0,"y": 2.0,"z": 0.0}, "accuracy": 0.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 8.0, "y": 10.0, "z":6.0}]}, {"id": "robolab_armarea", "space": [{"position": {"refSystemId": "CETI_ROBOTARM_CELL", "point": {"x": 0.0,"y": 0.0,"z": 0.0}, "accuracy": 0.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 8.0, "y": 10.0, "z":6.0}]} ]} {"refSystems": [{"id": "ROOT"}, {"id": "CETI_ROOT", "position": {"refSystemId": "ROOT", "point": {"x": 0.5,"y": 0.75,"z": 1.0}, "accuracy": 1.0}, "orientation": {"x": 0.7071067811865477,"y": 0.0,"z": 0.0, "w": 0.7071067811865477}}, {"id": "CETI_ROBOLAB", "position": {"refSystemId": "CETI_ROOT", "point": {"x": 0.2,"y": 0.2,"z": 0.2}, "accuracy": 1.0}, "orientation": {"x": 0.4082481001180531,"y": 0.4082481001180531,"z": 0.4082481001180531, "w": 0.7071067811865477}}, {"id": "CETI_OFFICE", "position": {"refSystemId": "CETI_ROOT", "point": {"x": 2.0,"y": 2.0,"z": 0.0}, "accuracy": 1.0}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}}, {"id": "TL_TESTHALL", "position": {"refSystemId": "ROOT", "point": {"x": 40.0,"y": 60.0,"z": 0.0}, "accuracy": 1.0}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.21643961393810285, "w": 0.9762960071199334}}, {"id": "CETI_ROBOTARM_CELL", "position": {"refSystemId": "CETI_ROBOLAB", "point": {"x": 0.0,"y": 1.2,"z": 2.2}, "accuracy": 1.0}, "orientation": {"x": 0.2705992818596786,"y": 0.2705992818596786,"z": 0.0, "w": 0.9238795325112868}}]} -{"objectConfigs": [{"agentId": "Employee_1", "sensorId": "UWB_2", "agentType": "HUMAN", "sensorType": "UWB"}, {"agentId": "turtlebot", "sensorId": "UWB_1", "agentType": "ROBOT", "sensorType": "UWB"}, {"agentId": "turtlebot", "sensorId": "98:CD:AC:26:2D:18", "agentType": "ROBOT", "sensorType": "RFID_SCANNER"}, {"agentId": "turtlebot", "sensorId": "handy1", "agentType": "ROBOT", "sensorType": "IMU"}, {"agentId": "tooz_employee", "sensorId": "tooz_employee_uwb", "agentType": "HUMAN", "sensorType": "UWB"}]} +{"objectConfigs": [{"agentId": "Employee_1", "sensorId": "UWB_2", "agentType": "HUMAN", "sensorType": "UWB"}, {"agentId": "turtlebot", "sensorId": "UWB_1", "agentType": "ROBOT", "sensorType": "UWB"}, {"agentId": "turtlebot", "sensorId": "98:CD:AC:26:2D:18", "agentType": "ROBOT", "sensorType": "RFID_SCANNER"}, {"agentId": "turtlebot", "sensorId": "handy1", "agentType": "ROBOT", "sensorType": "IMU"}, {"agentId": "tooz_employee", "sensorId": "tooz_employee_uwb", "agentType": "HUMAN", "sensorType": "UWB"}, {"agentId": "TL_TUD-Virtual_AGV", "sensorId": "TL_TUD-Virtual_AGV", "agentType": "Robot", "sensorType": "virtual"}]} {"pois": [{"id": "UWB_BEACON_1", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": 3.1,"y": 0.5,"z": 0.0}, "accuracy": 1.0}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "UWB_BEACON_2", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": -0.3,"y": 4.5,"z": 0.0}, "accuracy": 1.0}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}}, {"id": "83221710", "description": "RFID_TAG", "data": {"type" : "NFC"}, "position": {"refSystemId": "ROOT", "point": {"x": 2.1,"y": 0.4,"z": 0.5}, "accuracy": 0.1}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "31762128", "description": "RFID_TAG", "data": {"type" : "NFC"}, "position": {"refSystemId": "ROOT", "point": {"x": 2.2,"y": 3.4,"z": 0.5}, "accuracy": 0.1}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "885", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "2934", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": 4.24,"y": 1.33,"z": 1.0}, "accuracy": 0.01}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "3383", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": 1.25,"y": 5.89,"z": 1.06}, "accuracy": 0.01}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "1107", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": 4.24,"y": 5.83,"z": 1.05}, "accuracy": 0.01}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }]} -{"monitoringRequests": [{"frameIds": ["cobot1_door_zone", "cobot1_window_zone"], "monitoringTaskId": "RobolabMonitoringCeti", "refSystemId": "CETI_ROBOTARM_CELL", "serializationType": "protobuf"}, {"frameIds": ["cobot1_door_zone", "cobot1_window_zone"], "monitoringTaskId": "RobolabMonitoringFrontend", "refSystemId": "ROOT", "serializationType": "json"}, {"id": ["tooz_employee_uwb"], "properties": ["distance"], "monitoringTaskId": "tooz_employee_distances", "refSystemId": "ROOT", "serializationType": "json"}]} \ No newline at end of file +{"monitoringRequests": [{"frameIds": ["cobot1_door_zone", "cobot1_window_zone"], "monitoringTaskId": "RobolabMonitoringCeti", "refSystemId": "CETI_ROBOTARM_CELL", "serializationType": "protobuf"}, {"frameIds": ["cobot1_door_zone", "cobot1_window_zone"], "monitoringTaskId": "RobolabMonitoringFrontend", "refSystemId": "ROOT", "serializationType": "json"}, {"properties" : ["VDA5050"], "monitoringTaskId" : "AGVViewer_VDA5050", "refSystemId": "ROOT", "serializationType": "json"}]} \ No newline at end of file diff --git a/src/main/java/ipos/project/CustomLoggingFilter.java b/src/main/java/ipos/project/CustomLoggingFilter.java index 0e068d3..56b94ba 100644 --- a/src/main/java/ipos/project/CustomLoggingFilter.java +++ b/src/main/java/ipos/project/CustomLoggingFilter.java @@ -27,6 +27,8 @@ public class CustomLoggingFilter extends Filter<ILoggingEvent> { } else if (event.getMessage().contains("OP:")){ return FilterReply.ACCEPT; } else if (event.getMessage().contains("TOOZ:")){ + return FilterReply.DENY; + } else if (event.getMessage().contains("VDA5050:")){ return FilterReply.ACCEPT; }else if (event.getMessage().contains("SHELL:")){ return FilterReply.ACCEPT; diff --git a/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/SimpleSceneIntegration.java b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/SimpleSceneIntegration.java index 45b52f7..c17b57d 100644 --- a/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/SimpleSceneIntegration.java +++ b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/SimpleSceneIntegration.java @@ -5,6 +5,7 @@ import com.google.protobuf.InvalidProtocolBufferException; import ipos.models.SimpleScene; import ipos.project.DataModellntegration.SimpleSceneIntegration.api.MqttRequestHandler; import ipos.project.DataModellntegration.SimpleSceneIntegration.service.SimpleSceneTransformer; +import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent; import ipos.project.devkit.utility.ExternalPubServiceImpl; import ipos.project.DataModellntegration.iPos_Datamodel.*; import ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionEventImpl; @@ -104,7 +105,6 @@ public class SimpleSceneIntegration { // PositionEvent posEvent_copy = duplicatePositionEvent(positionEvent); // scale_position_frontend_app(posEvent_copy, 15); SimpleScene.IposPositionEvent posEvent_proto = SimpleSceneTransformer.posEvent_internal2Proto(positionEvent, notificationType); - MqttMessage mqttMessage = mqttService.createMqttMsg(posEvent_proto, 0, false); logging_sdf(monitoringTaskId, serializationType, posEvent_proto); logging_indfro(positionEvent, monitoringTaskId, serializationType); logging_op(positionEvent, monitoringTaskId, serializationType); @@ -115,6 +115,15 @@ public class SimpleSceneIntegration { } } + public static void receiveMessage(IposMsgRcvEvent iposMsgRcvEvent, String monitoringTaskId, String serializationType){ + if (iposMsgRcvEvent != null){ + SimpleScene.IposMsgRcvEvent iposMsgRcvEvent_proto = SimpleSceneTransformer.iposMsgRcvEvent_internal2proto(iposMsgRcvEvent); + OtherUtility.publishRespectingSerializationType(monitoringTaskId, serializationType, iposMsgRcvEvent_proto); + }else{ + LOG.warn("Warning: SimpleScene: Received empty IposMsgRcvEvent"); + } + } + private static void logging_op(PositionEvent positionEvent, String monitoringTaskId, String serializationType) { LOG.info("OP: Publishing PositionEvent on topic " + monitoringTaskId + ": ZoneDescriptors:" + logZoneDescr(positionEvent.getZonedescriptors()) + "; serializationType: " + serializationType); LOG.info("OP:"); diff --git a/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/SimpleSceneTransformer.java b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/SimpleSceneTransformer.java index 50e829f..dcf82d8 100644 --- a/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/SimpleSceneTransformer.java +++ b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/SimpleSceneTransformer.java @@ -1,18 +1,20 @@ package ipos.project.DataModellntegration.SimpleSceneIntegration.service; +import com.google.protobuf.ByteString; import ipos.models.SimpleScene; import ipos.project.DataModellntegration.iPos_Datamodel.*; import com.google.protobuf.ProtocolStringList; import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageQueryRequest; import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitFactory; +import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent; import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest; import ipos.project.UseCaseController.PositionMonitoring; +import ipos.project.devkit.utility.OtherUtility; import org.apache.logging.log4j.LogManager; import org.eclipse.emf.common.util.EList; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; public class SimpleSceneTransformer { private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger(); @@ -73,8 +75,12 @@ public class SimpleSceneTransformer { } private static List<SimpleScene.IposZoneDescriptor.Builder> transformIntoProtoZoneDescriptorList(PositionEvent internalPosEvent) { + return transformIntoProtoZoneDescriptorList(internalPosEvent.getZonedescriptors()); + } + + private static List<SimpleScene.IposZoneDescriptor.Builder> transformIntoProtoZoneDescriptorList(EList<ZoneDescriptor> zoneDescriptors) { List<SimpleScene.IposZoneDescriptor.Builder> zoneDescriptorList = new LinkedList<>(); - for ( ZoneDescriptor zoneDescriptor_internal : internalPosEvent.getZonedescriptors()){ + for ( ZoneDescriptor zoneDescriptor_internal : zoneDescriptors){ SimpleScene.IposZoneDescriptor.Builder protoIposZoneDescriptor = SimpleScene.IposZoneDescriptor.newBuilder(); protoIposZoneDescriptor.setZoneId(zoneDescriptor_internal.getZoneId()); protoIposZoneDescriptor.setNotificationType(zoneDescriptor_internal.getNotificationType()); @@ -102,23 +108,34 @@ public class SimpleSceneTransformer { } private static SimpleScene.IposSimpleOrientation.Builder transformIntoProtoOrientation(PositionEvent internalPosEvent) { + return transformIntoProtoOrientation((Quaternion) internalPosEvent.getPlacing().getOrientation()); + } + + private static SimpleScene.IposSimpleOrientation.Builder transformIntoProtoOrientation(Quaternion internalOrientation) { SimpleScene.IposSimpleOrientation.Builder protoOrientation = SimpleScene.IposSimpleOrientation.newBuilder(); - Quaternion internalOrientation = (Quaternion) internalPosEvent.getPlacing().getOrientation(); protoOrientation.setX(internalOrientation.getX()).setY(internalOrientation.getY()).setZ(internalOrientation.getZ()).setW(internalOrientation.getW()); return protoOrientation; } private static SimpleScene.IposPosition.Builder transformIntoProtoIposPosition(PositionEvent internalPosEvent, SimpleScene.IposPoint3D.Builder protoPoint3D) { - float internalAccuracy = ((Gaussian) internalPosEvent.getPlacing().getPosition().getAccuracy()).getConfidenceInterval(); - String internalRefSystemId = internalPosEvent.getPlacing().getPosition().getReferenceSystem().getId(); + return transformIntoProtoIposPosition(internalPosEvent.getPlacing().getPosition(), protoPoint3D); + } + + private static SimpleScene.IposPosition.Builder transformIntoProtoIposPosition(Position internalPos, SimpleScene.IposPoint3D.Builder protoPoint3D) { + float internalAccuracy = ((Gaussian) internalPos.getAccuracy()).getConfidenceInterval(); + String internalRefSystemId = internalPos.getReferenceSystem().getId(); SimpleScene.IposPosition.Builder protoIposPosition = SimpleScene.IposPosition.newBuilder(); protoIposPosition.setAccuracy(internalAccuracy).setRefSystemId(internalRefSystemId).setPoint(protoPoint3D); return protoIposPosition; } private static SimpleScene.IposPoint3D.Builder transformIntoProtoPoint3D(PositionEvent internalPosEvent) { + return transformIntoProtoPoint3D(internalPosEvent.getPlacing().getPosition()); + } + + private static SimpleScene.IposPoint3D.Builder transformIntoProtoPoint3D(Position internalPos) { SimpleScene.IposPoint3D.Builder protoPoint3D = SimpleScene.IposPoint3D.newBuilder(); - Point3D internalPoint3D = (Point3D) internalPosEvent.getPlacing().getPosition().getPoint(); + Point3D internalPoint3D = (Point3D) internalPos.getPoint(); protoPoint3D.setX(internalPoint3D.getX()).setY(internalPoint3D.getY()).setZ(internalPoint3D.getZ()); return protoPoint3D; } @@ -245,4 +262,40 @@ public class SimpleSceneTransformer { } return iposObjectList; } + + public static SimpleScene.IposMsgRcvEvent iposMsgRcvEvent_internal2proto(IposMsgRcvEvent iposMsgRcvEvent_internal) { + SimpleScene.IposMsgRcvEvent.Builder iposMsgRcvEvent_proto = SimpleScene.IposMsgRcvEvent.newBuilder(); + iposMsgRcvEvent_proto.setProtocolName(iposMsgRcvEvent_internal.getProtocolName()); + iposMsgRcvEvent_proto.setSerializedMsg(ByteString.copyFrom(iposMsgRcvEvent_internal.getSerializedMsg())); + iposMsgRcvEvent_proto.setAgentId(iposMsgRcvEvent_internal.getAgentId()); + iposMsgRcvEvent_proto.setLastPosUpdate(Optional.ofNullable(iposMsgRcvEvent_internal.getLastPosUpdate()).orElse("")); + List<SimpleScene.Attribute> attributeList = iposMsgRcvEvent_internal.getExtractedAttributes().stream().map(SimpleSceneTransformer::toAttribute_proto).collect(Collectors.toList()); + attributeList.stream().forEach(attribute -> iposMsgRcvEvent_proto.addExtractedAttributes(attribute)); + // iposMsgRcvEvent_proto.getExtractedAttributesList().addAll(attributeList); + iposMsgRcvEvent_proto.setTimestamp(Optional.ofNullable(iposMsgRcvEvent_internal.getTimestamp()).orElse("")); + if (null != iposMsgRcvEvent_internal.getLastKnownPosition()) { + SimpleScene.IposPoint3D.Builder protoPoint3D = transformIntoProtoPoint3D(iposMsgRcvEvent_internal.getLastKnownPosition()); + iposMsgRcvEvent_proto.setLastKnownPosition(transformIntoProtoIposPosition(iposMsgRcvEvent_internal.getLastKnownPosition(), protoPoint3D)); + } + if (null != iposMsgRcvEvent_internal.getLastKnownOrientation()) iposMsgRcvEvent_proto.setLastKnownOrientation(transformIntoProtoOrientation((Quaternion) iposMsgRcvEvent_internal.getLastKnownOrientation())); + List<SimpleScene.IposZoneDescriptor> zoneDescriptors_proto = extractZoneDescriptors(iposMsgRcvEvent_internal); + zoneDescriptors_proto.stream().forEach(zoneDescriptor -> iposMsgRcvEvent_proto.addLastKnownZoneDescriptors(zoneDescriptor)); + //iposMsgRcvEvent_proto.getLastKnownZoneDescriptorsList().addAll(extractZoneDescriptors(iposMsgRcvEvent_internal)); + return iposMsgRcvEvent_proto.build(); + } + + private static List<SimpleScene.IposZoneDescriptor> extractZoneDescriptors(IposMsgRcvEvent iposMsgRcvEvent_internal) { + List<SimpleScene.IposZoneDescriptor.Builder> zoneDescriptorBuilders = transformIntoProtoZoneDescriptorList(iposMsgRcvEvent_internal.getLastKnownZonedescriptors()); + List<SimpleScene.IposZoneDescriptor> zoneDescriptors = zoneDescriptorBuilders.stream().map(zoneDescriptorBuilder -> zoneDescriptorBuilder.build()).collect(Collectors.toList()); + return zoneDescriptors; + } + + private static SimpleScene.Attribute toAttribute_proto(HashMap<String, String> stringStringHashMap) { + SimpleScene.Attribute.Builder attribute_proto = SimpleScene.Attribute.newBuilder(); + attribute_proto.setName(stringStringHashMap.get(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_NAME)); + attribute_proto.setType(stringStringHashMap.get(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_TYPE)); + attribute_proto.setData(stringStringHashMap.get(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_VALUE)); + return attribute_proto.build(); + } + } diff --git a/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/VDA5050Processor.java b/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/VDA5050Processor.java new file mode 100644 index 0000000..703e334 --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/VDA5050Processor.java @@ -0,0 +1,44 @@ +package ipos.project.DataModellntegration.VDA5050Processor; + +import com.google.protobuf.InvalidProtocolBufferException; +import ipos.models.GenericSensor; +import ipos.models.VDA5050; +import ipos.project.DataModellntegration.VDA5050Processor.api.MqttRequestHandler; +import ipos.project.SensorValueIntegration.api.MqttPositionHandler; +import ipos.project.devkit.utility.OtherUtility; +import ipos.project.devkit.utility.ProtoJsonMap; +import org.apache.logging.log4j.LogManager; + +import java.io.File; +import java.util.Scanner; + +import static ipos.project.devkit.utility.OtherUtility.waitUntilUserRequestsReadingNextLine; + +public class VDA5050Processor { + private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger(); + + public static final String TOPIC_AGVSTATE = "VDA5050_AgvState"; + public static final String PROTOCOL_NAME_VDA5050 = "VDA5050"; + public static final String AGV_ID_CONNECTOR_CHARACTER = "-"; + public static final Object TYPE_STRING = "string"; + public static final String TYPE_FLOAT = "float"; + public static final String TYPE_LIST_OF_INT = "listOfInt"; + public static final CharSequence DELIMITER_CSV = ","; + + public static void processTestData(String path_to_test_data_file){ + File testDataFile = new File(path_to_test_data_file); + Scanner scanner = new Scanner(System.in); + try { + for (String line : OtherUtility.readLines(testDataFile)) { + VDA5050.AgvState agvState_proto = ProtoJsonMap.fromJson(line, VDA5050.AgvState.class); + OtherUtility.waitUntilUserRequestsReadingNextLine(scanner); + MqttRequestHandler.processAgvState(agvState_proto); + } + }catch (InvalidProtocolBufferException e) { + LOG.error("Error trying to read JSON into protobuf-objects: "); + e.printStackTrace(); + } + } + + +} diff --git a/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/api/MqttRequestHandler.java b/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/api/MqttRequestHandler.java new file mode 100644 index 0000000..1abe06f --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/api/MqttRequestHandler.java @@ -0,0 +1,282 @@ +package ipos.project.DataModellntegration.VDA5050Processor.api; + +import com.google.protobuf.InvalidProtocolBufferException; +import ipos.models.SimpleScene; +import ipos.models.SimpleScene.IposMonitoringRequest; +import ipos.models.VDA5050; +import ipos.project.DataModellntegration.SimpleSceneIntegration.service.SimpleSceneTransformer; +import ipos.project.DataModellntegration.VDA5050Processor.VDA5050Processor; +import ipos.project.DataModellntegration.VDA5050Processor.service.VDA5050Transformer; +import ipos.project.DataModellntegration.iPos_Datamodel.*; +import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageQueryRequest; +import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load; +import ipos.project.Functionality.DataServices; +import ipos.project.UseCaseController.Administration; +import ipos.project.UseCaseController.PositionMonitoring; +import ipos.project.config.mqtt.Handler; +import ipos.project.config.mqtt.MqttListener; +import ipos.project.devkit.trans.IPos2protoTransformer; +import ipos.project.devkit.utility.OtherUtility; +import ipos.project.devkit.utility.ProtoJsonMap; +import org.apache.logging.log4j.LogManager; +import org.eclipse.paho.client.mqttv3.MqttMessage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jms.core.JmsTemplate; + +import java.util.*; +import java.util.stream.Collectors; + + +// subscribe to the topic. It's example +@MqttListener(VDA5050Processor.TOPIC_AGVSTATE) +public class MqttRequestHandler implements Handler { + + private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger(); + JmsTemplate jmsTemplate; + private static IPos_DatamodelFactory modelFactory = IPos_DatamodelFactory.eINSTANCE; + + @Autowired + public MqttRequestHandler(JmsTemplate jmsTemplate) { + this.jmsTemplate = jmsTemplate; + } + + // method that handle new message from the topic + public void handle(MqttMessage message) { + try { + // TODO: Zwischen JSON und Protobuf unterscheiden können + //SimpleScene.IposConfigWrapper iposConfigWrapper = ProtoJsonMap.fromJson(message.toString(), SimpleScene.IposConfigWrapper.class); + VDA5050.AgvState agvState = ProtoJsonMap.fromJson(message.toString(), VDA5050.AgvState.class); + // IposMonitoringRequest monReqProto = IposMonitoringRequest.parseFrom(message.getPayload()); + processAgvState(agvState); + } catch (InvalidProtocolBufferException e) { + e.printStackTrace(); + } catch (NullPointerException e){ + LOG.info("VDA5050-message could not be read. " + e.getMessage()); + e.printStackTrace(); + } + } + + public static void processAgvState(VDA5050.AgvState agvState_proto) { + LOG.info("VDA5050-AgvState message received: \n" + agvState_proto.toString()); + AgvState agvState = VDA5050Transformer.agvState_proto2internal(agvState_proto); + MessageReceivedEvent messageReceivedEvent = extractMessageReceivedEventFromAgvState(agvState, ProtoJsonMap.toJson(agvState_proto)); + LOG.info("VDA5050: Corresponding MessageReceivedEvent: " + messageReceivedEvent.toString()); + attemptToHandleAsPositionEvent(agvState); + attemptToEvaluateLastNodeId(agvState, messageReceivedEvent.getAgentId()); + PositionMonitoring.receiveMessage(messageReceivedEvent); + // this.jmsTemplate.convertAndSend("/request123", monReqInternal); // submit request to the internal broker + } + + private static void attemptToEvaluateLastNodeId(AgvState agvState, String agentId) { + // we prefer current positions over old positions communicated over lastNodeIds + boolean noCurrentPositionAvailable = !containsValidAgvPosition(agvState); + boolean lastNodeIdIsAvailable = null != agvState.getLastNodeId(); + if( noCurrentPositionAvailable && lastNodeIdIsAvailable){ + try { + String lastNodeId = agvState.getLastNodeId(); + POI poi = Optional.ofNullable(DataServices.getPoiByIdOrNull(lastNodeId)).orElseThrow(() -> new NullPointerException("Message contained unknown lastNodeId: " + agvState.getLastNodeId())); + LocalizableObject lObject = Optional.ofNullable(DataServices.getLObjectByIdOrNull(agentId)).orElseThrow(() -> new NullPointerException("Message was sent on behalf of an unknown agentId: " + agentId)); + if (null == lObject.getLastPosUpdate()){ // assumption: if lastPosUpdate is unset, there is no position information that would be more current than the VDA5050-lastNodeId + lObject.setCurrentPlacing(poi.getPlacing()); + LOG.info("VDA5050: currentPlacing of localizable object " + lObject.getId() + " has been updated."); + return; + } + }catch(NullPointerException e){ + LOG.info("LastNodeId of VDA5050-message (AgvState) could not be processed. " + e.getMessage()); + return; + } + } + } + + private static void attemptToHandleAsPositionEvent(AgvState agvState) { + if(containsValidAgvPosition(agvState)){ + try { + PositionEvent posEvent = extractPositionEvent(agvState); + PositionMonitoring.receiveMessage(posEvent); + }catch (NullPointerException e){ + LOG.info("Received message did not receive sufficient information to be handled as PositionEvent. " + e.getMessage()); + } + } + } + + private static PositionEvent extractPositionEvent(AgvState agvState) { + PositionEvent posEvent = modelFactory.createPositionEvent(); + Objects.requireNonNull(agvState.getManufacturer(), "Message missed a required information: manufacturer"); + Objects.requireNonNull(agvState.getSerialNumber(), "Message missed a required information: serialNumber"); + String extractedRefSystem = Optional.ofNullable(agvState.getAgvposition().getMapId()).orElse(PositionMonitoring.SRS_ID_ROOT); + Objects.requireNonNull(DataServices.getReferenceSystemByIdOrNull(extractedRefSystem), "Message contained a position that is associated an unknown reference system: " + extractedRefSystem); + posEvent.setTimeStamp(Optional.ofNullable(agvState.getTimeStamp()).orElse("")); + posEvent.setLObjectId(agvState.getManufacturer() + VDA5050Processor.AGV_ID_CONNECTOR_CHARACTER + agvState.getSerialNumber()); + posEvent.setPlacing( + IPos2protoTransformer.createPlacing( + IPos2protoTransformer.createPosition( + IPos2protoTransformer.createPoint3D( + agvState.getAgvposition().getX(), + agvState.getAgvposition().getY(), + 0), + -1.0f, + DataServices.getReferenceSystemByIdOrNull(extractedRefSystem)), + IPos2protoTransformer.createOrientation( + 0, + 0, + 0, + 0 + ) + ) + ); + return posEvent; + } + + private static boolean containsValidAgvPosition(AgvState agvState) { + return null != agvState.getAgvposition(); + } + + private static MessageReceivedEvent extractMessageReceivedEventFromAgvState(AgvState agvState, String serializedMsg) { + Objects.requireNonNull(agvState.getManufacturer(), "Message missed a required information: manufacturer"); + Objects.requireNonNull(agvState.getSerialNumber(), "Message missed a required information: serialNumber"); + MessageReceivedEvent messageReceivedEvent = modelFactory.createMessageReceivedEvent(); + messageReceivedEvent.setProtocolName(VDA5050Processor.PROTOCOL_NAME_VDA5050); + messageReceivedEvent.setSerializedMsg(serializedMsg.getBytes()); + messageReceivedEvent.setAgentId(agvState.getManufacturer() + VDA5050Processor.AGV_ID_CONNECTOR_CHARACTER + agvState.getSerialNumber()); + messageReceivedEvent.setExtractedAttributes(extractAgvStateAttributes(agvState)); + messageReceivedEvent.setTimestamp(Optional.ofNullable(agvState.getTimeStamp()).orElse("")); + return messageReceivedEvent; + } + + private static LinkedList<HashMap<String, String>> extractAgvStateAttributes(AgvState agvState) { + LinkedList<HashMap<String, String>> extractedAttributes = new LinkedList<>(); + extractAgvStateBatteryChargeLevel(agvState, extractedAttributes); + extractAgvStateLoads(agvState, extractedAttributes); + extractAgvStateErrors(agvState, extractedAttributes); + extractAgvStateTheta(agvState, extractedAttributes); + extractAgvStateLastNodeId(agvState, extractedAttributes); + return extractedAttributes; + } + + private static void extractAgvStateLastNodeId(AgvState agvState, LinkedList<HashMap<String, String>> extractedAttributes) { + if(null == agvState.getLastNodeId() || agvState.getLastNodeId().equals("")){ + return; + } + HashMap agvStateLastNodeId = new HashMap<String, String>(); + agvStateLastNodeId.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_NAME, "lastNodeId"); + agvStateLastNodeId.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_TYPE, VDA5050Processor.TYPE_STRING); + agvStateLastNodeId.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_VALUE, agvState.getLastNodeId()); + extractedAttributes.add(agvStateLastNodeId); + } + + private static void extractAgvStateErrors(AgvState agvState, LinkedList<HashMap<String, String>> extractedAttributes) { + if(null == agvState.getErrors() || agvState.getErrors().size()==0){ + return; + } + HashMap agvStateErrors = new HashMap<String, String>(); + agvStateErrors.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_NAME, "errors"); + agvStateErrors.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_TYPE, VDA5050Processor.TYPE_LIST_OF_INT); + List<String> errorIdsAsStringList = agvState.getErrors().stream().map(MqttRequestHandler::extractErrorId).collect(Collectors.toList()); + agvStateErrors.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_VALUE, String.join(VDA5050Processor.DELIMITER_CSV, errorIdsAsStringList)); + extractedAttributes.add(agvStateErrors); + } + + private static void extractAgvStateLoads(AgvState agvState, LinkedList<HashMap<String, String>> extractedAttributes) { + if(null == agvState.getLoads() || agvState.getLoads().size() == 0){ + return; + } + HashMap agvStateLoads = new HashMap<String, String>(); + agvStateLoads.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_NAME, "loads"); + agvStateLoads.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_TYPE, VDA5050Processor.TYPE_LIST_OF_INT); + List<String> loadIdsAsStringList = agvState.getLoads().stream().map(MqttRequestHandler::extractLoadId).collect(Collectors.toList()); + agvStateLoads.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_VALUE, String.join(VDA5050Processor.DELIMITER_CSV, loadIdsAsStringList)); + extractedAttributes.add(agvStateLoads); + } + + private static String extractErrorId(Error error) { + return error.getErrorType(); + } + + private static java.lang.String extractLoadId(Load load) { + return load.getLoadId(); + } + + private static void extractAgvStateBatteryChargeLevel(AgvState agvState, LinkedList<HashMap<String, String>> extractedAttributes) { + if(null == agvState.getBatteryState()){ + return; + } + HashMap agvStateBatteryCharge = new HashMap<String, String>(); + agvStateBatteryCharge.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_NAME, "batteryCharge"); + agvStateBatteryCharge.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_TYPE, VDA5050Processor.TYPE_FLOAT); + agvStateBatteryCharge.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_VALUE, "" + agvState.getBatteryState().getBatteryCharge()); + extractedAttributes.add(agvStateBatteryCharge); + } + + private static void extractAgvStateTheta(AgvState agvState, LinkedList<HashMap<String, String>> extractedAttributes) { + if(null == agvState.getAgvposition()){ + return; + } + HashMap agvStateTheta = new HashMap<String, String>(); + agvStateTheta.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_NAME, "theta"); + agvStateTheta.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_TYPE, VDA5050Processor.TYPE_FLOAT); + agvStateTheta.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_VALUE, "" + agvState.getAgvposition().getTheta()); + extractedAttributes.add(agvStateTheta); + } + + private static void processQueryRequest(List<SimpleScene.IposQueryRequest> queryRequestsList) { + for (SimpleScene.IposQueryRequest proto_qReq : queryRequestsList){ + DataStorageQueryRequest internal_qReq = SimpleSceneTransformer.queryReq_SScene2Internal(proto_qReq); + LOG.info("INDFRO:"); + LOG.info("INDFRO: Received QueryRequest for trackingTaskId " + internal_qReq.getTrackingTaskId()); + PositionMonitoring.receiveMessage(internal_qReq); + } + } + + /* + private SimpleScene.IposConfigWrapper replaceNullByEmptyList(SimpleScene.IposConfigWrapper configWrapper) { + SimpleScene.IposConfigWrapper.Builder configWrapper_NoNull = SimpleScene.IposConfigWrapper.newBuilder(); + configWrapper_NoNull.add; + } + */ + + private static void processPois(List<SimpleScene.POI> poisList) { + for (SimpleScene.POI poi : poisList){ + POI poi_internal = SimpleSceneTransformer.poi_SScene2Internal(poi); + Administration.handlePoi(poi_internal); + } + } + + private static void processRefSystems(List<SimpleScene.RefSystem> refSystemsList) { + for (SimpleScene.RefSystem refSystem : refSystemsList){ + ReferenceSystem refSystem_internal = SimpleSceneTransformer.refSystem_SScene2Internal(refSystem); + Administration.handleRefSystem(refSystem_internal); + } + } + + private static void processObjectConfigs(List<SimpleScene.IposObjectConfig> objectConfigsList) { + for( SimpleScene.IposObjectConfig objConfig : objectConfigsList){ + Agent agent = SimpleSceneTransformer.agent_SScene2Internal(objConfig); + Administration.handleAgent(agent); + } + } + + private static void processFrameConfigs(List<SimpleScene.IposFrameConfig> frames){ + /* + if (null == frames){ + LOG.info("ConfigWrapper-message contains no Frame-definitions"); + return; + } + */ + for( SimpleScene.IposFrameConfig frame : frames){ + Zone zone = SimpleSceneTransformer.zone_SScene2Internal(frame); + Administration.handleZone(zone); + } + } + + private static void processMonitoringRequests(SimpleScene.IposConfigWrapper iposConfigWrapper) { + for (IposMonitoringRequest monReq : iposConfigWrapper.getMonitoringRequestsList()){ + MonitoringRequest monReqInternal = SimpleSceneTransformer.monReq_SScene2Internal(monReq); + PositionMonitoring.receiveMessage(monReqInternal); + // TODO: send request via JMS to MonitoringController + } + } +} diff --git a/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/service/VDA5050Transformer.java b/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/service/VDA5050Transformer.java new file mode 100644 index 0000000..44c26e7 --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/service/VDA5050Transformer.java @@ -0,0 +1,70 @@ +package ipos.project.DataModellntegration.VDA5050Processor.service; + +import ipos.models.VDA5050; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.*; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error; +import org.apache.logging.log4j.LogManager; + +import java.util.LinkedList; +import java.util.List; + +public class VDA5050Transformer { + private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger(); + private static VDA5050Factory vda5050Factory = VDA5050Factory.eINSTANCE; + + public static AgvState agvState_proto2internal(VDA5050.AgvState agvState_proto) { + AgvState agvState_internal = vda5050Factory.createAgvState(); + agvState_internal.setTimeStamp(agvState_proto.getTimeStamp()); + agvState_internal.setSerialNumber(agvState_proto.getSerialNumber()); + agvState_internal.setLastNodeId(agvState_proto.getLastNodeId()); + agvState_internal.setManufacturer(agvState_proto.getManufacturer()); + agvState_internal.setBatteryState(extractBatteryStateOrNull(agvState_proto)); + agvState_internal.getErrors().addAll(extractErrorsOrEmptyList(agvState_proto)); + agvState_internal.getLoads().addAll(extractLoadsOrEmptyList(agvState_proto)); + agvState_internal.setAgvposition(extractAgvPositionOrNull(agvState_proto)); + return agvState_internal; + } + + private static AgvPosition extractAgvPositionOrNull(VDA5050.AgvState agvState_proto) { + boolean agvPositionNotPresentInMessage = ipos.models.VDA5050.AgvPosition.getDefaultInstance() == agvState_proto.getAgvPosition(); + if (agvPositionNotPresentInMessage){ + return null; + }else { + AgvPosition agvPosition_internal = vda5050Factory.createAgvPosition(); + agvPosition_internal.setX(agvState_proto.getAgvPosition().getX()); + agvPosition_internal.setY(agvState_proto.getAgvPosition().getY()); + agvPosition_internal.setTheta(agvState_proto.getAgvPosition().getTheta()); + return agvPosition_internal; + } + } + + private static BatteryState extractBatteryStateOrNull(VDA5050.AgvState agvState_proto) { + if (ipos.models.VDA5050.BatteryState.getDefaultInstance() == agvState_proto.getBatteryState()){ + return null; + }else { + BatteryState batteryState = vda5050Factory.createBatteryState(); + batteryState.setBatteryCharge(agvState_proto.getBatteryState().getBatteryCharge()); + return batteryState; + } + } + + private static List<ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error> extractErrorsOrEmptyList(VDA5050.AgvState agvState_proto){ + LinkedList<ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error> errors = new LinkedList<>(); + for (VDA5050.Error error_proto : agvState_proto.getErrorsList()){ + Error error_internal = vda5050Factory.createError(); + error_internal.setErrorType(error_proto.getErrorType()); + errors.add(error_internal); + } + return errors; + } + + private static List<ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load> extractLoadsOrEmptyList(VDA5050.AgvState agvState_proto){ + LinkedList<ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load> loads = new LinkedList<>(); + for (VDA5050.Load load_proto : agvState_proto.getLoadsList()){ + Load load_internal = vda5050Factory.createLoad(); + load_internal.setLoadId(load_proto.getLoadId()); + loads.add(load_internal); + } + return loads; + } +} diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosDevKitFactory.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosDevKitFactory.java index 59acd52..ed0faac 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosDevKitFactory.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosDevKitFactory.java @@ -193,6 +193,15 @@ public interface IPosDevKitFactory extends EFactory { */ IPosOtherBeaconEvent createIPosOtherBeaconEvent(); + /** + * Returns a new object of class '<em>Ipos Msg Rcv Event</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Ipos Msg Rcv Event</em>'. + * @generated + */ + IposMsgRcvEvent createIposMsgRcvEvent(); + /** * Returns the package supported by this factory. * <!-- begin-user-doc --> diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosDevKitPackage.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosDevKitPackage.java index 39d9ce3..1214f35 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosDevKitPackage.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosDevKitPackage.java @@ -1354,6 +1354,115 @@ public interface IPosDevKitPackage extends EPackage { */ int IPOS_OTHER_BEACON_EVENT_OPERATION_COUNT = IPOS_BEACON_EVENT_OPERATION_COUNT + 0; + /** + * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl <em>Ipos Msg Rcv Event</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIposMsgRcvEvent() + * @generated + */ + int IPOS_MSG_RCV_EVENT = 19; + + /** + * The feature id for the '<em><b>Protocol Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IPOS_MSG_RCV_EVENT__PROTOCOL_NAME = 0; + + /** + * The feature id for the '<em><b>Serialized Msg</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IPOS_MSG_RCV_EVENT__SERIALIZED_MSG = 1; + + /** + * The feature id for the '<em><b>Last Pos Update</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IPOS_MSG_RCV_EVENT__LAST_POS_UPDATE = 2; + + /** + * The feature id for the '<em><b>Last Known Position</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IPOS_MSG_RCV_EVENT__LAST_KNOWN_POSITION = 3; + + /** + * The feature id for the '<em><b>Last Known Orientation</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IPOS_MSG_RCV_EVENT__LAST_KNOWN_ORIENTATION = 4; + + /** + * The feature id for the '<em><b>Last Known Zonedescriptors</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IPOS_MSG_RCV_EVENT__LAST_KNOWN_ZONEDESCRIPTORS = 5; + + /** + * The feature id for the '<em><b>Agent Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IPOS_MSG_RCV_EVENT__AGENT_ID = 6; + + /** + * The feature id for the '<em><b>Extracted Attributes</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IPOS_MSG_RCV_EVENT__EXTRACTED_ATTRIBUTES = 7; + + /** + * The feature id for the '<em><b>Timestamp</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IPOS_MSG_RCV_EVENT__TIMESTAMP = 8; + + /** + * The number of structural features of the '<em>Ipos Msg Rcv Event</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IPOS_MSG_RCV_EVENT_FEATURE_COUNT = 9; + + /** + * The number of operations of the '<em>Ipos Msg Rcv Event</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IPOS_MSG_RCV_EVENT_OPERATION_COUNT = 0; + /** * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.TrackingRequest <em>Tracking Request</em>}'. * <!-- begin-user-doc --> @@ -1907,6 +2016,115 @@ public interface IPosDevKitPackage extends EPackage { */ EAttribute getIPosOtherBeaconEvent_Data(); + /** + * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent <em>Ipos Msg Rcv Event</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Ipos Msg Rcv Event</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent + * @generated + */ + EClass getIposMsgRcvEvent(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getProtocolName <em>Protocol Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Protocol Name</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getProtocolName() + * @see #getIposMsgRcvEvent() + * @generated + */ + EAttribute getIposMsgRcvEvent_ProtocolName(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getSerializedMsg <em>Serialized Msg</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Serialized Msg</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getSerializedMsg() + * @see #getIposMsgRcvEvent() + * @generated + */ + EAttribute getIposMsgRcvEvent_SerializedMsg(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastPosUpdate <em>Last Pos Update</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Last Pos Update</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastPosUpdate() + * @see #getIposMsgRcvEvent() + * @generated + */ + EAttribute getIposMsgRcvEvent_LastPosUpdate(); + + /** + * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownPosition <em>Last Known Position</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Last Known Position</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownPosition() + * @see #getIposMsgRcvEvent() + * @generated + */ + EReference getIposMsgRcvEvent_LastKnownPosition(); + + /** + * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownOrientation <em>Last Known Orientation</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Last Known Orientation</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownOrientation() + * @see #getIposMsgRcvEvent() + * @generated + */ + EReference getIposMsgRcvEvent_LastKnownOrientation(); + + /** + * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownZonedescriptors <em>Last Known Zonedescriptors</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference list '<em>Last Known Zonedescriptors</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownZonedescriptors() + * @see #getIposMsgRcvEvent() + * @generated + */ + EReference getIposMsgRcvEvent_LastKnownZonedescriptors(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getAgentId <em>Agent Id</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Agent Id</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getAgentId() + * @see #getIposMsgRcvEvent() + * @generated + */ + EAttribute getIposMsgRcvEvent_AgentId(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getExtractedAttributes <em>Extracted Attributes</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Extracted Attributes</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getExtractedAttributes() + * @see #getIposMsgRcvEvent() + * @generated + */ + EAttribute getIposMsgRcvEvent_ExtractedAttributes(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getTimestamp <em>Timestamp</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Timestamp</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getTimestamp() + * @see #getIposMsgRcvEvent() + * @generated + */ + EAttribute getIposMsgRcvEvent_Timestamp(); + /** * Returns the factory that creates the instances of the model. * <!-- begin-user-doc --> @@ -2384,6 +2602,89 @@ public interface IPosDevKitPackage extends EPackage { */ EAttribute IPOS_OTHER_BEACON_EVENT__DATA = eINSTANCE.getIPosOtherBeaconEvent_Data(); + /** + * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl <em>Ipos Msg Rcv Event</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIposMsgRcvEvent() + * @generated + */ + EClass IPOS_MSG_RCV_EVENT = eINSTANCE.getIposMsgRcvEvent(); + + /** + * The meta object literal for the '<em><b>Protocol Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute IPOS_MSG_RCV_EVENT__PROTOCOL_NAME = eINSTANCE.getIposMsgRcvEvent_ProtocolName(); + + /** + * The meta object literal for the '<em><b>Serialized Msg</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute IPOS_MSG_RCV_EVENT__SERIALIZED_MSG = eINSTANCE.getIposMsgRcvEvent_SerializedMsg(); + + /** + * The meta object literal for the '<em><b>Last Pos Update</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute IPOS_MSG_RCV_EVENT__LAST_POS_UPDATE = eINSTANCE.getIposMsgRcvEvent_LastPosUpdate(); + + /** + * The meta object literal for the '<em><b>Last Known Position</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference IPOS_MSG_RCV_EVENT__LAST_KNOWN_POSITION = eINSTANCE.getIposMsgRcvEvent_LastKnownPosition(); + + /** + * The meta object literal for the '<em><b>Last Known Orientation</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference IPOS_MSG_RCV_EVENT__LAST_KNOWN_ORIENTATION = eINSTANCE.getIposMsgRcvEvent_LastKnownOrientation(); + + /** + * The meta object literal for the '<em><b>Last Known Zonedescriptors</b></em>' reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference IPOS_MSG_RCV_EVENT__LAST_KNOWN_ZONEDESCRIPTORS = eINSTANCE + .getIposMsgRcvEvent_LastKnownZonedescriptors(); + + /** + * The meta object literal for the '<em><b>Agent Id</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute IPOS_MSG_RCV_EVENT__AGENT_ID = eINSTANCE.getIposMsgRcvEvent_AgentId(); + + /** + * The meta object literal for the '<em><b>Extracted Attributes</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute IPOS_MSG_RCV_EVENT__EXTRACTED_ATTRIBUTES = eINSTANCE.getIposMsgRcvEvent_ExtractedAttributes(); + + /** + * The meta object literal for the '<em><b>Timestamp</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute IPOS_MSG_RCV_EVENT__TIMESTAMP = eINSTANCE.getIposMsgRcvEvent_Timestamp(); + } } //IPosDevKitPackage diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IposMsgRcvEvent.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IposMsgRcvEvent.java new file mode 100644 index 0000000..4d674be --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IposMsgRcvEvent.java @@ -0,0 +1,229 @@ +/** + */ +package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit; + +import ipos.project.DataModellntegration.iPos_Datamodel.Orientation; +import ipos.project.DataModellntegration.iPos_Datamodel.Position; +import ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor; + +import java.util.HashMap; +import java.util.LinkedList; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Ipos Msg Rcv Event</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * </p> + * <ul> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getProtocolName <em>Protocol Name</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getSerializedMsg <em>Serialized Msg</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastPosUpdate <em>Last Pos Update</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownPosition <em>Last Known Position</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownOrientation <em>Last Known Orientation</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownZonedescriptors <em>Last Known Zonedescriptors</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getAgentId <em>Agent Id</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getExtractedAttributes <em>Extracted Attributes</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getTimestamp <em>Timestamp</em>}</li> + * </ul> + * + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposMsgRcvEvent() + * @model + * @generated + */ +public interface IposMsgRcvEvent extends EObject { + /** + * Returns the value of the '<em><b>Protocol Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Protocol Name</em>' attribute. + * @see #setProtocolName(String) + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposMsgRcvEvent_ProtocolName() + * @model required="true" + * @generated + */ + String getProtocolName(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getProtocolName <em>Protocol Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Protocol Name</em>' attribute. + * @see #getProtocolName() + * @generated + */ + void setProtocolName(String value); + + /** + * Returns the value of the '<em><b>Serialized Msg</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Serialized Msg</em>' attribute. + * @see #setSerializedMsg(byte[]) + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposMsgRcvEvent_SerializedMsg() + * @model dataType="ipos.project.DataModellntegration.iPos_Datamodel.ByteArray" + * @generated + */ + byte[] getSerializedMsg(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getSerializedMsg <em>Serialized Msg</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Serialized Msg</em>' attribute. + * @see #getSerializedMsg() + * @generated + */ + void setSerializedMsg(byte[] value); + + /** + * Returns the value of the '<em><b>Last Pos Update</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Last Pos Update</em>' attribute. + * @see #setLastPosUpdate(String) + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposMsgRcvEvent_LastPosUpdate() + * @model + * @generated + */ + String getLastPosUpdate(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastPosUpdate <em>Last Pos Update</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Last Pos Update</em>' attribute. + * @see #getLastPosUpdate() + * @generated + */ + void setLastPosUpdate(String value); + + /** + * Returns the value of the '<em><b>Last Known Position</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Last Known Position</em>' reference. + * @see #setLastKnownPosition(Position) + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposMsgRcvEvent_LastKnownPosition() + * @model + * @generated + */ + Position getLastKnownPosition(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownPosition <em>Last Known Position</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Last Known Position</em>' reference. + * @see #getLastKnownPosition() + * @generated + */ + void setLastKnownPosition(Position value); + + /** + * Returns the value of the '<em><b>Last Known Orientation</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Last Known Orientation</em>' reference. + * @see #setLastKnownOrientation(Orientation) + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposMsgRcvEvent_LastKnownOrientation() + * @model + * @generated + */ + Orientation getLastKnownOrientation(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownOrientation <em>Last Known Orientation</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Last Known Orientation</em>' reference. + * @see #getLastKnownOrientation() + * @generated + */ + void setLastKnownOrientation(Orientation value); + + /** + * Returns the value of the '<em><b>Last Known Zonedescriptors</b></em>' reference list. + * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Last Known Zonedescriptors</em>' reference list. + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposMsgRcvEvent_LastKnownZonedescriptors() + * @model + * @generated + */ + EList<ZoneDescriptor> getLastKnownZonedescriptors(); + + /** + * Returns the value of the '<em><b>Agent Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Agent Id</em>' attribute. + * @see #setAgentId(String) + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposMsgRcvEvent_AgentId() + * @model required="true" + * @generated + */ + String getAgentId(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getAgentId <em>Agent Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Agent Id</em>' attribute. + * @see #getAgentId() + * @generated + */ + void setAgentId(String value); + + /** + * Returns the value of the '<em><b>Extracted Attributes</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Extracted Attributes</em>' attribute. + * @see #setExtractedAttributes(LinkedList) + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposMsgRcvEvent_ExtractedAttributes() + * @model dataType="ipos.project.DataModellntegration.iPos_Datamodel.ListOfStringMaps" + * @generated + */ + LinkedList<HashMap<String, String>> getExtractedAttributes(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getExtractedAttributes <em>Extracted Attributes</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Extracted Attributes</em>' attribute. + * @see #getExtractedAttributes() + * @generated + */ + void setExtractedAttributes(LinkedList<HashMap<String, String>> value); + + /** + * Returns the value of the '<em><b>Timestamp</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Timestamp</em>' attribute. + * @see #setTimestamp(String) + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposMsgRcvEvent_Timestamp() + * @model + * @generated + */ + String getTimestamp(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getTimestamp <em>Timestamp</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Timestamp</em>' attribute. + * @see #getTimestamp() + * @generated + */ + void setTimestamp(String value); + +} // IposMsgRcvEvent diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosDevKitFactoryImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosDevKitFactoryImpl.java index f6a00e1..1690ad7 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosDevKitFactoryImpl.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosDevKitFactoryImpl.java @@ -94,6 +94,8 @@ public class IPosDevKitFactoryImpl extends EFactoryImpl implements IPosDevKitFac return createIPosOtherProxEvent(); case IPosDevKitPackage.IPOS_OTHER_BEACON_EVENT: return createIPosOtherBeaconEvent(); + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT: + return createIposMsgRcvEvent(); default: throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); } @@ -289,6 +291,16 @@ public class IPosDevKitFactoryImpl extends EFactoryImpl implements IPosDevKitFac return iPosOtherBeaconEvent; } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IposMsgRcvEvent createIposMsgRcvEvent() { + IposMsgRcvEventImpl iposMsgRcvEvent = new IposMsgRcvEventImpl(); + return iposMsgRcvEvent; + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosDevKitPackageImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosDevKitPackageImpl.java index 4313bfc..457676a 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosDevKitPackageImpl.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosDevKitPackageImpl.java @@ -17,6 +17,7 @@ import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosProximity import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRFIDEvent; import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent; import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosUWBEvent; +import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent; import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent; import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest; import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.SensorConfigurationRequest; @@ -32,6 +33,8 @@ import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageI import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage; import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.ToozPackageImpl; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl; import ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl; import org.eclipse.emf.ecore.EAttribute; @@ -184,6 +187,13 @@ public class IPosDevKitPackageImpl extends EPackageImpl implements IPosDevKitPac */ private EClass iPosOtherBeaconEventEClass = null; + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass iposMsgRcvEventEClass = null; + /** * Creates an instance of the model <b>Package</b>, registered with * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package @@ -250,18 +260,24 @@ public class IPosDevKitPackageImpl extends EPackageImpl implements IPosDevKitPac ToozPackageImpl theToozPackage = (ToozPackageImpl) (registeredPackage instanceof ToozPackageImpl ? registeredPackage : ToozPackage.eINSTANCE); + registeredPackage = EPackage.Registry.INSTANCE.getEPackage(VDA5050Package.eNS_URI); + VDA5050PackageImpl theVDA5050Package = (VDA5050PackageImpl) (registeredPackage instanceof VDA5050PackageImpl + ? registeredPackage + : VDA5050Package.eINSTANCE); // Create package meta-data objects theIPosDevKitPackage.createPackageContents(); theIPos_DatamodelPackage.createPackageContents(); theOFBizPackage.createPackageContents(); theToozPackage.createPackageContents(); + theVDA5050Package.createPackageContents(); // Initialize created meta-data theIPosDevKitPackage.initializePackageContents(); theIPos_DatamodelPackage.initializePackageContents(); theOFBizPackage.initializePackageContents(); theToozPackage.initializePackageContents(); + theVDA5050Package.initializePackageContents(); // Mark meta-data to indicate it can't be changed theIPosDevKitPackage.freeze(); @@ -739,6 +755,96 @@ public class IPosDevKitPackageImpl extends EPackageImpl implements IPosDevKitPac return (EAttribute) iPosOtherBeaconEventEClass.getEStructuralFeatures().get(0); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getIposMsgRcvEvent() { + return iposMsgRcvEventEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getIposMsgRcvEvent_ProtocolName() { + return (EAttribute) iposMsgRcvEventEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getIposMsgRcvEvent_SerializedMsg() { + return (EAttribute) iposMsgRcvEventEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getIposMsgRcvEvent_LastPosUpdate() { + return (EAttribute) iposMsgRcvEventEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getIposMsgRcvEvent_LastKnownPosition() { + return (EReference) iposMsgRcvEventEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getIposMsgRcvEvent_LastKnownOrientation() { + return (EReference) iposMsgRcvEventEClass.getEStructuralFeatures().get(4); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getIposMsgRcvEvent_LastKnownZonedescriptors() { + return (EReference) iposMsgRcvEventEClass.getEStructuralFeatures().get(5); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getIposMsgRcvEvent_AgentId() { + return (EAttribute) iposMsgRcvEventEClass.getEStructuralFeatures().get(6); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getIposMsgRcvEvent_ExtractedAttributes() { + return (EAttribute) iposMsgRcvEventEClass.getEStructuralFeatures().get(7); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getIposMsgRcvEvent_Timestamp() { + return (EAttribute) iposMsgRcvEventEClass.getEStructuralFeatures().get(8); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -838,6 +944,17 @@ public class IPosDevKitPackageImpl extends EPackageImpl implements IPosDevKitPac iPosOtherBeaconEventEClass = createEClass(IPOS_OTHER_BEACON_EVENT); createEAttribute(iPosOtherBeaconEventEClass, IPOS_OTHER_BEACON_EVENT__DATA); + + iposMsgRcvEventEClass = createEClass(IPOS_MSG_RCV_EVENT); + createEAttribute(iposMsgRcvEventEClass, IPOS_MSG_RCV_EVENT__PROTOCOL_NAME); + createEAttribute(iposMsgRcvEventEClass, IPOS_MSG_RCV_EVENT__SERIALIZED_MSG); + createEAttribute(iposMsgRcvEventEClass, IPOS_MSG_RCV_EVENT__LAST_POS_UPDATE); + createEReference(iposMsgRcvEventEClass, IPOS_MSG_RCV_EVENT__LAST_KNOWN_POSITION); + createEReference(iposMsgRcvEventEClass, IPOS_MSG_RCV_EVENT__LAST_KNOWN_ORIENTATION); + createEReference(iposMsgRcvEventEClass, IPOS_MSG_RCV_EVENT__LAST_KNOWN_ZONEDESCRIPTORS); + createEAttribute(iposMsgRcvEventEClass, IPOS_MSG_RCV_EVENT__AGENT_ID); + createEAttribute(iposMsgRcvEventEClass, IPOS_MSG_RCV_EVENT__EXTRACTED_ATTRIBUTES); + createEAttribute(iposMsgRcvEventEClass, IPOS_MSG_RCV_EVENT__TIMESTAMP); } /** @@ -1061,6 +1178,36 @@ public class IPosDevKitPackageImpl extends EPackageImpl implements IPosDevKitPac g1.getETypeArguments().add(g2); initEAttribute(getIPosOtherBeaconEvent_Data(), g1, "data", null, 0, 1, IPosOtherBeaconEvent.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(iposMsgRcvEventEClass, IposMsgRcvEvent.class, "IposMsgRcvEvent", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getIposMsgRcvEvent_ProtocolName(), ecorePackage.getEString(), "protocolName", null, 1, 1, + IposMsgRcvEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + initEAttribute(getIposMsgRcvEvent_SerializedMsg(), theIPos_DatamodelPackage.getByteArray(), "serializedMsg", + null, 0, 1, IposMsgRcvEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getIposMsgRcvEvent_LastPosUpdate(), ecorePackage.getEString(), "lastPosUpdate", null, 0, 1, + IposMsgRcvEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + initEReference(getIposMsgRcvEvent_LastKnownPosition(), theIPos_DatamodelPackage.getPosition(), null, + "lastKnownPosition", null, 0, 1, IposMsgRcvEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, + !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getIposMsgRcvEvent_LastKnownOrientation(), theIPos_DatamodelPackage.getOrientation(), null, + "lastKnownOrientation", null, 0, 1, IposMsgRcvEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, + !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getIposMsgRcvEvent_LastKnownZonedescriptors(), theIPos_DatamodelPackage.getZoneDescriptor(), + null, "lastKnownZonedescriptors", null, 0, -1, IposMsgRcvEvent.class, !IS_TRANSIENT, !IS_VOLATILE, + IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getIposMsgRcvEvent_AgentId(), ecorePackage.getEString(), "agentId", null, 1, 1, + IposMsgRcvEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + initEAttribute(getIposMsgRcvEvent_ExtractedAttributes(), theIPos_DatamodelPackage.getListOfStringMaps(), + "extractedAttributes", null, 0, 1, IposMsgRcvEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, + !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getIposMsgRcvEvent_Timestamp(), ecorePackage.getEString(), "timestamp", null, 0, 1, + IposMsgRcvEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); } } //IPosDevKitPackageImpl diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IposMsgRcvEventImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IposMsgRcvEventImpl.java new file mode 100644 index 0000000..b5a9fd0 --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IposMsgRcvEventImpl.java @@ -0,0 +1,623 @@ +/** + */ +package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl; + +import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage; +import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent; + +import ipos.project.DataModellntegration.iPos_Datamodel.Orientation; +import ipos.project.DataModellntegration.iPos_Datamodel.Position; +import ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor; + +import java.util.Collection; +import java.util.HashMap; +import java.util.LinkedList; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Ipos Msg Rcv Event</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl#getProtocolName <em>Protocol Name</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl#getSerializedMsg <em>Serialized Msg</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl#getLastPosUpdate <em>Last Pos Update</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl#getLastKnownPosition <em>Last Known Position</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl#getLastKnownOrientation <em>Last Known Orientation</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl#getLastKnownZonedescriptors <em>Last Known Zonedescriptors</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl#getAgentId <em>Agent Id</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl#getExtractedAttributes <em>Extracted Attributes</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl#getTimestamp <em>Timestamp</em>}</li> + * </ul> + * + * @generated + */ +public class IposMsgRcvEventImpl extends MinimalEObjectImpl.Container implements IposMsgRcvEvent { + /** + * The default value of the '{@link #getProtocolName() <em>Protocol Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getProtocolName() + * @generated + * @ordered + */ + protected static final String PROTOCOL_NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getProtocolName() <em>Protocol Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getProtocolName() + * @generated + * @ordered + */ + protected String protocolName = PROTOCOL_NAME_EDEFAULT; + + /** + * The default value of the '{@link #getSerializedMsg() <em>Serialized Msg</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSerializedMsg() + * @generated + * @ordered + */ + protected static final byte[] SERIALIZED_MSG_EDEFAULT = null; + + /** + * The cached value of the '{@link #getSerializedMsg() <em>Serialized Msg</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSerializedMsg() + * @generated + * @ordered + */ + protected byte[] serializedMsg = SERIALIZED_MSG_EDEFAULT; + + /** + * The default value of the '{@link #getLastPosUpdate() <em>Last Pos Update</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLastPosUpdate() + * @generated + * @ordered + */ + protected static final String LAST_POS_UPDATE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getLastPosUpdate() <em>Last Pos Update</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLastPosUpdate() + * @generated + * @ordered + */ + protected String lastPosUpdate = LAST_POS_UPDATE_EDEFAULT; + + /** + * The cached value of the '{@link #getLastKnownPosition() <em>Last Known Position</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLastKnownPosition() + * @generated + * @ordered + */ + protected Position lastKnownPosition; + + /** + * The cached value of the '{@link #getLastKnownOrientation() <em>Last Known Orientation</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLastKnownOrientation() + * @generated + * @ordered + */ + protected Orientation lastKnownOrientation; + + /** + * The cached value of the '{@link #getLastKnownZonedescriptors() <em>Last Known Zonedescriptors</em>}' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLastKnownZonedescriptors() + * @generated + * @ordered + */ + protected EList<ZoneDescriptor> lastKnownZonedescriptors; + + /** + * The default value of the '{@link #getAgentId() <em>Agent Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getAgentId() + * @generated + * @ordered + */ + protected static final String AGENT_ID_EDEFAULT = null; + + /** + * The cached value of the '{@link #getAgentId() <em>Agent Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getAgentId() + * @generated + * @ordered + */ + protected String agentId = AGENT_ID_EDEFAULT; + + /** + * The default value of the '{@link #getExtractedAttributes() <em>Extracted Attributes</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getExtractedAttributes() + * @generated + * @ordered + */ + protected static final LinkedList<HashMap<String, String>> EXTRACTED_ATTRIBUTES_EDEFAULT = null; + + /** + * The cached value of the '{@link #getExtractedAttributes() <em>Extracted Attributes</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getExtractedAttributes() + * @generated + * @ordered + */ + protected LinkedList<HashMap<String, String>> extractedAttributes = EXTRACTED_ATTRIBUTES_EDEFAULT; + + /** + * The default value of the '{@link #getTimestamp() <em>Timestamp</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTimestamp() + * @generated + * @ordered + */ + protected static final String TIMESTAMP_EDEFAULT = null; + + /** + * The cached value of the '{@link #getTimestamp() <em>Timestamp</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTimestamp() + * @generated + * @ordered + */ + protected String timestamp = TIMESTAMP_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IposMsgRcvEventImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return IPosDevKitPackage.Literals.IPOS_MSG_RCV_EVENT; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getProtocolName() { + return protocolName; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setProtocolName(String newProtocolName) { + String oldProtocolName = protocolName; + protocolName = newProtocolName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_MSG_RCV_EVENT__PROTOCOL_NAME, + oldProtocolName, protocolName)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public byte[] getSerializedMsg() { + return serializedMsg; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setSerializedMsg(byte[] newSerializedMsg) { + byte[] oldSerializedMsg = serializedMsg; + serializedMsg = newSerializedMsg; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_MSG_RCV_EVENT__SERIALIZED_MSG, + oldSerializedMsg, serializedMsg)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getLastPosUpdate() { + return lastPosUpdate; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setLastPosUpdate(String newLastPosUpdate) { + String oldLastPosUpdate = lastPosUpdate; + lastPosUpdate = newLastPosUpdate; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_POS_UPDATE, + oldLastPosUpdate, lastPosUpdate)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Position getLastKnownPosition() { + if (lastKnownPosition != null && lastKnownPosition.eIsProxy()) { + InternalEObject oldLastKnownPosition = (InternalEObject) lastKnownPosition; + lastKnownPosition = (Position) eResolveProxy(oldLastKnownPosition); + if (lastKnownPosition != oldLastKnownPosition) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_POSITION, oldLastKnownPosition, + lastKnownPosition)); + } + } + return lastKnownPosition; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Position basicGetLastKnownPosition() { + return lastKnownPosition; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setLastKnownPosition(Position newLastKnownPosition) { + Position oldLastKnownPosition = lastKnownPosition; + lastKnownPosition = newLastKnownPosition; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_POSITION, oldLastKnownPosition, + lastKnownPosition)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Orientation getLastKnownOrientation() { + if (lastKnownOrientation != null && lastKnownOrientation.eIsProxy()) { + InternalEObject oldLastKnownOrientation = (InternalEObject) lastKnownOrientation; + lastKnownOrientation = (Orientation) eResolveProxy(oldLastKnownOrientation); + if (lastKnownOrientation != oldLastKnownOrientation) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ORIENTATION, oldLastKnownOrientation, + lastKnownOrientation)); + } + } + return lastKnownOrientation; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Orientation basicGetLastKnownOrientation() { + return lastKnownOrientation; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setLastKnownOrientation(Orientation newLastKnownOrientation) { + Orientation oldLastKnownOrientation = lastKnownOrientation; + lastKnownOrientation = newLastKnownOrientation; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ORIENTATION, oldLastKnownOrientation, + lastKnownOrientation)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<ZoneDescriptor> getLastKnownZonedescriptors() { + if (lastKnownZonedescriptors == null) { + lastKnownZonedescriptors = new EObjectResolvingEList<ZoneDescriptor>(ZoneDescriptor.class, this, + IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ZONEDESCRIPTORS); + } + return lastKnownZonedescriptors; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getAgentId() { + return agentId; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setAgentId(String newAgentId) { + String oldAgentId = agentId; + agentId = newAgentId; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_MSG_RCV_EVENT__AGENT_ID, + oldAgentId, agentId)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public LinkedList<HashMap<String, String>> getExtractedAttributes() { + return extractedAttributes; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setExtractedAttributes(LinkedList<HashMap<String, String>> newExtractedAttributes) { + LinkedList<HashMap<String, String>> oldExtractedAttributes = extractedAttributes; + extractedAttributes = newExtractedAttributes; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + IPosDevKitPackage.IPOS_MSG_RCV_EVENT__EXTRACTED_ATTRIBUTES, oldExtractedAttributes, + extractedAttributes)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getTimestamp() { + return timestamp; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTimestamp(String newTimestamp) { + String oldTimestamp = timestamp; + timestamp = newTimestamp; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_MSG_RCV_EVENT__TIMESTAMP, + oldTimestamp, timestamp)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__PROTOCOL_NAME: + return getProtocolName(); + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__SERIALIZED_MSG: + return getSerializedMsg(); + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_POS_UPDATE: + return getLastPosUpdate(); + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_POSITION: + if (resolve) + return getLastKnownPosition(); + return basicGetLastKnownPosition(); + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ORIENTATION: + if (resolve) + return getLastKnownOrientation(); + return basicGetLastKnownOrientation(); + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ZONEDESCRIPTORS: + return getLastKnownZonedescriptors(); + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__AGENT_ID: + return getAgentId(); + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__EXTRACTED_ATTRIBUTES: + return getExtractedAttributes(); + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__TIMESTAMP: + return getTimestamp(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__PROTOCOL_NAME: + setProtocolName((String) newValue); + return; + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__SERIALIZED_MSG: + setSerializedMsg((byte[]) newValue); + return; + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_POS_UPDATE: + setLastPosUpdate((String) newValue); + return; + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_POSITION: + setLastKnownPosition((Position) newValue); + return; + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ORIENTATION: + setLastKnownOrientation((Orientation) newValue); + return; + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ZONEDESCRIPTORS: + getLastKnownZonedescriptors().clear(); + getLastKnownZonedescriptors().addAll((Collection<? extends ZoneDescriptor>) newValue); + return; + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__AGENT_ID: + setAgentId((String) newValue); + return; + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__EXTRACTED_ATTRIBUTES: + setExtractedAttributes((LinkedList<HashMap<String, String>>) newValue); + return; + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__TIMESTAMP: + setTimestamp((String) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__PROTOCOL_NAME: + setProtocolName(PROTOCOL_NAME_EDEFAULT); + return; + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__SERIALIZED_MSG: + setSerializedMsg(SERIALIZED_MSG_EDEFAULT); + return; + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_POS_UPDATE: + setLastPosUpdate(LAST_POS_UPDATE_EDEFAULT); + return; + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_POSITION: + setLastKnownPosition((Position) null); + return; + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ORIENTATION: + setLastKnownOrientation((Orientation) null); + return; + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ZONEDESCRIPTORS: + getLastKnownZonedescriptors().clear(); + return; + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__AGENT_ID: + setAgentId(AGENT_ID_EDEFAULT); + return; + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__EXTRACTED_ATTRIBUTES: + setExtractedAttributes(EXTRACTED_ATTRIBUTES_EDEFAULT); + return; + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__TIMESTAMP: + setTimestamp(TIMESTAMP_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__PROTOCOL_NAME: + return PROTOCOL_NAME_EDEFAULT == null ? protocolName != null : !PROTOCOL_NAME_EDEFAULT.equals(protocolName); + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__SERIALIZED_MSG: + return SERIALIZED_MSG_EDEFAULT == null ? serializedMsg != null + : !SERIALIZED_MSG_EDEFAULT.equals(serializedMsg); + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_POS_UPDATE: + return LAST_POS_UPDATE_EDEFAULT == null ? lastPosUpdate != null + : !LAST_POS_UPDATE_EDEFAULT.equals(lastPosUpdate); + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_POSITION: + return lastKnownPosition != null; + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ORIENTATION: + return lastKnownOrientation != null; + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ZONEDESCRIPTORS: + return lastKnownZonedescriptors != null && !lastKnownZonedescriptors.isEmpty(); + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__AGENT_ID: + return AGENT_ID_EDEFAULT == null ? agentId != null : !AGENT_ID_EDEFAULT.equals(agentId); + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__EXTRACTED_ATTRIBUTES: + return EXTRACTED_ATTRIBUTES_EDEFAULT == null ? extractedAttributes != null + : !EXTRACTED_ATTRIBUTES_EDEFAULT.equals(extractedAttributes); + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__TIMESTAMP: + return TIMESTAMP_EDEFAULT == null ? timestamp != null : !TIMESTAMP_EDEFAULT.equals(timestamp); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (protocolName: "); + result.append(protocolName); + result.append(", serializedMsg: "); + result.append(serializedMsg); + result.append(", lastPosUpdate: "); + result.append(lastPosUpdate); + result.append(", agentId: "); + result.append(agentId); + result.append(", extractedAttributes: "); + result.append(extractedAttributes); + result.append(", timestamp: "); + result.append(timestamp); + result.append(')'); + return result.toString(); + } + +} //IposMsgRcvEventImpl diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/util/IPosDevKitAdapterFactory.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/util/IPosDevKitAdapterFactory.java index 06ebcdd..831419c 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/util/IPosDevKitAdapterFactory.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/util/IPosDevKitAdapterFactory.java @@ -161,6 +161,11 @@ public class IPosDevKitAdapterFactory extends AdapterFactoryImpl { return createIPosOtherBeaconEventAdapter(); } + @Override + public Adapter caseIposMsgRcvEvent(IposMsgRcvEvent object) { + return createIposMsgRcvEventAdapter(); + } + @Override public Adapter defaultCase(EObject object) { return createEObjectAdapter(); @@ -446,6 +451,20 @@ public class IPosDevKitAdapterFactory extends AdapterFactoryImpl { return null; } + /** + * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent <em>Ipos Msg Rcv Event</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent + * @generated + */ + public Adapter createIposMsgRcvEventAdapter() { + return null; + } + /** * Creates a new adapter for the default case. * <!-- begin-user-doc --> diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/util/IPosDevKitSwitch.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/util/IPosDevKitSwitch.java index b0608cc..37c0c80 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/util/IPosDevKitSwitch.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/util/IPosDevKitSwitch.java @@ -231,6 +231,13 @@ public class IPosDevKitSwitch<T> extends Switch<T> { result = defaultCase(theEObject); return result; } + case IPosDevKitPackage.IPOS_MSG_RCV_EVENT: { + IposMsgRcvEvent iposMsgRcvEvent = (IposMsgRcvEvent) theEObject; + T result = caseIposMsgRcvEvent(iposMsgRcvEvent); + if (result == null) + result = defaultCase(theEObject); + return result; + } default: return defaultCase(theEObject); } @@ -521,6 +528,21 @@ public class IPosDevKitSwitch<T> extends Switch<T> { return null; } + /** + * Returns the result of interpreting the object as an instance of '<em>Ipos Msg Rcv Event</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Ipos Msg Rcv Event</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseIposMsgRcvEvent(IposMsgRcvEvent object) { + return null; + } + /** * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. * <!-- begin-user-doc --> diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPos_DatamodelFactory.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPos_DatamodelFactory.java index b86a194..739eb3b 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPos_DatamodelFactory.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPos_DatamodelFactory.java @@ -373,6 +373,15 @@ public interface IPos_DatamodelFactory extends EFactory { */ DataStorageQueryResponse createDataStorageQueryResponse(); + /** + * Returns a new object of class '<em>Message Received Event</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Message Received Event</em>'. + * @generated + */ + MessageReceivedEvent createMessageReceivedEvent(); + /** * Returns the package supported by this factory. * <!-- begin-user-doc --> diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPos_DatamodelPackage.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPos_DatamodelPackage.java index fd26e45..6610f02 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPos_DatamodelPackage.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPos_DatamodelPackage.java @@ -2230,6 +2230,79 @@ public interface IPos_DatamodelPackage extends EPackage { */ int DATA_STORAGE_QUERY_RESPONSE_OPERATION_COUNT = 0; + /** + * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.MessageReceivedEventImpl <em>Message Received Event</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.MessageReceivedEventImpl + * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getMessageReceivedEvent() + * @generated + */ + int MESSAGE_RECEIVED_EVENT = 39; + + /** + * The feature id for the '<em><b>Protocol Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MESSAGE_RECEIVED_EVENT__PROTOCOL_NAME = 0; + + /** + * The feature id for the '<em><b>Serialized Msg</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MESSAGE_RECEIVED_EVENT__SERIALIZED_MSG = 1; + + /** + * The feature id for the '<em><b>Agent Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MESSAGE_RECEIVED_EVENT__AGENT_ID = 2; + + /** + * The feature id for the '<em><b>Extracted Attributes</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MESSAGE_RECEIVED_EVENT__EXTRACTED_ATTRIBUTES = 3; + + /** + * The feature id for the '<em><b>Timestamp</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MESSAGE_RECEIVED_EVENT__TIMESTAMP = 4; + + /** + * The number of structural features of the '<em>Message Received Event</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MESSAGE_RECEIVED_EVENT_FEATURE_COUNT = 5; + + /** + * The number of operations of the '<em>Message Received Event</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MESSAGE_RECEIVED_EVENT_OPERATION_COUNT = 0; + /** * The meta object id for the '<em>String List</em>' data type. * <!-- begin-user-doc --> @@ -2238,7 +2311,7 @@ public interface IPos_DatamodelPackage extends EPackage { * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getStringList() * @generated */ - int STRING_LIST = 39; + int STRING_LIST = 40; /** * The meta object id for the '<em>String Array</em>' data type. @@ -2247,7 +2320,7 @@ public interface IPos_DatamodelPackage extends EPackage { * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getStringArray() * @generated */ - int STRING_ARRAY = 40; + int STRING_ARRAY = 41; /** * The meta object id for the '<em>Float Array3d</em>' data type. @@ -2256,7 +2329,7 @@ public interface IPos_DatamodelPackage extends EPackage { * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getFloatArray3d() * @generated */ - int FLOAT_ARRAY3D = 41; + int FLOAT_ARRAY3D = 42; /** * The meta object id for the '<em>Boolean List</em>' data type. @@ -2265,7 +2338,7 @@ public interface IPos_DatamodelPackage extends EPackage { * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getBooleanList() * @generated */ - int BOOLEAN_LIST = 42; + int BOOLEAN_LIST = 43; /** * The meta object id for the '<em>Float Array</em>' data type. @@ -2274,7 +2347,26 @@ public interface IPos_DatamodelPackage extends EPackage { * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getFloatArray() * @generated */ - int FLOAT_ARRAY = 43; + int FLOAT_ARRAY = 44; + + /** + * The meta object id for the '<em>Byte Array</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getByteArray() + * @generated + */ + int BYTE_ARRAY = 45; + + /** + * The meta object id for the '<em>List Of String Maps</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see java.util.LinkedList + * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getListOfStringMaps() + * @generated + */ + int LIST_OF_STRING_MAPS = 46; /** * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Agent <em>Agent</em>}'. @@ -3623,6 +3715,71 @@ public interface IPos_DatamodelPackage extends EPackage { */ EAttribute getDataStorageQueryResponse_TrackingTaskId(); + /** + * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent <em>Message Received Event</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Message Received Event</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent + * @generated + */ + EClass getMessageReceivedEvent(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getProtocolName <em>Protocol Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Protocol Name</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getProtocolName() + * @see #getMessageReceivedEvent() + * @generated + */ + EAttribute getMessageReceivedEvent_ProtocolName(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getSerializedMsg <em>Serialized Msg</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Serialized Msg</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getSerializedMsg() + * @see #getMessageReceivedEvent() + * @generated + */ + EAttribute getMessageReceivedEvent_SerializedMsg(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getAgentId <em>Agent Id</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Agent Id</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getAgentId() + * @see #getMessageReceivedEvent() + * @generated + */ + EAttribute getMessageReceivedEvent_AgentId(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getExtractedAttributes <em>Extracted Attributes</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Extracted Attributes</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getExtractedAttributes() + * @see #getMessageReceivedEvent() + * @generated + */ + EAttribute getMessageReceivedEvent_ExtractedAttributes(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getTimestamp <em>Timestamp</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Timestamp</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getTimestamp() + * @see #getMessageReceivedEvent() + * @generated + */ + EAttribute getMessageReceivedEvent_Timestamp(); + /** * Returns the meta object for data type '{@link java.util.List <em>String List</em>}'. * <!-- begin-user-doc --> @@ -3674,6 +3831,27 @@ public interface IPos_DatamodelPackage extends EPackage { */ EDataType getFloatArray(); + /** + * Returns the meta object for data type '<em>Byte Array</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for data type '<em>Byte Array</em>'. + * @model instanceClass="java.lang.byte[]" + * @generated + */ + EDataType getByteArray(); + + /** + * Returns the meta object for data type '{@link java.util.LinkedList <em>List Of String Maps</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for data type '<em>List Of String Maps</em>'. + * @see java.util.LinkedList + * @model instanceClass="java.util.LinkedList<java.util.HashMap<java.lang.String, java.lang.String>>" + * @generated + */ + EDataType getListOfStringMaps(); + /** * Returns the factory that creates the instances of the model. * <!-- begin-user-doc --> @@ -4789,6 +4967,57 @@ public interface IPos_DatamodelPackage extends EPackage { EAttribute DATA_STORAGE_QUERY_RESPONSE__TRACKING_TASK_ID = eINSTANCE .getDataStorageQueryResponse_TrackingTaskId(); + /** + * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.MessageReceivedEventImpl <em>Message Received Event</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.MessageReceivedEventImpl + * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getMessageReceivedEvent() + * @generated + */ + EClass MESSAGE_RECEIVED_EVENT = eINSTANCE.getMessageReceivedEvent(); + + /** + * The meta object literal for the '<em><b>Protocol Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute MESSAGE_RECEIVED_EVENT__PROTOCOL_NAME = eINSTANCE.getMessageReceivedEvent_ProtocolName(); + + /** + * The meta object literal for the '<em><b>Serialized Msg</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute MESSAGE_RECEIVED_EVENT__SERIALIZED_MSG = eINSTANCE.getMessageReceivedEvent_SerializedMsg(); + + /** + * The meta object literal for the '<em><b>Agent Id</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute MESSAGE_RECEIVED_EVENT__AGENT_ID = eINSTANCE.getMessageReceivedEvent_AgentId(); + + /** + * The meta object literal for the '<em><b>Extracted Attributes</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute MESSAGE_RECEIVED_EVENT__EXTRACTED_ATTRIBUTES = eINSTANCE + .getMessageReceivedEvent_ExtractedAttributes(); + + /** + * The meta object literal for the '<em><b>Timestamp</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute MESSAGE_RECEIVED_EVENT__TIMESTAMP = eINSTANCE.getMessageReceivedEvent_Timestamp(); + /** * The meta object literal for the '<em>String List</em>' data type. * <!-- begin-user-doc --> @@ -4835,6 +5064,25 @@ public interface IPos_DatamodelPackage extends EPackage { */ EDataType FLOAT_ARRAY = eINSTANCE.getFloatArray(); + /** + * The meta object literal for the '<em>Byte Array</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getByteArray() + * @generated + */ + EDataType BYTE_ARRAY = eINSTANCE.getByteArray(); + + /** + * The meta object literal for the '<em>List Of String Maps</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see java.util.LinkedList + * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getListOfStringMaps() + * @generated + */ + EDataType LIST_OF_STRING_MAPS = eINSTANCE.getListOfStringMaps(); + } } //IPos_DatamodelPackage diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/MessageReceivedEvent.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/MessageReceivedEvent.java new file mode 100644 index 0000000..3b4bbd2 --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/MessageReceivedEvent.java @@ -0,0 +1,141 @@ +/** + */ +package ipos.project.DataModellntegration.iPos_Datamodel; + +import java.util.HashMap; +import java.util.LinkedList; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Message Received Event</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * </p> + * <ul> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getProtocolName <em>Protocol Name</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getSerializedMsg <em>Serialized Msg</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getAgentId <em>Agent Id</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getExtractedAttributes <em>Extracted Attributes</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getTimestamp <em>Timestamp</em>}</li> + * </ul> + * + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getMessageReceivedEvent() + * @model + * @generated + */ +public interface MessageReceivedEvent extends EObject { + /** + * Returns the value of the '<em><b>Protocol Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Protocol Name</em>' attribute. + * @see #setProtocolName(String) + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getMessageReceivedEvent_ProtocolName() + * @model + * @generated + */ + String getProtocolName(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getProtocolName <em>Protocol Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Protocol Name</em>' attribute. + * @see #getProtocolName() + * @generated + */ + void setProtocolName(String value); + + /** + * Returns the value of the '<em><b>Serialized Msg</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Serialized Msg</em>' attribute. + * @see #setSerializedMsg(byte[]) + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getMessageReceivedEvent_SerializedMsg() + * @model dataType="ipos.project.DataModellntegration.iPos_Datamodel.ByteArray" + * @generated + */ + byte[] getSerializedMsg(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getSerializedMsg <em>Serialized Msg</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Serialized Msg</em>' attribute. + * @see #getSerializedMsg() + * @generated + */ + void setSerializedMsg(byte[] value); + + /** + * Returns the value of the '<em><b>Agent Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Agent Id</em>' attribute. + * @see #setAgentId(String) + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getMessageReceivedEvent_AgentId() + * @model + * @generated + */ + String getAgentId(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getAgentId <em>Agent Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Agent Id</em>' attribute. + * @see #getAgentId() + * @generated + */ + void setAgentId(String value); + + /** + * Returns the value of the '<em><b>Extracted Attributes</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Extracted Attributes</em>' attribute. + * @see #setExtractedAttributes(LinkedList) + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getMessageReceivedEvent_ExtractedAttributes() + * @model dataType="ipos.project.DataModellntegration.iPos_Datamodel.ListOfStringMaps" + * @generated + */ + LinkedList<HashMap<String, String>> getExtractedAttributes(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getExtractedAttributes <em>Extracted Attributes</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Extracted Attributes</em>' attribute. + * @see #getExtractedAttributes() + * @generated + */ + void setExtractedAttributes(LinkedList<HashMap<String, String>> value); + + /** + * Returns the value of the '<em><b>Timestamp</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Timestamp</em>' attribute. + * @see #setTimestamp(String) + * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getMessageReceivedEvent_Timestamp() + * @model + * @generated + */ + String getTimestamp(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getTimestamp <em>Timestamp</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Timestamp</em>' attribute. + * @see #getTimestamp() + * @generated + */ + void setTimestamp(String value); + +} // MessageReceivedEvent diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/OFBizPackageImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/OFBizPackageImpl.java index 651d323..09b3089 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/OFBizPackageImpl.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/OFBizPackageImpl.java @@ -18,6 +18,8 @@ import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole; import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage; import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.ToozPackageImpl; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl; import ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl; import org.eclipse.emf.ecore.EAttribute; @@ -137,18 +139,24 @@ public class OFBizPackageImpl extends EPackageImpl implements OFBizPackage { ToozPackageImpl theToozPackage = (ToozPackageImpl) (registeredPackage instanceof ToozPackageImpl ? registeredPackage : ToozPackage.eINSTANCE); + registeredPackage = EPackage.Registry.INSTANCE.getEPackage(VDA5050Package.eNS_URI); + VDA5050PackageImpl theVDA5050Package = (VDA5050PackageImpl) (registeredPackage instanceof VDA5050PackageImpl + ? registeredPackage + : VDA5050Package.eINSTANCE); // Create package meta-data objects theOFBizPackage.createPackageContents(); theIPos_DatamodelPackage.createPackageContents(); theIPosDevKitPackage.createPackageContents(); theToozPackage.createPackageContents(); + theVDA5050Package.createPackageContents(); // Initialize created meta-data theOFBizPackage.initializePackageContents(); theIPos_DatamodelPackage.initializePackageContents(); theIPosDevKitPackage.initializePackageContents(); theToozPackage.initializePackageContents(); + theVDA5050Package.initializePackageContents(); // Mark meta-data to indicate it can't be changed theOFBizPackage.freeze(); diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/DistantEntity.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/DistantEntity.java index 274e538..1732ed8 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/DistantEntity.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/DistantEntity.java @@ -21,6 +21,7 @@ import org.eclipse.emf.ecore.EObject; * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getDistance <em>Distance</em>}</li> * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getProximityIndex <em>Proximity Index</em>}</li> * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getEntityData <em>Entity Data</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getTimeStamp <em>Time Stamp</em>}</li> * </ul> * * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage#getDistantEntity() @@ -160,4 +161,26 @@ public interface DistantEntity extends EObject { */ void setEntityData(Map<String, String> value); + /** + * Returns the value of the '<em><b>Time Stamp</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Time Stamp</em>' attribute. + * @see #setTimeStamp(String) + * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage#getDistantEntity_TimeStamp() + * @model dataType="org.eclipse.emf.ecore.xml.type.String" + * @generated + */ + String getTimeStamp(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getTimeStamp <em>Time Stamp</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Time Stamp</em>' attribute. + * @see #getTimeStamp() + * @generated + */ + void setTimeStamp(String value); + } // DistantEntity diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/ToozPackage.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/ToozPackage.java index b829660..2256759 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/ToozPackage.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/ToozPackage.java @@ -156,6 +156,15 @@ public interface ToozPackage extends EPackage { */ int DISTANT_ENTITY__ENTITY_DATA = 5; + /** + * The feature id for the '<em><b>Time Stamp</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int DISTANT_ENTITY__TIME_STAMP = 6; + /** * The number of structural features of the '<em>Distant Entity</em>' class. * <!-- begin-user-doc --> @@ -163,7 +172,7 @@ public interface ToozPackage extends EPackage { * @generated * @ordered */ - int DISTANT_ENTITY_FEATURE_COUNT = 6; + int DISTANT_ENTITY_FEATURE_COUNT = 7; /** * The number of operations of the '<em>Distant Entity</em>' class. @@ -271,6 +280,17 @@ public interface ToozPackage extends EPackage { */ EAttribute getDistantEntity_EntityData(); + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getTimeStamp <em>Time Stamp</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Time Stamp</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getTimeStamp() + * @see #getDistantEntity() + * @generated + */ + EAttribute getDistantEntity_TimeStamp(); + /** * Returns the factory that creates the instances of the model. * <!-- begin-user-doc --> @@ -370,6 +390,14 @@ public interface ToozPackage extends EPackage { */ EAttribute DISTANT_ENTITY__ENTITY_DATA = eINSTANCE.getDistantEntity_EntityData(); + /** + * The meta object literal for the '<em><b>Time Stamp</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute DISTANT_ENTITY__TIME_STAMP = eINSTANCE.getDistantEntity_TimeStamp(); + } } //ToozPackage diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/DistantEntityImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/DistantEntityImpl.java index ef6eb56..08f7116 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/DistantEntityImpl.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/DistantEntityImpl.java @@ -28,6 +28,7 @@ import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.DistantEntityImpl#getDistance <em>Distance</em>}</li> * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.DistantEntityImpl#getProximityIndex <em>Proximity Index</em>}</li> * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.DistantEntityImpl#getEntityData <em>Entity Data</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.DistantEntityImpl#getTimeStamp <em>Time Stamp</em>}</li> * </ul> * * @generated @@ -143,6 +144,26 @@ public class DistantEntityImpl extends MinimalEObjectImpl.Container implements D */ protected Map<String, String> entityData; + /** + * The default value of the '{@link #getTimeStamp() <em>Time Stamp</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTimeStamp() + * @generated + * @ordered + */ + protected static final String TIME_STAMP_EDEFAULT = null; + + /** + * The cached value of the '{@link #getTimeStamp() <em>Time Stamp</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTimeStamp() + * @generated + * @ordered + */ + protected String timeStamp = TIME_STAMP_EDEFAULT; + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -294,6 +315,28 @@ public class DistantEntityImpl extends MinimalEObjectImpl.Container implements D oldEntityData, entityData)); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getTimeStamp() { + return timeStamp; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTimeStamp(String newTimeStamp) { + String oldTimeStamp = timeStamp; + timeStamp = newTimeStamp; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ToozPackage.DISTANT_ENTITY__TIME_STAMP, oldTimeStamp, + timeStamp)); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -314,6 +357,8 @@ public class DistantEntityImpl extends MinimalEObjectImpl.Container implements D return getProximityIndex(); case ToozPackage.DISTANT_ENTITY__ENTITY_DATA: return getEntityData(); + case ToozPackage.DISTANT_ENTITY__TIME_STAMP: + return getTimeStamp(); } return super.eGet(featureID, resolve, coreType); } @@ -345,6 +390,9 @@ public class DistantEntityImpl extends MinimalEObjectImpl.Container implements D case ToozPackage.DISTANT_ENTITY__ENTITY_DATA: setEntityData((Map<String, String>) newValue); return; + case ToozPackage.DISTANT_ENTITY__TIME_STAMP: + setTimeStamp((String) newValue); + return; } super.eSet(featureID, newValue); } @@ -375,6 +423,9 @@ public class DistantEntityImpl extends MinimalEObjectImpl.Container implements D case ToozPackage.DISTANT_ENTITY__ENTITY_DATA: setEntityData((Map<String, String>) null); return; + case ToozPackage.DISTANT_ENTITY__TIME_STAMP: + setTimeStamp(TIME_STAMP_EDEFAULT); + return; } super.eUnset(featureID); } @@ -402,6 +453,8 @@ public class DistantEntityImpl extends MinimalEObjectImpl.Container implements D return proximityIndex != PROXIMITY_INDEX_EDEFAULT; case ToozPackage.DISTANT_ENTITY__ENTITY_DATA: return entityData != null; + case ToozPackage.DISTANT_ENTITY__TIME_STAMP: + return TIME_STAMP_EDEFAULT == null ? timeStamp != null : !TIME_STAMP_EDEFAULT.equals(timeStamp); } return super.eIsSet(featureID); } @@ -429,6 +482,8 @@ public class DistantEntityImpl extends MinimalEObjectImpl.Container implements D result.append(proximityIndex); result.append(", entityData: "); result.append(entityData); + result.append(", timeStamp: "); + result.append(timeStamp); result.append(')'); return result.toString(); } diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/ToozPackageImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/ToozPackageImpl.java index 5c825ff..2b559fe 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/ToozPackageImpl.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/ToozPackageImpl.java @@ -17,6 +17,8 @@ import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget; import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozFactory; import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl; import ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl; import org.eclipse.emf.ecore.EAttribute; @@ -115,18 +117,24 @@ public class ToozPackageImpl extends EPackageImpl implements ToozPackage { IPosDevKitPackageImpl theIPosDevKitPackage = (IPosDevKitPackageImpl) (registeredPackage instanceof IPosDevKitPackageImpl ? registeredPackage : IPosDevKitPackage.eINSTANCE); + registeredPackage = EPackage.Registry.INSTANCE.getEPackage(VDA5050Package.eNS_URI); + VDA5050PackageImpl theVDA5050Package = (VDA5050PackageImpl) (registeredPackage instanceof VDA5050PackageImpl + ? registeredPackage + : VDA5050Package.eINSTANCE); // Create package meta-data objects theToozPackage.createPackageContents(); theIPos_DatamodelPackage.createPackageContents(); theOFBizPackage.createPackageContents(); theIPosDevKitPackage.createPackageContents(); + theVDA5050Package.createPackageContents(); // Initialize created meta-data theToozPackage.initializePackageContents(); theIPos_DatamodelPackage.initializePackageContents(); theOFBizPackage.initializePackageContents(); theIPosDevKitPackage.initializePackageContents(); + theVDA5050Package.initializePackageContents(); // Mark meta-data to indicate it can't be changed theToozPackage.freeze(); @@ -217,6 +225,15 @@ public class ToozPackageImpl extends EPackageImpl implements ToozPackage { return (EAttribute) distantEntityEClass.getEStructuralFeatures().get(5); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getDistantEntity_TimeStamp() { + return (EAttribute) distantEntityEClass.getEStructuralFeatures().get(6); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -256,6 +273,7 @@ public class ToozPackageImpl extends EPackageImpl implements ToozPackage { createEAttribute(distantEntityEClass, DISTANT_ENTITY__DISTANCE); createEAttribute(distantEntityEClass, DISTANT_ENTITY__PROXIMITY_INDEX); createEAttribute(distantEntityEClass, DISTANT_ENTITY__ENTITY_DATA); + createEAttribute(distantEntityEClass, DISTANT_ENTITY__TIME_STAMP); } /** @@ -323,6 +341,9 @@ public class ToozPackageImpl extends EPackageImpl implements ToozPackage { g1.getETypeArguments().add(g2); initEAttribute(getDistantEntity_EntityData(), g1, "entityData", null, 0, 1, DistantEntity.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getDistantEntity_TimeStamp(), theXMLTypePackage.getString(), "timeStamp", null, 0, 1, + DistantEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); } } //ToozPackageImpl diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/AgvPosition.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/AgvPosition.java new file mode 100644 index 0000000..b8058dc --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/AgvPosition.java @@ -0,0 +1,115 @@ +/** + */ +package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Agv Position</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * </p> + * <ul> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getX <em>X</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getY <em>Y</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getTheta <em>Theta</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getMapId <em>Map Id</em>}</li> + * </ul> + * + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvPosition() + * @model + * @generated + */ +public interface AgvPosition extends EObject { + /** + * Returns the value of the '<em><b>X</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>X</em>' attribute. + * @see #setX(float) + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvPosition_X() + * @model + * @generated + */ + float getX(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getX <em>X</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>X</em>' attribute. + * @see #getX() + * @generated + */ + void setX(float value); + + /** + * Returns the value of the '<em><b>Y</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Y</em>' attribute. + * @see #setY(float) + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvPosition_Y() + * @model + * @generated + */ + float getY(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getY <em>Y</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Y</em>' attribute. + * @see #getY() + * @generated + */ + void setY(float value); + + /** + * Returns the value of the '<em><b>Theta</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Theta</em>' attribute. + * @see #setTheta(float) + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvPosition_Theta() + * @model + * @generated + */ + float getTheta(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getTheta <em>Theta</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Theta</em>' attribute. + * @see #getTheta() + * @generated + */ + void setTheta(float value); + + /** + * Returns the value of the '<em><b>Map Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Map Id</em>' attribute. + * @see #setMapId(String) + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvPosition_MapId() + * @model + * @generated + */ + String getMapId(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getMapId <em>Map Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Map Id</em>' attribute. + * @see #getMapId() + * @generated + */ + void setMapId(String value); + +} // AgvPosition diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/AgvState.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/AgvState.java new file mode 100644 index 0000000..d8ae2e2 --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/AgvState.java @@ -0,0 +1,189 @@ +/** + */ +package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Agv State</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * </p> + * <ul> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getTimeStamp <em>Time Stamp</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getSerialNumber <em>Serial Number</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getLastNodeId <em>Last Node Id</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getBatteryState <em>Battery State</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getErrors <em>Errors</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getAgvposition <em>Agvposition</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getLoads <em>Loads</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getManufacturer <em>Manufacturer</em>}</li> + * </ul> + * + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvState() + * @model + * @generated + */ +public interface AgvState extends EObject { + /** + * Returns the value of the '<em><b>Time Stamp</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Time Stamp</em>' attribute. + * @see #setTimeStamp(String) + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvState_TimeStamp() + * @model + * @generated + */ + String getTimeStamp(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getTimeStamp <em>Time Stamp</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Time Stamp</em>' attribute. + * @see #getTimeStamp() + * @generated + */ + void setTimeStamp(String value); + + /** + * Returns the value of the '<em><b>Serial Number</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Serial Number</em>' attribute. + * @see #setSerialNumber(String) + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvState_SerialNumber() + * @model + * @generated + */ + String getSerialNumber(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getSerialNumber <em>Serial Number</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Serial Number</em>' attribute. + * @see #getSerialNumber() + * @generated + */ + void setSerialNumber(String value); + + /** + * Returns the value of the '<em><b>Last Node Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Last Node Id</em>' attribute. + * @see #setLastNodeId(String) + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvState_LastNodeId() + * @model + * @generated + */ + String getLastNodeId(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getLastNodeId <em>Last Node Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Last Node Id</em>' attribute. + * @see #getLastNodeId() + * @generated + */ + void setLastNodeId(String value); + + /** + * Returns the value of the '<em><b>Battery State</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Battery State</em>' reference. + * @see #setBatteryState(BatteryState) + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvState_BatteryState() + * @model + * @generated + */ + BatteryState getBatteryState(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getBatteryState <em>Battery State</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Battery State</em>' reference. + * @see #getBatteryState() + * @generated + */ + void setBatteryState(BatteryState value); + + /** + * Returns the value of the '<em><b>Errors</b></em>' reference list. + * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Errors</em>' reference list. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvState_Errors() + * @model + * @generated + */ + EList<ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error> getErrors(); + + /** + * Returns the value of the '<em><b>Agvposition</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Agvposition</em>' reference. + * @see #setAgvposition(AgvPosition) + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvState_Agvposition() + * @model + * @generated + */ + AgvPosition getAgvposition(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getAgvposition <em>Agvposition</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Agvposition</em>' reference. + * @see #getAgvposition() + * @generated + */ + void setAgvposition(AgvPosition value); + + /** + * Returns the value of the '<em><b>Loads</b></em>' reference list. + * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Loads</em>' reference list. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvState_Loads() + * @model + * @generated + */ + EList<Load> getLoads(); + + /** + * Returns the value of the '<em><b>Manufacturer</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Manufacturer</em>' attribute. + * @see #setManufacturer(String) + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvState_Manufacturer() + * @model + * @generated + */ + String getManufacturer(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getManufacturer <em>Manufacturer</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Manufacturer</em>' attribute. + * @see #getManufacturer() + * @generated + */ + void setManufacturer(String value); + +} // AgvState diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/BatteryState.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/BatteryState.java new file mode 100644 index 0000000..1cff3f3 --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/BatteryState.java @@ -0,0 +1,46 @@ +/** + */ +package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Battery State</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * </p> + * <ul> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState#getBatteryCharge <em>Battery Charge</em>}</li> + * </ul> + * + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getBatteryState() + * @model + * @generated + */ +public interface BatteryState extends EObject { + /** + * Returns the value of the '<em><b>Battery Charge</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Battery Charge</em>' attribute. + * @see #setBatteryCharge(float) + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getBatteryState_BatteryCharge() + * @model + * @generated + */ + float getBatteryCharge(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState#getBatteryCharge <em>Battery Charge</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Battery Charge</em>' attribute. + * @see #getBatteryCharge() + * @generated + */ + void setBatteryCharge(float value); + +} // BatteryState diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/Error.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/Error.java new file mode 100644 index 0000000..f64088e --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/Error.java @@ -0,0 +1,46 @@ +/** + */ +package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Error</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * </p> + * <ul> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error#getErrorType <em>Error Type</em>}</li> + * </ul> + * + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getError() + * @model + * @generated + */ +public interface Error extends EObject { + /** + * Returns the value of the '<em><b>Error Type</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Error Type</em>' attribute. + * @see #setErrorType(String) + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getError_ErrorType() + * @model + * @generated + */ + String getErrorType(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error#getErrorType <em>Error Type</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Error Type</em>' attribute. + * @see #getErrorType() + * @generated + */ + void setErrorType(String value); + +} // Error diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/Load.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/Load.java new file mode 100644 index 0000000..2f5c1dd --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/Load.java @@ -0,0 +1,46 @@ +/** + */ +package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Load</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * </p> + * <ul> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load#getLoadId <em>Load Id</em>}</li> + * </ul> + * + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getLoad() + * @model + * @generated + */ +public interface Load extends EObject { + /** + * Returns the value of the '<em><b>Load Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Load Id</em>' attribute. + * @see #setLoadId(String) + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getLoad_LoadId() + * @model + * @generated + */ + String getLoadId(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load#getLoadId <em>Load Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Load Id</em>' attribute. + * @see #getLoadId() + * @generated + */ + void setLoadId(String value); + +} // Load diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/VDA5050Factory.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/VDA5050Factory.java new file mode 100644 index 0000000..eaca1b8 --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/VDA5050Factory.java @@ -0,0 +1,78 @@ +/** + */ +package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050; + +import org.eclipse.emf.ecore.EFactory; + +/** + * <!-- begin-user-doc --> + * The <b>Factory</b> for the model. + * It provides a create method for each non-abstract class of the model. + * <!-- end-user-doc --> + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package + * @generated + */ +public interface VDA5050Factory extends EFactory { + /** + * The singleton instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + VDA5050Factory eINSTANCE = ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050FactoryImpl.init(); + + /** + * Returns a new object of class '<em>Agv State</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Agv State</em>'. + * @generated + */ + AgvState createAgvState(); + + /** + * Returns a new object of class '<em>Battery State</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Battery State</em>'. + * @generated + */ + BatteryState createBatteryState(); + + /** + * Returns a new object of class '<em>Error</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Error</em>'. + * @generated + */ + Error createError(); + + /** + * Returns a new object of class '<em>Agv Position</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Agv Position</em>'. + * @generated + */ + AgvPosition createAgvPosition(); + + /** + * Returns a new object of class '<em>Load</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Load</em>'. + * @generated + */ + Load createLoad(); + + /** + * Returns the package supported by this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the package supported by this factory. + * @generated + */ + VDA5050Package getVDA5050Package(); + +} //VDA5050Factory diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/VDA5050Package.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/VDA5050Package.java new file mode 100644 index 0000000..3dcb767 --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/VDA5050Package.java @@ -0,0 +1,725 @@ +/** + */ +package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +/** + * <!-- begin-user-doc --> + * The <b>Package</b> for the model. + * It contains accessors for the meta objects to represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each operation of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Factory + * @model kind="package" + * @generated + */ +public interface VDA5050Package extends EPackage { + /** + * The package name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNAME = "VDA5050"; + + /** + * The package namespace URI. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_URI = "vda5050"; + + /** + * The package namespace name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_PREFIX = "vda5050"; + + /** + * The singleton instance of the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + VDA5050Package eINSTANCE = ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl.init(); + + /** + * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl <em>Agv State</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl#getAgvState() + * @generated + */ + int AGV_STATE = 0; + + /** + * The feature id for the '<em><b>Time Stamp</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AGV_STATE__TIME_STAMP = 0; + + /** + * The feature id for the '<em><b>Serial Number</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AGV_STATE__SERIAL_NUMBER = 1; + + /** + * The feature id for the '<em><b>Last Node Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AGV_STATE__LAST_NODE_ID = 2; + + /** + * The feature id for the '<em><b>Battery State</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AGV_STATE__BATTERY_STATE = 3; + + /** + * The feature id for the '<em><b>Errors</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AGV_STATE__ERRORS = 4; + + /** + * The feature id for the '<em><b>Agvposition</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AGV_STATE__AGVPOSITION = 5; + + /** + * The feature id for the '<em><b>Loads</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AGV_STATE__LOADS = 6; + + /** + * The feature id for the '<em><b>Manufacturer</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AGV_STATE__MANUFACTURER = 7; + + /** + * The number of structural features of the '<em>Agv State</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AGV_STATE_FEATURE_COUNT = 8; + + /** + * The number of operations of the '<em>Agv State</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AGV_STATE_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.BatteryStateImpl <em>Battery State</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.BatteryStateImpl + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl#getBatteryState() + * @generated + */ + int BATTERY_STATE = 1; + + /** + * The feature id for the '<em><b>Battery Charge</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BATTERY_STATE__BATTERY_CHARGE = 0; + + /** + * The number of structural features of the '<em>Battery State</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BATTERY_STATE_FEATURE_COUNT = 1; + + /** + * The number of operations of the '<em>Battery State</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BATTERY_STATE_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.ErrorImpl <em>Error</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.ErrorImpl + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl#getError() + * @generated + */ + int ERROR = 2; + + /** + * The feature id for the '<em><b>Error Type</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ERROR__ERROR_TYPE = 0; + + /** + * The number of structural features of the '<em>Error</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ERROR_FEATURE_COUNT = 1; + + /** + * The number of operations of the '<em>Error</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ERROR_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvPositionImpl <em>Agv Position</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvPositionImpl + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl#getAgvPosition() + * @generated + */ + int AGV_POSITION = 3; + + /** + * The feature id for the '<em><b>X</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AGV_POSITION__X = 0; + + /** + * The feature id for the '<em><b>Y</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AGV_POSITION__Y = 1; + + /** + * The feature id for the '<em><b>Theta</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AGV_POSITION__THETA = 2; + + /** + * The feature id for the '<em><b>Map Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AGV_POSITION__MAP_ID = 3; + + /** + * The number of structural features of the '<em>Agv Position</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AGV_POSITION_FEATURE_COUNT = 4; + + /** + * The number of operations of the '<em>Agv Position</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AGV_POSITION_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.LoadImpl <em>Load</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.LoadImpl + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl#getLoad() + * @generated + */ + int LOAD = 4; + + /** + * The feature id for the '<em><b>Load Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int LOAD__LOAD_ID = 0; + + /** + * The number of structural features of the '<em>Load</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int LOAD_FEATURE_COUNT = 1; + + /** + * The number of operations of the '<em>Load</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int LOAD_OPERATION_COUNT = 0; + + /** + * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState <em>Agv State</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Agv State</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState + * @generated + */ + EClass getAgvState(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getTimeStamp <em>Time Stamp</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Time Stamp</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getTimeStamp() + * @see #getAgvState() + * @generated + */ + EAttribute getAgvState_TimeStamp(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getSerialNumber <em>Serial Number</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Serial Number</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getSerialNumber() + * @see #getAgvState() + * @generated + */ + EAttribute getAgvState_SerialNumber(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getLastNodeId <em>Last Node Id</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Last Node Id</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getLastNodeId() + * @see #getAgvState() + * @generated + */ + EAttribute getAgvState_LastNodeId(); + + /** + * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getBatteryState <em>Battery State</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Battery State</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getBatteryState() + * @see #getAgvState() + * @generated + */ + EReference getAgvState_BatteryState(); + + /** + * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getErrors <em>Errors</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference list '<em>Errors</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getErrors() + * @see #getAgvState() + * @generated + */ + EReference getAgvState_Errors(); + + /** + * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getAgvposition <em>Agvposition</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Agvposition</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getAgvposition() + * @see #getAgvState() + * @generated + */ + EReference getAgvState_Agvposition(); + + /** + * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getLoads <em>Loads</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference list '<em>Loads</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getLoads() + * @see #getAgvState() + * @generated + */ + EReference getAgvState_Loads(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getManufacturer <em>Manufacturer</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Manufacturer</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getManufacturer() + * @see #getAgvState() + * @generated + */ + EAttribute getAgvState_Manufacturer(); + + /** + * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState <em>Battery State</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Battery State</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState + * @generated + */ + EClass getBatteryState(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState#getBatteryCharge <em>Battery Charge</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Battery Charge</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState#getBatteryCharge() + * @see #getBatteryState() + * @generated + */ + EAttribute getBatteryState_BatteryCharge(); + + /** + * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error <em>Error</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Error</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error + * @generated + */ + EClass getError(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error#getErrorType <em>Error Type</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Error Type</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error#getErrorType() + * @see #getError() + * @generated + */ + EAttribute getError_ErrorType(); + + /** + * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition <em>Agv Position</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Agv Position</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition + * @generated + */ + EClass getAgvPosition(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getX <em>X</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>X</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getX() + * @see #getAgvPosition() + * @generated + */ + EAttribute getAgvPosition_X(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getY <em>Y</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Y</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getY() + * @see #getAgvPosition() + * @generated + */ + EAttribute getAgvPosition_Y(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getTheta <em>Theta</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Theta</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getTheta() + * @see #getAgvPosition() + * @generated + */ + EAttribute getAgvPosition_Theta(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getMapId <em>Map Id</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Map Id</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getMapId() + * @see #getAgvPosition() + * @generated + */ + EAttribute getAgvPosition_MapId(); + + /** + * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load <em>Load</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Load</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load + * @generated + */ + EClass getLoad(); + + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load#getLoadId <em>Load Id</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Load Id</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load#getLoadId() + * @see #getLoad() + * @generated + */ + EAttribute getLoad_LoadId(); + + /** + * Returns the factory that creates the instances of the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the factory that creates the instances of the model. + * @generated + */ + VDA5050Factory getVDA5050Factory(); + + /** + * <!-- begin-user-doc --> + * Defines literals for the meta objects that represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each operation of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @generated + */ + interface Literals { + /** + * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl <em>Agv State</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl#getAgvState() + * @generated + */ + EClass AGV_STATE = eINSTANCE.getAgvState(); + /** + * The meta object literal for the '<em><b>Time Stamp</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute AGV_STATE__TIME_STAMP = eINSTANCE.getAgvState_TimeStamp(); + /** + * The meta object literal for the '<em><b>Serial Number</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute AGV_STATE__SERIAL_NUMBER = eINSTANCE.getAgvState_SerialNumber(); + /** + * The meta object literal for the '<em><b>Last Node Id</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute AGV_STATE__LAST_NODE_ID = eINSTANCE.getAgvState_LastNodeId(); + /** + * The meta object literal for the '<em><b>Battery State</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference AGV_STATE__BATTERY_STATE = eINSTANCE.getAgvState_BatteryState(); + /** + * The meta object literal for the '<em><b>Errors</b></em>' reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference AGV_STATE__ERRORS = eINSTANCE.getAgvState_Errors(); + /** + * The meta object literal for the '<em><b>Agvposition</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference AGV_STATE__AGVPOSITION = eINSTANCE.getAgvState_Agvposition(); + /** + * The meta object literal for the '<em><b>Loads</b></em>' reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference AGV_STATE__LOADS = eINSTANCE.getAgvState_Loads(); + /** + * The meta object literal for the '<em><b>Manufacturer</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute AGV_STATE__MANUFACTURER = eINSTANCE.getAgvState_Manufacturer(); + /** + * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.BatteryStateImpl <em>Battery State</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.BatteryStateImpl + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl#getBatteryState() + * @generated + */ + EClass BATTERY_STATE = eINSTANCE.getBatteryState(); + /** + * The meta object literal for the '<em><b>Battery Charge</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute BATTERY_STATE__BATTERY_CHARGE = eINSTANCE.getBatteryState_BatteryCharge(); + /** + * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.ErrorImpl <em>Error</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.ErrorImpl + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl#getError() + * @generated + */ + EClass ERROR = eINSTANCE.getError(); + /** + * The meta object literal for the '<em><b>Error Type</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute ERROR__ERROR_TYPE = eINSTANCE.getError_ErrorType(); + /** + * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvPositionImpl <em>Agv Position</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvPositionImpl + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl#getAgvPosition() + * @generated + */ + EClass AGV_POSITION = eINSTANCE.getAgvPosition(); + /** + * The meta object literal for the '<em><b>X</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute AGV_POSITION__X = eINSTANCE.getAgvPosition_X(); + /** + * The meta object literal for the '<em><b>Y</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute AGV_POSITION__Y = eINSTANCE.getAgvPosition_Y(); + /** + * The meta object literal for the '<em><b>Theta</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute AGV_POSITION__THETA = eINSTANCE.getAgvPosition_Theta(); + /** + * The meta object literal for the '<em><b>Map Id</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute AGV_POSITION__MAP_ID = eINSTANCE.getAgvPosition_MapId(); + /** + * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.LoadImpl <em>Load</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.LoadImpl + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl#getLoad() + * @generated + */ + EClass LOAD = eINSTANCE.getLoad(); + /** + * The meta object literal for the '<em><b>Load Id</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute LOAD__LOAD_ID = eINSTANCE.getLoad_LoadId(); + + } + +} //VDA5050Package diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/AgvPositionImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/AgvPositionImpl.java new file mode 100644 index 0000000..a9a32cf --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/AgvPositionImpl.java @@ -0,0 +1,327 @@ +/** + */ +package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl; + +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Agv Position</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvPositionImpl#getX <em>X</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvPositionImpl#getY <em>Y</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvPositionImpl#getTheta <em>Theta</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvPositionImpl#getMapId <em>Map Id</em>}</li> + * </ul> + * + * @generated + */ +public class AgvPositionImpl extends MinimalEObjectImpl.Container implements AgvPosition { + /** + * The default value of the '{@link #getX() <em>X</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getX() + * @generated + * @ordered + */ + protected static final float X_EDEFAULT = 0.0F; + + /** + * The cached value of the '{@link #getX() <em>X</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getX() + * @generated + * @ordered + */ + protected float x = X_EDEFAULT; + + /** + * The default value of the '{@link #getY() <em>Y</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getY() + * @generated + * @ordered + */ + protected static final float Y_EDEFAULT = 0.0F; + + /** + * The cached value of the '{@link #getY() <em>Y</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getY() + * @generated + * @ordered + */ + protected float y = Y_EDEFAULT; + + /** + * The default value of the '{@link #getTheta() <em>Theta</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTheta() + * @generated + * @ordered + */ + protected static final float THETA_EDEFAULT = 0.0F; + + /** + * The cached value of the '{@link #getTheta() <em>Theta</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTheta() + * @generated + * @ordered + */ + protected float theta = THETA_EDEFAULT; + + /** + * The default value of the '{@link #getMapId() <em>Map Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMapId() + * @generated + * @ordered + */ + protected static final String MAP_ID_EDEFAULT = null; + + /** + * The cached value of the '{@link #getMapId() <em>Map Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMapId() + * @generated + * @ordered + */ + protected String mapId = MAP_ID_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected AgvPositionImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return VDA5050Package.Literals.AGV_POSITION; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public float getX() { + return x; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setX(float newX) { + float oldX = x; + x = newX; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.AGV_POSITION__X, oldX, x)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public float getY() { + return y; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setY(float newY) { + float oldY = y; + y = newY; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.AGV_POSITION__Y, oldY, y)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public float getTheta() { + return theta; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTheta(float newTheta) { + float oldTheta = theta; + theta = newTheta; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.AGV_POSITION__THETA, oldTheta, theta)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getMapId() { + return mapId; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setMapId(String newMapId) { + String oldMapId = mapId; + mapId = newMapId; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.AGV_POSITION__MAP_ID, oldMapId, + mapId)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case VDA5050Package.AGV_POSITION__X: + return getX(); + case VDA5050Package.AGV_POSITION__Y: + return getY(); + case VDA5050Package.AGV_POSITION__THETA: + return getTheta(); + case VDA5050Package.AGV_POSITION__MAP_ID: + return getMapId(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case VDA5050Package.AGV_POSITION__X: + setX((Float) newValue); + return; + case VDA5050Package.AGV_POSITION__Y: + setY((Float) newValue); + return; + case VDA5050Package.AGV_POSITION__THETA: + setTheta((Float) newValue); + return; + case VDA5050Package.AGV_POSITION__MAP_ID: + setMapId((String) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case VDA5050Package.AGV_POSITION__X: + setX(X_EDEFAULT); + return; + case VDA5050Package.AGV_POSITION__Y: + setY(Y_EDEFAULT); + return; + case VDA5050Package.AGV_POSITION__THETA: + setTheta(THETA_EDEFAULT); + return; + case VDA5050Package.AGV_POSITION__MAP_ID: + setMapId(MAP_ID_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case VDA5050Package.AGV_POSITION__X: + return x != X_EDEFAULT; + case VDA5050Package.AGV_POSITION__Y: + return y != Y_EDEFAULT; + case VDA5050Package.AGV_POSITION__THETA: + return theta != THETA_EDEFAULT; + case VDA5050Package.AGV_POSITION__MAP_ID: + return MAP_ID_EDEFAULT == null ? mapId != null : !MAP_ID_EDEFAULT.equals(mapId); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (x: "); + result.append(x); + result.append(", y: "); + result.append(y); + result.append(", theta: "); + result.append(theta); + result.append(", mapId: "); + result.append(mapId); + result.append(')'); + return result.toString(); + } + +} //AgvPositionImpl diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/AgvStateImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/AgvStateImpl.java new file mode 100644 index 0000000..4d93b8e --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/AgvStateImpl.java @@ -0,0 +1,538 @@ +/** + */ +package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl; + +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Agv State</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl#getTimeStamp <em>Time Stamp</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl#getSerialNumber <em>Serial Number</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl#getLastNodeId <em>Last Node Id</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl#getBatteryState <em>Battery State</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl#getErrors <em>Errors</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl#getAgvposition <em>Agvposition</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl#getLoads <em>Loads</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl#getManufacturer <em>Manufacturer</em>}</li> + * </ul> + * + * @generated + */ +public class AgvStateImpl extends MinimalEObjectImpl.Container implements AgvState { + /** + * The default value of the '{@link #getTimeStamp() <em>Time Stamp</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTimeStamp() + * @generated + * @ordered + */ + protected static final String TIME_STAMP_EDEFAULT = null; + + /** + * The cached value of the '{@link #getTimeStamp() <em>Time Stamp</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTimeStamp() + * @generated + * @ordered + */ + protected String timeStamp = TIME_STAMP_EDEFAULT; + + /** + * The default value of the '{@link #getSerialNumber() <em>Serial Number</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSerialNumber() + * @generated + * @ordered + */ + protected static final String SERIAL_NUMBER_EDEFAULT = null; + + /** + * The cached value of the '{@link #getSerialNumber() <em>Serial Number</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSerialNumber() + * @generated + * @ordered + */ + protected String serialNumber = SERIAL_NUMBER_EDEFAULT; + + /** + * The default value of the '{@link #getLastNodeId() <em>Last Node Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLastNodeId() + * @generated + * @ordered + */ + protected static final String LAST_NODE_ID_EDEFAULT = null; + + /** + * The cached value of the '{@link #getLastNodeId() <em>Last Node Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLastNodeId() + * @generated + * @ordered + */ + protected String lastNodeId = LAST_NODE_ID_EDEFAULT; + + /** + * The cached value of the '{@link #getBatteryState() <em>Battery State</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getBatteryState() + * @generated + * @ordered + */ + protected BatteryState batteryState; + + /** + * The cached value of the '{@link #getErrors() <em>Errors</em>}' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getErrors() + * @generated + * @ordered + */ + protected EList<ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error> errors; + + /** + * The cached value of the '{@link #getAgvposition() <em>Agvposition</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getAgvposition() + * @generated + * @ordered + */ + protected AgvPosition agvposition; + + /** + * The cached value of the '{@link #getLoads() <em>Loads</em>}' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLoads() + * @generated + * @ordered + */ + protected EList<Load> loads; + + /** + * The default value of the '{@link #getManufacturer() <em>Manufacturer</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getManufacturer() + * @generated + * @ordered + */ + protected static final String MANUFACTURER_EDEFAULT = null; + + /** + * The cached value of the '{@link #getManufacturer() <em>Manufacturer</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getManufacturer() + * @generated + * @ordered + */ + protected String manufacturer = MANUFACTURER_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected AgvStateImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return VDA5050Package.Literals.AGV_STATE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getTimeStamp() { + return timeStamp; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTimeStamp(String newTimeStamp) { + String oldTimeStamp = timeStamp; + timeStamp = newTimeStamp; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.AGV_STATE__TIME_STAMP, oldTimeStamp, + timeStamp)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getSerialNumber() { + return serialNumber; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setSerialNumber(String newSerialNumber) { + String oldSerialNumber = serialNumber; + serialNumber = newSerialNumber; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.AGV_STATE__SERIAL_NUMBER, + oldSerialNumber, serialNumber)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getLastNodeId() { + return lastNodeId; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setLastNodeId(String newLastNodeId) { + String oldLastNodeId = lastNodeId; + lastNodeId = newLastNodeId; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.AGV_STATE__LAST_NODE_ID, oldLastNodeId, + lastNodeId)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public BatteryState getBatteryState() { + if (batteryState != null && batteryState.eIsProxy()) { + InternalEObject oldBatteryState = (InternalEObject) batteryState; + batteryState = (BatteryState) eResolveProxy(oldBatteryState); + if (batteryState != oldBatteryState) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, VDA5050Package.AGV_STATE__BATTERY_STATE, + oldBatteryState, batteryState)); + } + } + return batteryState; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public BatteryState basicGetBatteryState() { + return batteryState; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setBatteryState(BatteryState newBatteryState) { + BatteryState oldBatteryState = batteryState; + batteryState = newBatteryState; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.AGV_STATE__BATTERY_STATE, + oldBatteryState, batteryState)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error> getErrors() { + if (errors == null) { + errors = new EObjectResolvingEList<ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error>( + ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error.class, this, + VDA5050Package.AGV_STATE__ERRORS); + } + return errors; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public AgvPosition getAgvposition() { + if (agvposition != null && agvposition.eIsProxy()) { + InternalEObject oldAgvposition = (InternalEObject) agvposition; + agvposition = (AgvPosition) eResolveProxy(oldAgvposition); + if (agvposition != oldAgvposition) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, VDA5050Package.AGV_STATE__AGVPOSITION, + oldAgvposition, agvposition)); + } + } + return agvposition; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public AgvPosition basicGetAgvposition() { + return agvposition; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setAgvposition(AgvPosition newAgvposition) { + AgvPosition oldAgvposition = agvposition; + agvposition = newAgvposition; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.AGV_STATE__AGVPOSITION, oldAgvposition, + agvposition)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<Load> getLoads() { + if (loads == null) { + loads = new EObjectResolvingEList<Load>(Load.class, this, VDA5050Package.AGV_STATE__LOADS); + } + return loads; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getManufacturer() { + return manufacturer; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setManufacturer(String newManufacturer) { + String oldManufacturer = manufacturer; + manufacturer = newManufacturer; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.AGV_STATE__MANUFACTURER, + oldManufacturer, manufacturer)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case VDA5050Package.AGV_STATE__TIME_STAMP: + return getTimeStamp(); + case VDA5050Package.AGV_STATE__SERIAL_NUMBER: + return getSerialNumber(); + case VDA5050Package.AGV_STATE__LAST_NODE_ID: + return getLastNodeId(); + case VDA5050Package.AGV_STATE__BATTERY_STATE: + if (resolve) + return getBatteryState(); + return basicGetBatteryState(); + case VDA5050Package.AGV_STATE__ERRORS: + return getErrors(); + case VDA5050Package.AGV_STATE__AGVPOSITION: + if (resolve) + return getAgvposition(); + return basicGetAgvposition(); + case VDA5050Package.AGV_STATE__LOADS: + return getLoads(); + case VDA5050Package.AGV_STATE__MANUFACTURER: + return getManufacturer(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case VDA5050Package.AGV_STATE__TIME_STAMP: + setTimeStamp((String) newValue); + return; + case VDA5050Package.AGV_STATE__SERIAL_NUMBER: + setSerialNumber((String) newValue); + return; + case VDA5050Package.AGV_STATE__LAST_NODE_ID: + setLastNodeId((String) newValue); + return; + case VDA5050Package.AGV_STATE__BATTERY_STATE: + setBatteryState((BatteryState) newValue); + return; + case VDA5050Package.AGV_STATE__ERRORS: + getErrors().clear(); + getErrors().addAll( + (Collection<? extends ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error>) newValue); + return; + case VDA5050Package.AGV_STATE__AGVPOSITION: + setAgvposition((AgvPosition) newValue); + return; + case VDA5050Package.AGV_STATE__LOADS: + getLoads().clear(); + getLoads().addAll((Collection<? extends Load>) newValue); + return; + case VDA5050Package.AGV_STATE__MANUFACTURER: + setManufacturer((String) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case VDA5050Package.AGV_STATE__TIME_STAMP: + setTimeStamp(TIME_STAMP_EDEFAULT); + return; + case VDA5050Package.AGV_STATE__SERIAL_NUMBER: + setSerialNumber(SERIAL_NUMBER_EDEFAULT); + return; + case VDA5050Package.AGV_STATE__LAST_NODE_ID: + setLastNodeId(LAST_NODE_ID_EDEFAULT); + return; + case VDA5050Package.AGV_STATE__BATTERY_STATE: + setBatteryState((BatteryState) null); + return; + case VDA5050Package.AGV_STATE__ERRORS: + getErrors().clear(); + return; + case VDA5050Package.AGV_STATE__AGVPOSITION: + setAgvposition((AgvPosition) null); + return; + case VDA5050Package.AGV_STATE__LOADS: + getLoads().clear(); + return; + case VDA5050Package.AGV_STATE__MANUFACTURER: + setManufacturer(MANUFACTURER_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case VDA5050Package.AGV_STATE__TIME_STAMP: + return TIME_STAMP_EDEFAULT == null ? timeStamp != null : !TIME_STAMP_EDEFAULT.equals(timeStamp); + case VDA5050Package.AGV_STATE__SERIAL_NUMBER: + return SERIAL_NUMBER_EDEFAULT == null ? serialNumber != null : !SERIAL_NUMBER_EDEFAULT.equals(serialNumber); + case VDA5050Package.AGV_STATE__LAST_NODE_ID: + return LAST_NODE_ID_EDEFAULT == null ? lastNodeId != null : !LAST_NODE_ID_EDEFAULT.equals(lastNodeId); + case VDA5050Package.AGV_STATE__BATTERY_STATE: + return batteryState != null; + case VDA5050Package.AGV_STATE__ERRORS: + return errors != null && !errors.isEmpty(); + case VDA5050Package.AGV_STATE__AGVPOSITION: + return agvposition != null; + case VDA5050Package.AGV_STATE__LOADS: + return loads != null && !loads.isEmpty(); + case VDA5050Package.AGV_STATE__MANUFACTURER: + return MANUFACTURER_EDEFAULT == null ? manufacturer != null : !MANUFACTURER_EDEFAULT.equals(manufacturer); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (timeStamp: "); + result.append(timeStamp); + result.append(", serialNumber: "); + result.append(serialNumber); + result.append(", lastNodeId: "); + result.append(lastNodeId); + result.append(", manufacturer: "); + result.append(manufacturer); + result.append(')'); + return result.toString(); + } + +} //AgvStateImpl diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/BatteryStateImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/BatteryStateImpl.java new file mode 100644 index 0000000..4c9100b --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/BatteryStateImpl.java @@ -0,0 +1,165 @@ +/** + */ +package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl; + +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Battery State</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.BatteryStateImpl#getBatteryCharge <em>Battery Charge</em>}</li> + * </ul> + * + * @generated + */ +public class BatteryStateImpl extends MinimalEObjectImpl.Container implements BatteryState { + /** + * The default value of the '{@link #getBatteryCharge() <em>Battery Charge</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getBatteryCharge() + * @generated + * @ordered + */ + protected static final float BATTERY_CHARGE_EDEFAULT = 0.0F; + + /** + * The cached value of the '{@link #getBatteryCharge() <em>Battery Charge</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getBatteryCharge() + * @generated + * @ordered + */ + protected float batteryCharge = BATTERY_CHARGE_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected BatteryStateImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return VDA5050Package.Literals.BATTERY_STATE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public float getBatteryCharge() { + return batteryCharge; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setBatteryCharge(float newBatteryCharge) { + float oldBatteryCharge = batteryCharge; + batteryCharge = newBatteryCharge; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.BATTERY_STATE__BATTERY_CHARGE, + oldBatteryCharge, batteryCharge)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case VDA5050Package.BATTERY_STATE__BATTERY_CHARGE: + return getBatteryCharge(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case VDA5050Package.BATTERY_STATE__BATTERY_CHARGE: + setBatteryCharge((Float) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case VDA5050Package.BATTERY_STATE__BATTERY_CHARGE: + setBatteryCharge(BATTERY_CHARGE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case VDA5050Package.BATTERY_STATE__BATTERY_CHARGE: + return batteryCharge != BATTERY_CHARGE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (batteryCharge: "); + result.append(batteryCharge); + result.append(')'); + return result.toString(); + } + +} //BatteryStateImpl diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/ErrorImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/ErrorImpl.java new file mode 100644 index 0000000..f59ff42 --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/ErrorImpl.java @@ -0,0 +1,165 @@ +/** + */ +package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl; + +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Error</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.ErrorImpl#getErrorType <em>Error Type</em>}</li> + * </ul> + * + * @generated + */ +public class ErrorImpl extends MinimalEObjectImpl.Container + implements ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error { + /** + * The default value of the '{@link #getErrorType() <em>Error Type</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getErrorType() + * @generated + * @ordered + */ + protected static final String ERROR_TYPE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getErrorType() <em>Error Type</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getErrorType() + * @generated + * @ordered + */ + protected String errorType = ERROR_TYPE_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ErrorImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return VDA5050Package.Literals.ERROR; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getErrorType() { + return errorType; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setErrorType(String newErrorType) { + String oldErrorType = errorType; + errorType = newErrorType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.ERROR__ERROR_TYPE, oldErrorType, + errorType)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case VDA5050Package.ERROR__ERROR_TYPE: + return getErrorType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case VDA5050Package.ERROR__ERROR_TYPE: + setErrorType((String) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case VDA5050Package.ERROR__ERROR_TYPE: + setErrorType(ERROR_TYPE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case VDA5050Package.ERROR__ERROR_TYPE: + return ERROR_TYPE_EDEFAULT == null ? errorType != null : !ERROR_TYPE_EDEFAULT.equals(errorType); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (errorType: "); + result.append(errorType); + result.append(')'); + return result.toString(); + } + +} //ErrorImpl diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/LoadImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/LoadImpl.java new file mode 100644 index 0000000..166711a --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/LoadImpl.java @@ -0,0 +1,164 @@ +/** + */ +package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl; + +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Load</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.LoadImpl#getLoadId <em>Load Id</em>}</li> + * </ul> + * + * @generated + */ +public class LoadImpl extends MinimalEObjectImpl.Container implements Load { + /** + * The default value of the '{@link #getLoadId() <em>Load Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLoadId() + * @generated + * @ordered + */ + protected static final String LOAD_ID_EDEFAULT = null; + + /** + * The cached value of the '{@link #getLoadId() <em>Load Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLoadId() + * @generated + * @ordered + */ + protected String loadId = LOAD_ID_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected LoadImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return VDA5050Package.Literals.LOAD; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getLoadId() { + return loadId; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setLoadId(String newLoadId) { + String oldLoadId = loadId; + loadId = newLoadId; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.LOAD__LOAD_ID, oldLoadId, loadId)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case VDA5050Package.LOAD__LOAD_ID: + return getLoadId(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case VDA5050Package.LOAD__LOAD_ID: + setLoadId((String) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case VDA5050Package.LOAD__LOAD_ID: + setLoadId(LOAD_ID_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case VDA5050Package.LOAD__LOAD_ID: + return LOAD_ID_EDEFAULT == null ? loadId != null : !LOAD_ID_EDEFAULT.equals(loadId); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (loadId: "); + result.append(loadId); + result.append(')'); + return result.toString(); + } + +} //LoadImpl diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/VDA5050FactoryImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/VDA5050FactoryImpl.java new file mode 100644 index 0000000..261fd29 --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/VDA5050FactoryImpl.java @@ -0,0 +1,150 @@ +/** + */ +package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl; + +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Factory; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.*; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.impl.EFactoryImpl; + +import org.eclipse.emf.ecore.plugin.EcorePlugin; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Factory</b>. + * <!-- end-user-doc --> + * @generated + */ +public class VDA5050FactoryImpl extends EFactoryImpl implements VDA5050Factory { + /** + * Creates the default factory implementation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static VDA5050Factory init() { + try { + VDA5050Factory theVDA5050Factory = (VDA5050Factory) EPackage.Registry.INSTANCE + .getEFactory(VDA5050Package.eNS_URI); + if (theVDA5050Factory != null) { + return theVDA5050Factory; + } + } catch (Exception exception) { + EcorePlugin.INSTANCE.log(exception); + } + return new VDA5050FactoryImpl(); + } + + /** + * Creates an instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public VDA5050FactoryImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EObject create(EClass eClass) { + switch (eClass.getClassifierID()) { + case VDA5050Package.AGV_STATE: + return createAgvState(); + case VDA5050Package.BATTERY_STATE: + return createBatteryState(); + case VDA5050Package.ERROR: + return createError(); + case VDA5050Package.AGV_POSITION: + return createAgvPosition(); + case VDA5050Package.LOAD: + return createLoad(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public AgvState createAgvState() { + AgvStateImpl agvState = new AgvStateImpl(); + return agvState; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public BatteryState createBatteryState() { + BatteryStateImpl batteryState = new BatteryStateImpl(); + return batteryState; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error createError() { + ErrorImpl error = new ErrorImpl(); + return error; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public AgvPosition createAgvPosition() { + AgvPositionImpl agvPosition = new AgvPositionImpl(); + return agvPosition; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Load createLoad() { + LoadImpl load = new LoadImpl(); + return load; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public VDA5050Package getVDA5050Package() { + return (VDA5050Package) getEPackage(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @deprecated + * @generated + */ + @Deprecated + public static VDA5050Package getPackage() { + return VDA5050Package.eINSTANCE; + } + +} //VDA5050FactoryImpl diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/VDA5050PackageImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/VDA5050PackageImpl.java new file mode 100644 index 0000000..09f7cf3 --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/VDA5050PackageImpl.java @@ -0,0 +1,482 @@ +/** + */ +package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl; + +import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage; + +import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl; + +import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage; + +import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage; + +import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl; + +import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage; + +import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.ToozPackageImpl; + +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Factory; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package; + +import ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.impl.EPackageImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Package</b>. + * <!-- end-user-doc --> + * @generated + */ +public class VDA5050PackageImpl extends EPackageImpl implements VDA5050Package { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass agvStateEClass = null; + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass batteryStateEClass = null; + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass errorEClass = null; + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass agvPositionEClass = null; + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass loadEClass = null; + + /** + * Creates an instance of the model <b>Package</b>, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + * <p>Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#eNS_URI + * @see #init() + * @generated + */ + private VDA5050PackageImpl() { + super(eNS_URI, VDA5050Factory.eINSTANCE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends. + * + * <p>This method is used to initialize {@link VDA5050Package#eINSTANCE} when that field is accessed. + * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static VDA5050Package init() { + if (isInited) + return (VDA5050Package) EPackage.Registry.INSTANCE.getEPackage(VDA5050Package.eNS_URI); + + // Obtain or create and register package + Object registeredVDA5050Package = EPackage.Registry.INSTANCE.get(eNS_URI); + VDA5050PackageImpl theVDA5050Package = registeredVDA5050Package instanceof VDA5050PackageImpl + ? (VDA5050PackageImpl) registeredVDA5050Package + : new VDA5050PackageImpl(); + + isInited = true; + + // Obtain or create and register interdependencies + Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(IPos_DatamodelPackage.eNS_URI); + IPos_DatamodelPackageImpl theIPos_DatamodelPackage = (IPos_DatamodelPackageImpl) (registeredPackage instanceof IPos_DatamodelPackageImpl + ? registeredPackage + : IPos_DatamodelPackage.eINSTANCE); + registeredPackage = EPackage.Registry.INSTANCE.getEPackage(OFBizPackage.eNS_URI); + OFBizPackageImpl theOFBizPackage = (OFBizPackageImpl) (registeredPackage instanceof OFBizPackageImpl + ? registeredPackage + : OFBizPackage.eINSTANCE); + registeredPackage = EPackage.Registry.INSTANCE.getEPackage(IPosDevKitPackage.eNS_URI); + IPosDevKitPackageImpl theIPosDevKitPackage = (IPosDevKitPackageImpl) (registeredPackage instanceof IPosDevKitPackageImpl + ? registeredPackage + : IPosDevKitPackage.eINSTANCE); + registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ToozPackage.eNS_URI); + ToozPackageImpl theToozPackage = (ToozPackageImpl) (registeredPackage instanceof ToozPackageImpl + ? registeredPackage + : ToozPackage.eINSTANCE); + + // Create package meta-data objects + theVDA5050Package.createPackageContents(); + theIPos_DatamodelPackage.createPackageContents(); + theOFBizPackage.createPackageContents(); + theIPosDevKitPackage.createPackageContents(); + theToozPackage.createPackageContents(); + + // Initialize created meta-data + theVDA5050Package.initializePackageContents(); + theIPos_DatamodelPackage.initializePackageContents(); + theOFBizPackage.initializePackageContents(); + theIPosDevKitPackage.initializePackageContents(); + theToozPackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theVDA5050Package.freeze(); + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(VDA5050Package.eNS_URI, theVDA5050Package); + return theVDA5050Package; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getAgvState() { + return agvStateEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getAgvState_TimeStamp() { + return (EAttribute) agvStateEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getAgvState_SerialNumber() { + return (EAttribute) agvStateEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getAgvState_LastNodeId() { + return (EAttribute) agvStateEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getAgvState_BatteryState() { + return (EReference) agvStateEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getAgvState_Errors() { + return (EReference) agvStateEClass.getEStructuralFeatures().get(4); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getAgvState_Agvposition() { + return (EReference) agvStateEClass.getEStructuralFeatures().get(5); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getAgvState_Loads() { + return (EReference) agvStateEClass.getEStructuralFeatures().get(6); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getAgvState_Manufacturer() { + return (EAttribute) agvStateEClass.getEStructuralFeatures().get(7); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getBatteryState() { + return batteryStateEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getBatteryState_BatteryCharge() { + return (EAttribute) batteryStateEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getError() { + return errorEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getError_ErrorType() { + return (EAttribute) errorEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getAgvPosition() { + return agvPositionEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getAgvPosition_X() { + return (EAttribute) agvPositionEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getAgvPosition_Y() { + return (EAttribute) agvPositionEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getAgvPosition_Theta() { + return (EAttribute) agvPositionEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getAgvPosition_MapId() { + return (EAttribute) agvPositionEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getLoad() { + return loadEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getLoad_LoadId() { + return (EAttribute) loadEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public VDA5050Factory getVDA5050Factory() { + return (VDA5050Factory) getEFactoryInstance(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createPackageContents() { + if (isCreated) + return; + isCreated = true; + + // Create classes and their features + agvStateEClass = createEClass(AGV_STATE); + createEAttribute(agvStateEClass, AGV_STATE__TIME_STAMP); + createEAttribute(agvStateEClass, AGV_STATE__SERIAL_NUMBER); + createEAttribute(agvStateEClass, AGV_STATE__LAST_NODE_ID); + createEReference(agvStateEClass, AGV_STATE__BATTERY_STATE); + createEReference(agvStateEClass, AGV_STATE__ERRORS); + createEReference(agvStateEClass, AGV_STATE__AGVPOSITION); + createEReference(agvStateEClass, AGV_STATE__LOADS); + createEAttribute(agvStateEClass, AGV_STATE__MANUFACTURER); + + batteryStateEClass = createEClass(BATTERY_STATE); + createEAttribute(batteryStateEClass, BATTERY_STATE__BATTERY_CHARGE); + + errorEClass = createEClass(ERROR); + createEAttribute(errorEClass, ERROR__ERROR_TYPE); + + agvPositionEClass = createEClass(AGV_POSITION); + createEAttribute(agvPositionEClass, AGV_POSITION__X); + createEAttribute(agvPositionEClass, AGV_POSITION__Y); + createEAttribute(agvPositionEClass, AGV_POSITION__THETA); + createEAttribute(agvPositionEClass, AGV_POSITION__MAP_ID); + + loadEClass = createEClass(LOAD); + createEAttribute(loadEClass, LOAD__LOAD_ID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void initializePackageContents() { + if (isInitialized) + return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + + // Initialize classes, features, and operations; add parameters + initEClass(agvStateEClass, AgvState.class, "AgvState", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getAgvState_TimeStamp(), ecorePackage.getEString(), "timeStamp", null, 0, 1, AgvState.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getAgvState_SerialNumber(), ecorePackage.getEString(), "serialNumber", null, 0, 1, + AgvState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + initEAttribute(getAgvState_LastNodeId(), ecorePackage.getEString(), "lastNodeId", null, 0, 1, AgvState.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getAgvState_BatteryState(), this.getBatteryState(), null, "batteryState", null, 0, 1, + AgvState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getAgvState_Errors(), this.getError(), null, "errors", null, 0, -1, AgvState.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getAgvState_Agvposition(), this.getAgvPosition(), null, "agvposition", null, 0, 1, + AgvState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getAgvState_Loads(), this.getLoad(), null, "loads", null, 0, -1, AgvState.class, !IS_TRANSIENT, + !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, + IS_ORDERED); + initEAttribute(getAgvState_Manufacturer(), ecorePackage.getEString(), "manufacturer", null, 0, 1, + AgvState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + + initEClass(batteryStateEClass, BatteryState.class, "BatteryState", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getBatteryState_BatteryCharge(), ecorePackage.getEFloat(), "batteryCharge", null, 0, 1, + BatteryState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + + initEClass(errorEClass, ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error.class, "Error", + !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getError_ErrorType(), ecorePackage.getEString(), "errorType", null, 0, 1, + ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error.class, !IS_TRANSIENT, !IS_VOLATILE, + IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(agvPositionEClass, AgvPosition.class, "AgvPosition", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getAgvPosition_X(), ecorePackage.getEFloat(), "x", null, 0, 1, AgvPosition.class, !IS_TRANSIENT, + !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getAgvPosition_Y(), ecorePackage.getEFloat(), "y", null, 0, 1, AgvPosition.class, !IS_TRANSIENT, + !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getAgvPosition_Theta(), ecorePackage.getEFloat(), "theta", null, 0, 1, AgvPosition.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getAgvPosition_MapId(), ecorePackage.getEString(), "mapId", null, 0, 1, AgvPosition.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(loadEClass, Load.class, "Load", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getLoad_LoadId(), ecorePackage.getEString(), "loadId", null, 0, 1, Load.class, !IS_TRANSIENT, + !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + } + +} //VDA5050PackageImpl diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/util/VDA5050AdapterFactory.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/util/VDA5050AdapterFactory.java new file mode 100644 index 0000000..85a1c4e --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/util/VDA5050AdapterFactory.java @@ -0,0 +1,200 @@ +/** + */ +package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.util; + +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.*; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; + +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * The <b>Adapter Factory</b> for the model. + * It provides an adapter <code>createXXX</code> method for each class of the model. + * <!-- end-user-doc --> + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package + * @generated + */ +public class VDA5050AdapterFactory extends AdapterFactoryImpl { + /** + * The cached model package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static VDA5050Package modelPackage; + + /** + * Creates an instance of the adapter factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public VDA5050AdapterFactory() { + if (modelPackage == null) { + modelPackage = VDA5050Package.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * <!-- begin-user-doc --> + * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model. + * <!-- end-user-doc --> + * @return whether this factory is applicable for the type of the object. + * @generated + */ + @Override + public boolean isFactoryForType(Object object) { + if (object == modelPackage) { + return true; + } + if (object instanceof EObject) { + return ((EObject) object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch that delegates to the <code>createXXX</code> methods. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected VDA5050Switch<Adapter> modelSwitch = new VDA5050Switch<Adapter>() { + @Override + public Adapter caseAgvState(AgvState object) { + return createAgvStateAdapter(); + } + + @Override + public Adapter caseBatteryState(BatteryState object) { + return createBatteryStateAdapter(); + } + + @Override + public Adapter caseError(ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error object) { + return createErrorAdapter(); + } + + @Override + public Adapter caseAgvPosition(AgvPosition object) { + return createAgvPositionAdapter(); + } + + @Override + public Adapter caseLoad(Load object) { + return createLoadAdapter(); + } + + @Override + public Adapter defaultCase(EObject object) { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the <code>target</code>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param target the object to adapt. + * @return the adapter for the <code>target</code>. + * @generated + */ + @Override + public Adapter createAdapter(Notifier target) { + return modelSwitch.doSwitch((EObject) target); + } + + /** + * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState <em>Agv State</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState + * @generated + */ + public Adapter createAgvStateAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState <em>Battery State</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState + * @generated + */ + public Adapter createBatteryStateAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error <em>Error</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error + * @generated + */ + public Adapter createErrorAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition <em>Agv Position</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition + * @generated + */ + public Adapter createAgvPositionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load <em>Load</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load + * @generated + */ + public Adapter createLoadAdapter() { + return null; + } + + /** + * Creates a new adapter for the default case. + * <!-- begin-user-doc --> + * This default implementation returns null. + * <!-- end-user-doc --> + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() { + return null; + } + +} //VDA5050AdapterFactory diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/util/VDA5050Switch.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/util/VDA5050Switch.java new file mode 100644 index 0000000..571ed37 --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/util/VDA5050Switch.java @@ -0,0 +1,205 @@ +/** + */ +package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.util; + +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.*; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.util.Switch; + +/** + * <!-- begin-user-doc --> + * The <b>Switch</b> for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the <code>caseXXX</code> method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * <!-- end-user-doc --> + * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package + * @generated + */ +public class VDA5050Switch<T> extends Switch<T> { + /** + * The cached model package + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static VDA5050Package modelPackage; + + /** + * Creates an instance of the switch. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public VDA5050Switch() { + if (modelPackage == null) { + modelPackage = VDA5050Package.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param ePackage the package in question. + * @return whether this is a switch for the given package. + * @generated + */ + @Override + protected boolean isSwitchFor(EPackage ePackage) { + return ePackage == modelPackage; + } + + /** + * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the first non-null result returned by a <code>caseXXX</code> call. + * @generated + */ + @Override + protected T doSwitch(int classifierID, EObject theEObject) { + switch (classifierID) { + case VDA5050Package.AGV_STATE: { + AgvState agvState = (AgvState) theEObject; + T result = caseAgvState(agvState); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case VDA5050Package.BATTERY_STATE: { + BatteryState batteryState = (BatteryState) theEObject; + T result = caseBatteryState(batteryState); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case VDA5050Package.ERROR: { + ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error error = (ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error) theEObject; + T result = caseError(error); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case VDA5050Package.AGV_POSITION: { + AgvPosition agvPosition = (AgvPosition) theEObject; + T result = caseAgvPosition(agvPosition); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case VDA5050Package.LOAD: { + Load load = (Load) theEObject; + T result = caseLoad(load); + if (result == null) + result = defaultCase(theEObject); + return result; + } + default: + return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Agv State</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Agv State</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAgvState(AgvState object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Battery State</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Battery State</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBatteryState(BatteryState object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Error</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Error</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseError(ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Agv Position</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Agv Position</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAgvPosition(AgvPosition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Load</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Load</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLoad(Load object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>EObject</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + @Override + public T defaultCase(EObject object) { + return null; + } + +} //VDA5050Switch diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelFactoryImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelFactoryImpl.java index b4aedf7..98c86bf 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelFactoryImpl.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelFactoryImpl.java @@ -5,6 +5,8 @@ package ipos.project.DataModellntegration.iPos_Datamodel.impl; import ipos.project.DataModellntegration.iPos_Datamodel.*; import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedList; import java.util.List; import org.eclipse.emf.ecore.EClass; @@ -138,6 +140,8 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data return createZoneDescriptor(); case IPos_DatamodelPackage.DATA_STORAGE_QUERY_RESPONSE: return createDataStorageQueryResponse(); + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT: + return createMessageReceivedEvent(); default: throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); } @@ -161,6 +165,10 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data return createBooleanListFromString(eDataType, initialValue); case IPos_DatamodelPackage.FLOAT_ARRAY: return createFloatArrayFromString(eDataType, initialValue); + case IPos_DatamodelPackage.BYTE_ARRAY: + return createByteArrayFromString(eDataType, initialValue); + case IPos_DatamodelPackage.LIST_OF_STRING_MAPS: + return createListOfStringMapsFromString(eDataType, initialValue); default: throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); } @@ -184,6 +192,10 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data return convertBooleanListToString(eDataType, instanceValue); case IPos_DatamodelPackage.FLOAT_ARRAY: return convertFloatArrayToString(eDataType, instanceValue); + case IPos_DatamodelPackage.BYTE_ARRAY: + return convertByteArrayToString(eDataType, instanceValue); + case IPos_DatamodelPackage.LIST_OF_STRING_MAPS: + return convertListOfStringMapsToString(eDataType, instanceValue); default: throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); } @@ -579,6 +591,16 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data return dataStorageQueryResponse; } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public MessageReceivedEvent createMessageReceivedEvent() { + MessageReceivedEventImpl messageReceivedEvent = new MessageReceivedEventImpl(); + return messageReceivedEvent; + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -673,6 +695,44 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data return super.convertToString(instanceValue); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public byte[] createByteArrayFromString(EDataType eDataType, String initialValue) { + return (byte[]) super.createFromString(initialValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String convertByteArrayToString(EDataType eDataType, Object instanceValue) { + return super.convertToString(instanceValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + public LinkedList<HashMap<String, String>> createListOfStringMapsFromString(EDataType eDataType, + String initialValue) { + return (LinkedList<HashMap<String, String>>) super.createFromString(initialValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String convertListOfStringMapsToString(EDataType eDataType, Object instanceValue) { + return super.convertToString(instanceValue); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelPackageImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelPackageImpl.java index 8f36dac..349ce94 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelPackageImpl.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelPackageImpl.java @@ -22,6 +22,7 @@ import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelFactory; import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage; import ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject; import ipos.project.DataModellntegration.iPos_Datamodel.MapType; +import ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent; import ipos.project.DataModellntegration.iPos_Datamodel.MonitoringTask; import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage; @@ -45,6 +46,8 @@ import ipos.project.DataModellntegration.iPos_Datamodel.Space; import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage; import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.ToozPackageImpl; import ipos.project.DataModellntegration.iPos_Datamodel.TrackingTask; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package; +import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl; import ipos.project.DataModellntegration.iPos_Datamodel.WGS84Point; import ipos.project.DataModellntegration.iPos_Datamodel.WorldModel; import ipos.project.DataModellntegration.iPos_Datamodel.Zone; @@ -52,6 +55,7 @@ import ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor; import ipos.project.DataModellntegration.iPos_Datamodel.ZoneMap; import java.util.ArrayList; +import java.util.LinkedList; import java.util.List; import org.eclipse.emf.ecore.EAttribute; @@ -345,6 +349,13 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data */ private EClass dataStorageQueryResponseEClass = null; + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass messageReceivedEventEClass = null; + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -380,6 +391,20 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data */ private EDataType floatArrayEDataType = null; + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EDataType byteArrayEDataType = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EDataType listOfStringMapsEDataType = null; + /** * Creates an instance of the model <b>Package</b>, registered with * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package @@ -446,18 +471,24 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data ToozPackageImpl theToozPackage = (ToozPackageImpl) (registeredPackage instanceof ToozPackageImpl ? registeredPackage : ToozPackage.eINSTANCE); + registeredPackage = EPackage.Registry.INSTANCE.getEPackage(VDA5050Package.eNS_URI); + VDA5050PackageImpl theVDA5050Package = (VDA5050PackageImpl) (registeredPackage instanceof VDA5050PackageImpl + ? registeredPackage + : VDA5050Package.eINSTANCE); // Create package meta-data objects theIPos_DatamodelPackage.createPackageContents(); theOFBizPackage.createPackageContents(); theIPosDevKitPackage.createPackageContents(); theToozPackage.createPackageContents(); + theVDA5050Package.createPackageContents(); // Initialize created meta-data theIPos_DatamodelPackage.initializePackageContents(); theOFBizPackage.initializePackageContents(); theIPosDevKitPackage.initializePackageContents(); theToozPackage.initializePackageContents(); + theVDA5050Package.initializePackageContents(); // Mark meta-data to indicate it can't be changed theIPos_DatamodelPackage.freeze(); @@ -1601,6 +1632,60 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data return (EAttribute) dataStorageQueryResponseEClass.getEStructuralFeatures().get(1); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getMessageReceivedEvent() { + return messageReceivedEventEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getMessageReceivedEvent_ProtocolName() { + return (EAttribute) messageReceivedEventEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getMessageReceivedEvent_SerializedMsg() { + return (EAttribute) messageReceivedEventEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getMessageReceivedEvent_AgentId() { + return (EAttribute) messageReceivedEventEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getMessageReceivedEvent_ExtractedAttributes() { + return (EAttribute) messageReceivedEventEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getMessageReceivedEvent_Timestamp() { + return (EAttribute) messageReceivedEventEClass.getEStructuralFeatures().get(4); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -1646,6 +1731,24 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data return floatArrayEDataType; } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EDataType getByteArray() { + return byteArrayEDataType; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EDataType getListOfStringMaps() { + return listOfStringMapsEDataType; + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -1840,12 +1943,21 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data createEReference(dataStorageQueryResponseEClass, DATA_STORAGE_QUERY_RESPONSE__POSITION_EVENTS); createEAttribute(dataStorageQueryResponseEClass, DATA_STORAGE_QUERY_RESPONSE__TRACKING_TASK_ID); + messageReceivedEventEClass = createEClass(MESSAGE_RECEIVED_EVENT); + createEAttribute(messageReceivedEventEClass, MESSAGE_RECEIVED_EVENT__PROTOCOL_NAME); + createEAttribute(messageReceivedEventEClass, MESSAGE_RECEIVED_EVENT__SERIALIZED_MSG); + createEAttribute(messageReceivedEventEClass, MESSAGE_RECEIVED_EVENT__AGENT_ID); + createEAttribute(messageReceivedEventEClass, MESSAGE_RECEIVED_EVENT__EXTRACTED_ATTRIBUTES); + createEAttribute(messageReceivedEventEClass, MESSAGE_RECEIVED_EVENT__TIMESTAMP); + // Create data types stringListEDataType = createEDataType(STRING_LIST); stringArrayEDataType = createEDataType(STRING_ARRAY); floatArray3dEDataType = createEDataType(FLOAT_ARRAY3D); booleanListEDataType = createEDataType(BOOLEAN_LIST); floatArrayEDataType = createEDataType(FLOAT_ARRAY); + byteArrayEDataType = createEDataType(BYTE_ARRAY); + listOfStringMapsEDataType = createEDataType(LIST_OF_STRING_MAPS); } /** @@ -1877,6 +1989,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data IPosDevKitPackage theIPosDevKitPackage = (IPosDevKitPackage) EPackage.Registry.INSTANCE .getEPackage(IPosDevKitPackage.eNS_URI); ToozPackage theToozPackage = (ToozPackage) EPackage.Registry.INSTANCE.getEPackage(ToozPackage.eNS_URI); + VDA5050Package theVDA5050Package = (VDA5050Package) EPackage.Registry.INSTANCE + .getEPackage(VDA5050Package.eNS_URI); XMLTypePackage theXMLTypePackage = (XMLTypePackage) EPackage.Registry.INSTANCE .getEPackage(XMLTypePackage.eNS_URI); @@ -1884,6 +1998,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data getESubpackages().add(theOFBizPackage); getESubpackages().add(theIPosDevKitPackage); getESubpackages().add(theToozPackage); + getESubpackages().add(theVDA5050Package); // Create type parameters @@ -2291,6 +2406,24 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data null, 0, 1, DataStorageQueryResponse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(messageReceivedEventEClass, MessageReceivedEvent.class, "MessageReceivedEvent", !IS_ABSTRACT, + !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getMessageReceivedEvent_ProtocolName(), ecorePackage.getEString(), "protocolName", null, 0, 1, + MessageReceivedEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getMessageReceivedEvent_SerializedMsg(), this.getByteArray(), "serializedMsg", null, 0, 1, + MessageReceivedEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getMessageReceivedEvent_AgentId(), ecorePackage.getEString(), "agentId", null, 0, 1, + MessageReceivedEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getMessageReceivedEvent_ExtractedAttributes(), this.getListOfStringMaps(), "extractedAttributes", + null, 0, 1, MessageReceivedEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, + !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getMessageReceivedEvent_Timestamp(), ecorePackage.getEString(), "timestamp", null, 0, 1, + MessageReceivedEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + // Initialize data types initEDataType(stringListEDataType, List.class, "StringList", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS, "java.util.List<java.lang.String>"); @@ -2302,6 +2435,10 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data !IS_GENERATED_INSTANCE_CLASS); initEDataType(floatArrayEDataType, ArrayList.class, "FloatArray", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS, "java.util.ArrayList<java.lang.Float[]>"); + initEDataType(byteArrayEDataType, byte[].class, "ByteArray", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS); + initEDataType(listOfStringMapsEDataType, LinkedList.class, "ListOfStringMaps", IS_SERIALIZABLE, + !IS_GENERATED_INSTANCE_CLASS, + "java.util.LinkedList<java.util.HashMap<java.lang.String, java.lang.String>>"); // Create resource createResource(eNS_URI); diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/LocalizableObjectImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/LocalizableObjectImpl.java index 21269c5..42ae011 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/LocalizableObjectImpl.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/LocalizableObjectImpl.java @@ -6,9 +6,7 @@ import ipos.project.DataModellntegration.iPos_Datamodel.Agent; import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage; import ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject; import ipos.project.DataModellntegration.iPos_Datamodel.Placing; - import org.eclipse.emf.common.notify.Notification; - import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.InternalEObject; @@ -264,6 +262,7 @@ public class LocalizableObjectImpl extends EntityImpl implements LocalizableObje * <!-- end-user-doc --> * @generated */ + @SuppressWarnings("unchecked") @Override public void eSet(int featureID, Object newValue) { switch (featureID) { diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/MessageReceivedEventImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/MessageReceivedEventImpl.java new file mode 100644 index 0000000..971b5cf --- /dev/null +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/MessageReceivedEventImpl.java @@ -0,0 +1,392 @@ +/** + */ +package ipos.project.DataModellntegration.iPos_Datamodel.impl; + +import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage; +import ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent; + +import java.util.HashMap; +import java.util.LinkedList; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Message Received Event</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.MessageReceivedEventImpl#getProtocolName <em>Protocol Name</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.MessageReceivedEventImpl#getSerializedMsg <em>Serialized Msg</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.MessageReceivedEventImpl#getAgentId <em>Agent Id</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.MessageReceivedEventImpl#getExtractedAttributes <em>Extracted Attributes</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.MessageReceivedEventImpl#getTimestamp <em>Timestamp</em>}</li> + * </ul> + * + * @generated + */ +public class MessageReceivedEventImpl extends MinimalEObjectImpl.Container implements MessageReceivedEvent { + /** + * The default value of the '{@link #getProtocolName() <em>Protocol Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getProtocolName() + * @generated + * @ordered + */ + protected static final String PROTOCOL_NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getProtocolName() <em>Protocol Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getProtocolName() + * @generated + * @ordered + */ + protected String protocolName = PROTOCOL_NAME_EDEFAULT; + + /** + * The default value of the '{@link #getSerializedMsg() <em>Serialized Msg</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSerializedMsg() + * @generated + * @ordered + */ + protected static final byte[] SERIALIZED_MSG_EDEFAULT = null; + + /** + * The cached value of the '{@link #getSerializedMsg() <em>Serialized Msg</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSerializedMsg() + * @generated + * @ordered + */ + protected byte[] serializedMsg = SERIALIZED_MSG_EDEFAULT; + + /** + * The default value of the '{@link #getAgentId() <em>Agent Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getAgentId() + * @generated + * @ordered + */ + protected static final String AGENT_ID_EDEFAULT = null; + + /** + * The cached value of the '{@link #getAgentId() <em>Agent Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getAgentId() + * @generated + * @ordered + */ + protected String agentId = AGENT_ID_EDEFAULT; + + /** + * The default value of the '{@link #getExtractedAttributes() <em>Extracted Attributes</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getExtractedAttributes() + * @generated + * @ordered + */ + protected static final LinkedList<HashMap<String, String>> EXTRACTED_ATTRIBUTES_EDEFAULT = null; + + /** + * The cached value of the '{@link #getExtractedAttributes() <em>Extracted Attributes</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getExtractedAttributes() + * @generated + * @ordered + */ + protected LinkedList<HashMap<String, String>> extractedAttributes = EXTRACTED_ATTRIBUTES_EDEFAULT; + + /** + * The default value of the '{@link #getTimestamp() <em>Timestamp</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTimestamp() + * @generated + * @ordered + */ + protected static final String TIMESTAMP_EDEFAULT = null; + + /** + * The cached value of the '{@link #getTimestamp() <em>Timestamp</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTimestamp() + * @generated + * @ordered + */ + protected String timestamp = TIMESTAMP_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected MessageReceivedEventImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return IPos_DatamodelPackage.Literals.MESSAGE_RECEIVED_EVENT; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getProtocolName() { + return protocolName; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setProtocolName(String newProtocolName) { + String oldProtocolName = protocolName; + protocolName = newProtocolName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__PROTOCOL_NAME, oldProtocolName, protocolName)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public byte[] getSerializedMsg() { + return serializedMsg; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setSerializedMsg(byte[] newSerializedMsg) { + byte[] oldSerializedMsg = serializedMsg; + serializedMsg = newSerializedMsg; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__SERIALIZED_MSG, oldSerializedMsg, serializedMsg)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getAgentId() { + return agentId; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setAgentId(String newAgentId) { + String oldAgentId = agentId; + agentId = newAgentId; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__AGENT_ID, oldAgentId, agentId)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public LinkedList<HashMap<String, String>> getExtractedAttributes() { + return extractedAttributes; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setExtractedAttributes(LinkedList<HashMap<String, String>> newExtractedAttributes) { + LinkedList<HashMap<String, String>> oldExtractedAttributes = extractedAttributes; + extractedAttributes = newExtractedAttributes; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__EXTRACTED_ATTRIBUTES, oldExtractedAttributes, + extractedAttributes)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getTimestamp() { + return timestamp; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTimestamp(String newTimestamp) { + String oldTimestamp = timestamp; + timestamp = newTimestamp; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__TIMESTAMP, oldTimestamp, timestamp)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__PROTOCOL_NAME: + return getProtocolName(); + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__SERIALIZED_MSG: + return getSerializedMsg(); + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__AGENT_ID: + return getAgentId(); + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__EXTRACTED_ATTRIBUTES: + return getExtractedAttributes(); + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__TIMESTAMP: + return getTimestamp(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__PROTOCOL_NAME: + setProtocolName((String) newValue); + return; + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__SERIALIZED_MSG: + setSerializedMsg((byte[]) newValue); + return; + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__AGENT_ID: + setAgentId((String) newValue); + return; + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__EXTRACTED_ATTRIBUTES: + setExtractedAttributes((LinkedList<HashMap<String, String>>) newValue); + return; + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__TIMESTAMP: + setTimestamp((String) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__PROTOCOL_NAME: + setProtocolName(PROTOCOL_NAME_EDEFAULT); + return; + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__SERIALIZED_MSG: + setSerializedMsg(SERIALIZED_MSG_EDEFAULT); + return; + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__AGENT_ID: + setAgentId(AGENT_ID_EDEFAULT); + return; + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__EXTRACTED_ATTRIBUTES: + setExtractedAttributes(EXTRACTED_ATTRIBUTES_EDEFAULT); + return; + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__TIMESTAMP: + setTimestamp(TIMESTAMP_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__PROTOCOL_NAME: + return PROTOCOL_NAME_EDEFAULT == null ? protocolName != null : !PROTOCOL_NAME_EDEFAULT.equals(protocolName); + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__SERIALIZED_MSG: + return SERIALIZED_MSG_EDEFAULT == null ? serializedMsg != null + : !SERIALIZED_MSG_EDEFAULT.equals(serializedMsg); + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__AGENT_ID: + return AGENT_ID_EDEFAULT == null ? agentId != null : !AGENT_ID_EDEFAULT.equals(agentId); + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__EXTRACTED_ATTRIBUTES: + return EXTRACTED_ATTRIBUTES_EDEFAULT == null ? extractedAttributes != null + : !EXTRACTED_ATTRIBUTES_EDEFAULT.equals(extractedAttributes); + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__TIMESTAMP: + return TIMESTAMP_EDEFAULT == null ? timestamp != null : !TIMESTAMP_EDEFAULT.equals(timestamp); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (protocolName: "); + result.append(protocolName); + result.append(", serializedMsg: "); + result.append(serializedMsg); + result.append(", agentId: "); + result.append(agentId); + result.append(", extractedAttributes: "); + result.append(extractedAttributes); + result.append(", timestamp: "); + result.append(timestamp); + result.append(')'); + return result.toString(); + } + +} //MessageReceivedEventImpl diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/util/IPos_DatamodelAdapterFactory.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/util/IPos_DatamodelAdapterFactory.java index b0b0ad3..a32b36e 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/util/IPos_DatamodelAdapterFactory.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/util/IPos_DatamodelAdapterFactory.java @@ -261,6 +261,11 @@ public class IPos_DatamodelAdapterFactory extends AdapterFactoryImpl { return createDataStorageQueryResponseAdapter(); } + @Override + public Adapter caseMessageReceivedEvent(MessageReceivedEvent object) { + return createMessageReceivedEventAdapter(); + } + @Override public Adapter defaultCase(EObject object) { return createEObjectAdapter(); @@ -826,6 +831,20 @@ public class IPos_DatamodelAdapterFactory extends AdapterFactoryImpl { return null; } + /** + * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent <em>Message Received Event</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent + * @generated + */ + public Adapter createMessageReceivedEventAdapter() { + return null; + } + /** * Creates a new adapter for the default case. * <!-- begin-user-doc --> diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/util/IPos_DatamodelSwitch.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/util/IPos_DatamodelSwitch.java index 6beea04..9a47158 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/util/IPos_DatamodelSwitch.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/util/IPos_DatamodelSwitch.java @@ -389,6 +389,13 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> { result = defaultCase(theEObject); return result; } + case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT: { + MessageReceivedEvent messageReceivedEvent = (MessageReceivedEvent) theEObject; + T result = caseMessageReceivedEvent(messageReceivedEvent); + if (result == null) + result = defaultCase(theEObject); + return result; + } default: return defaultCase(theEObject); } @@ -979,6 +986,21 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> { return null; } + /** + * Returns the result of interpreting the object as an instance of '<em>Message Received Event</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Message Received Event</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMessageReceivedEvent(MessageReceivedEvent object) { + return null; + } + /** * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. * <!-- begin-user-doc --> diff --git a/src/main/java/ipos/project/Functionality/eventfilter/BeaconFilteringResult.java b/src/main/java/ipos/project/Functionality/eventfilter/BeaconFilteringResult.java index f78c359..1e8a1f5 100644 --- a/src/main/java/ipos/project/Functionality/eventfilter/BeaconFilteringResult.java +++ b/src/main/java/ipos/project/Functionality/eventfilter/BeaconFilteringResult.java @@ -2,28 +2,17 @@ package ipos.project.Functionality.eventfilter; import ipos.project.DataModellntegration.iPos_Datamodel.Beacon; -public class BeaconFilteringResult { +public class BeaconFilteringResult extends FilteringResult { private Beacon beaconRawdataEvent; - private String monitoringTaskId; - private boolean isBlocking; public BeaconFilteringResult(String monitoringTaskId, Beacon beaconRawdataEvent, Boolean isBlocking) { + super(monitoringTaskId, isBlocking); this.beaconRawdataEvent = beaconRawdataEvent; - this.monitoringTaskId = monitoringTaskId; - this.isBlocking = isBlocking; - } + } public Beacon getBeaconRawdataEvent() { return beaconRawdataEvent; } - public String getMonitoringTaskId() { - return monitoringTaskId; - } - - public boolean hasBlockedEvent(){ - return this.isBlocking; - } - } diff --git a/src/main/java/ipos/project/Functionality/eventfilter/MsgRcvFilteringResult.java b/src/main/java/ipos/project/Functionality/eventfilter/MsgRcvFilteringResult.java new file mode 100644 index 0000000..e934fdd --- /dev/null +++ b/src/main/java/ipos/project/Functionality/eventfilter/MsgRcvFilteringResult.java @@ -0,0 +1,18 @@ +package ipos.project.Functionality.eventfilter; + +import ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent; + +public class MsgRcvFilteringResult extends FilteringResult { + + private MessageReceivedEvent messageReceivedEvent; + + public MsgRcvFilteringResult(String monitoringTaskId, MessageReceivedEvent messageReceivedEvent, Boolean isBlocking) { + super(monitoringTaskId, isBlocking); + this.messageReceivedEvent = messageReceivedEvent; + } + + public MessageReceivedEvent getMessageReceivedEvent() { + return messageReceivedEvent; + } + +} diff --git a/src/main/java/ipos/project/Functionality/eventfilter/eventFilter.java b/src/main/java/ipos/project/Functionality/eventfilter/eventFilter.java index 6b1af87..34f957b 100644 --- a/src/main/java/ipos/project/Functionality/eventfilter/eventFilter.java +++ b/src/main/java/ipos/project/Functionality/eventfilter/eventFilter.java @@ -17,7 +17,8 @@ public class eventFilter { private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger(); public static final String MONREQ_DISTANCE_PROPERTY = "distance"; - public static final List<String> MONREQ_ALLOWED_PROPERTIES = Arrays.asList("position", "id", "type", MONREQ_DISTANCE_PROPERTY); + public static final String MONREQ_VDA5050_PROPERTY = "VDA5050"; + public static final List<String> MONREQ_ALLOWED_PROPERTIES = Arrays.asList("position", "id", "type", MONREQ_DISTANCE_PROPERTY, MONREQ_VDA5050_PROPERTY); private boolean[] filterStructure; // @@ -143,23 +144,23 @@ public class eventFilter { return new BeaconFilteringResult(getMonitoringTaskId(), beaconRawdataEvent, isBlocking); } - public FilteringResult process(PositionEvent event) throws ParseException { + public PositionFilteringResult process(PositionEvent event) throws ParseException { IPos_DatamodelFactory dataModelFactory = IPos_DatamodelFactory.eINSTANCE; LocalizableObject lObject = DataServices.getLObjectByIdOrNull(event.getLObjectId()); boolean flag = false; //false for pass, true for block List<String> matchingCells = new LinkedList<>(); if (null == event.getPlacing() || null == event.getPlacing().getPosition() || null == event.getPlacing().getPosition().getPoint()){ LOG.info("EventFilter: Warning: Received event with unknown Position. Sensor-id: " + event.getLObjectId()); - return new FilteringResult(getMonitoringTaskId(), event,true, matchingCells, new ArrayList<>(this.positionConditionCells.keySet())); + return new PositionFilteringResult(getMonitoringTaskId(), event,true, matchingCells, new ArrayList<>(this.positionConditionCells.keySet())); } if (null == lObject){ LOG.info("EventFilter: Warning: Received event from sensor with unknown sensor-id: " + event.getLObjectId()); - return new FilteringResult(getMonitoringTaskId(), event,true, matchingCells, new ArrayList<>(this.positionConditionCells.keySet())); + return new PositionFilteringResult(getMonitoringTaskId(), event,true, matchingCells, new ArrayList<>(this.positionConditionCells.keySet())); } Agent agent = lObject.getAgent(); if (null == agent){ LOG.info("EventFilter: Warning: Received event for sensor-id with unknown agent. Sensor-id: " + lObject.getId()); - return new FilteringResult(getMonitoringTaskId(), event,true, matchingCells, new ArrayList<>(this.positionConditionCells.keySet())); + return new PositionFilteringResult(getMonitoringTaskId(), event,true, matchingCells, new ArrayList<>(this.positionConditionCells.keySet())); } LOG.info("Eventfilter: Filter structure: " + filterStructure[0] + ", " + filterStructure[1] + ", " + filterStructure[2] + ", " + filterStructure[3] + ", " + filterStructure[4] + ", " + filterStructure[5] + ", " + filterStructure[6] + ", " + filterStructure[7]); @@ -316,8 +317,8 @@ public class eventFilter { if (!flag) { last_position_event = event; } - FilteringResult filteringResult = new FilteringResult(getMonitoringTaskId(), event, flag, matchingCells, new ArrayList<>(this.positionConditionCells.keySet())); - return filteringResult; + PositionFilteringResult positionFilteringResult = new PositionFilteringResult(getMonitoringTaskId(), event, flag, matchingCells, new ArrayList<>(this.positionConditionCells.keySet())); + return positionFilteringResult; } private boolean evaluatePositionConditionCell(Position position, ArrayList<Float[][]> positionConditionCell) { @@ -336,4 +337,13 @@ public class eventFilter { public boolean respectsAccuracySdfForPosEvent(PositionEvent posEvent) { return (true || PositionMonitoring.ACCURACY_FUSION_STRATEGY.equals(this.getFusionStrategy())); // sensor data fusion is currently switched on by default, but later it may depend on agent-id } + + public MsgRcvFilteringResult processMessageReceivedEvent(MessageReceivedEvent messageReceivedEvent) { + boolean isVDA5050Message = MONREQ_VDA5050_PROPERTY.equals(messageReceivedEvent.getProtocolName()); + boolean eFilterIsAcceptingVDA5050Message = propertyCondition.contains(MONREQ_VDA5050_PROPERTY); + boolean isAccepting = isVDA5050Message && eFilterIsAcceptingVDA5050Message; + boolean isBlocking = !isAccepting; + MsgRcvFilteringResult msgRcvFilteringResult = new MsgRcvFilteringResult(this.getMonitoringTaskId(), messageReceivedEvent, isBlocking); + return msgRcvFilteringResult; + } } diff --git a/src/main/java/ipos/project/Functionality/eventfilter/readConfig.java b/src/main/java/ipos/project/Functionality/eventfilter/readConfig.java index 3fe1a07..f009bf0 100644 --- a/src/main/java/ipos/project/Functionality/eventfilter/readConfig.java +++ b/src/main/java/ipos/project/Functionality/eventfilter/readConfig.java @@ -57,7 +57,7 @@ public class readConfig { if (eventFilter.MONREQ_ALLOWED_PROPERTIES.contains(property)){ config.getPropertyCondition().add(property); }else{ - throw new RuntimeException("MonitoringRequest contained an invalid: " + property); + throw new RuntimeException("MonitoringRequest contained an invalid property: " + property); } } diff --git a/src/main/java/ipos/project/MainApp.java b/src/main/java/ipos/project/MainApp.java index 3c2b5dc..4faf86d 100644 --- a/src/main/java/ipos/project/MainApp.java +++ b/src/main/java/ipos/project/MainApp.java @@ -1,6 +1,7 @@ package ipos.project; import ipos.project.DataModellntegration.SimpleSceneIntegration.SimpleSceneIntegration; +import ipos.project.DataModellntegration.VDA5050Processor.VDA5050Processor; import ipos.project.SensorValueIntegration.GenericSensorValueProcessor; import ipos.project.iposextension.orderpicker.OFBizOrderPicker; import ipos.project.iposextension.tooz.Tooz; @@ -15,6 +16,7 @@ import java.util.Scanner; // @EnableJpaRepositories("ipos.project.models.SimpleScene.*") @EnableJpaRepositories("ipos.project.DataModellntegration.iPos_Datamodel.impl") public class MainApp { + public static boolean READY_TO_READ_NEXT_LINE = true; // reading the first line shall not require user actions private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger(); // public static final String TESTRAWDATA_FILE = "./testdata_raw.txt"; @@ -29,22 +31,24 @@ public class MainApp { public static final String TESTDATA_SDF = "testdata_raw_sdf.txt"; public static final String TESTDATA_TOOZ = "testdata_raw_tooz.txt"; public static final String TESTDATA_TOOZ_MONTARGET = "testdata_raw_tooz_init.txt"; + public static final String TESTDATA_VDA5050 = "testdata_raw_vda5050.txt"; public static final String COMMAND_INDFRO = "indfro testdata"; // Industrierobotik_Frontend public static final String COMMAND_OP = "oppl testdata"; public static final String COMMAND_OP_EVTS = "opevts testdata"; public static final String COMMAND_SDF = "sdf testdata"; public static final String COMMAND_TOOZ_TARGET = "tooz setMonitoringTarget"; public static final String COMMAND_TOOZ = "tooz testdata"; + public static final String COMMAND_VDA5050 = "testdata VDA5050"; public static final String COMMAND_EXIT = "exit"; public static final String COMMAND_HELP = "help"; public static final String COMMAND_QUERY = "query"; public static final String COMMAND_INIT_INDFRO = "init indfro"; public static final String COMMAND_INIT_SDF = "init sdf"; public static final String COMMAND_INIT_OP = "init op"; + public static final String COMMAND_READY_FOR_NEXT_LINE = "next line"; public static final String UNKNOWN_COMMAND = "SHELL: Unknown command"; private static boolean proceed = true; - public static void main(String[] args){ SpringApplication.run(MainApp.class, args); printCommands(); @@ -64,12 +68,13 @@ public class MainApp { case COMMAND_HELP: printCommands(); break; case COMMAND_INDFRO: GenericSensorValueProcessor.processTestData(TESTDATA_INDFRO); break; case COMMAND_TOOZ_TARGET: Tooz.processMonTargetTestdata(TESTDATA_TOOZ_MONTARGET); break; + case COMMAND_VDA5050: VDA5050Processor.processTestData(TESTDATA_VDA5050); break; case COMMAND_TOOZ: GenericSensorValueProcessor.processTestData(TESTDATA_TOOZ); break; case COMMAND_SDF: GenericSensorValueProcessor.processTestData(TESTDATA_SDF); break; case COMMAND_OP : OFBizOrderPicker.processPicklistTestData(TESTDATA_OP); break; case COMMAND_OP_EVTS: OFBizOrderPicker.processPosEvtTestData(TESTDATA_OP_EVTS); break; case COMMAND_QUERY : SimpleSceneIntegration.handleMessageFile(TESTDATA_QUERY); break; - default: LOG.info(UNKNOWN_COMMAND); + default: LOG.info(UNKNOWN_COMMAND); break; } } } @@ -117,6 +122,8 @@ public class MainApp { LOG.info("SHELL:" + COMMAND_OP); LOG.info("SHELL:" + COMMAND_OP_EVTS); LOG.info("SHELL:" + COMMAND_QUERY); + LOG.info("SHELL:" + COMMAND_TOOZ); + LOG.info("SHELL:" + COMMAND_VDA5050); LOG.info("SHELL:---------"); LOG.info("SHELL:Other:"); LOG.info("SHELL:---------"); diff --git a/src/main/java/ipos/project/SensorValueIntegration/GenericSensorValueProcessor.java b/src/main/java/ipos/project/SensorValueIntegration/GenericSensorValueProcessor.java index 6fe03b3..94cb651 100644 --- a/src/main/java/ipos/project/SensorValueIntegration/GenericSensorValueProcessor.java +++ b/src/main/java/ipos/project/SensorValueIntegration/GenericSensorValueProcessor.java @@ -2,24 +2,21 @@ package ipos.project.SensorValueIntegration; import com.google.protobuf.InvalidProtocolBufferException; import ipos.models.GenericSensor; -import ipos.models.SimpleScene; import ipos.models.SimpleScene.IposPosition; -import ipos.project.DataModellntegration.SimpleSceneIntegration.service.SimpleSceneTransformer; import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosUWBEvent; import ipos.project.DataModellntegration.iPos_Datamodel.UWB; import ipos.project.SensorValueIntegration.Service.GenericSensorTransformer; -import ipos.project.UseCaseController.PositionMonitoring; import ipos.project.devkit.utility.ExternalPubServiceImpl; import ipos.project.SensorValueIntegration.api.MqttPositionHandler; import ipos.project.devkit.utility.OtherUtility; import ipos.project.devkit.utility.ProtoJsonMap; import org.apache.logging.log4j.LogManager; -import org.eclipse.paho.client.mqttv3.MqttMessage; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jms.annotation.JmsListener; import org.springframework.stereotype.Component; import java.io.File; +import java.util.Scanner; @Component public class GenericSensorValueProcessor { @@ -45,9 +42,11 @@ public class GenericSensorValueProcessor { public static void processTestData(String path_to_test_data_file){ File testDataFile = new File(path_to_test_data_file); + Scanner scanner = new Scanner(System.in); try { for (String line : OtherUtility.readLines(testDataFile)) { GenericSensor.SensorEventWrapper sensorEventWrapper = ProtoJsonMap.fromJson(line, GenericSensor.SensorEventWrapper.class); + OtherUtility.waitUntilUserRequestsReadingNextLine(scanner); MqttPositionHandler.handleSensorEventWrapper(sensorEventWrapper); } }catch (InvalidProtocolBufferException e) { @@ -59,8 +58,9 @@ public class GenericSensorValueProcessor { public static void receiveMessage(UWB beaconRawdataEvent, String monitoringTaskId, String serializationType, String agentId, String agentType) { IPosUWBEvent iPosUWBEvent_internal = GenericSensorTransformer.uwb_internal2IPosRawdata(beaconRawdataEvent, agentId, agentType); GenericSensor.IPosUWBEvent iPosUWBEvent_proto = GenericSensorTransformer.uwb_IPosRawdata2proto(iPosUWBEvent_internal); + GenericSensor.IPosRawdataEventWrapper iPosRawdataEventWrapper_proto = GenericSensorTransformer.uwb_wrapIntoRawdataEventWrapper(iPosUWBEvent_proto); logging_tooz(iPosUWBEvent_proto, monitoringTaskId, serializationType); - OtherUtility.publishRespectingSerializationType(monitoringTaskId, serializationType, iPosUWBEvent_proto); + OtherUtility.publishRespectingSerializationType(monitoringTaskId, serializationType, iPosRawdataEventWrapper_proto); } private static void logging_tooz(GenericSensor.IPosUWBEvent event_proto, String monitoringTaskId, String serializationType) { diff --git a/src/main/java/ipos/project/SensorValueIntegration/Service/GenericSensorTransformer.java b/src/main/java/ipos/project/SensorValueIntegration/Service/GenericSensorTransformer.java index 5a36e1c..5c9dbd7 100644 --- a/src/main/java/ipos/project/SensorValueIntegration/Service/GenericSensorTransformer.java +++ b/src/main/java/ipos/project/SensorValueIntegration/Service/GenericSensorTransformer.java @@ -37,7 +37,7 @@ public class GenericSensorTransformer { // TODO: Zugriff auf Weltmodell ermöglichen um Bezugssystem-Objekt beschaffen zu können positionEvent.setPlacing( - createPlacing( + IPos2protoTransformer.createPlacing( IPos2protoTransformer.createPosition( IPos2protoTransformer.createPoint3D( protoSensPosEvent.getPosition().getPoint().getX(), @@ -58,13 +58,6 @@ public class GenericSensorTransformer { return positionEvent; } - private static Placing createPlacing(Position position, Orientation orientation){ - Placing placing = modelFactory.createPlacing(); - placing.setPosition(position); - placing.setOrientation(orientation); - return placing; - } - public static NFC nfc_GSensor2Internal(GenericSensor.NFCRawDataEvent proto_nfcRawdataEvent) { NFC internal_nfcRawdataEvent = modelFactory.createNFC(); // internal_nfcRawdataEvent.setTimeStamp(proto_nfcRawdataEvent.getTimestamp()); @@ -154,6 +147,12 @@ public class GenericSensorTransformer { protoIPosUWBEvent.putAllDistances(beaconDistances_internal2GSensor(iPosUWBEvent_internal.getDistances())); return protoIPosUWBEvent.build(); } + + public static GenericSensor.IPosRawdataEventWrapper uwb_wrapIntoRawdataEventWrapper(GenericSensor.IPosUWBEvent iPosUWBEvent_proto) { + GenericSensor.IPosRawdataEventWrapper.Builder iPosRawdataEventWrapper_proto = GenericSensor.IPosRawdataEventWrapper.newBuilder(); + iPosRawdataEventWrapper_proto.addIPosUWBEvent(iPosUWBEvent_proto); + return iPosRawdataEventWrapper_proto.build(); + } } diff --git a/src/main/java/ipos/project/UseCaseController/PositionMonitoring.java b/src/main/java/ipos/project/UseCaseController/PositionMonitoring.java index 1d3cbbe..8155400 100644 --- a/src/main/java/ipos/project/UseCaseController/PositionMonitoring.java +++ b/src/main/java/ipos/project/UseCaseController/PositionMonitoring.java @@ -4,11 +4,13 @@ import ipos.project.DataModellntegration.SimpleSceneIntegration.SimpleSceneInteg import ipos.project.DataModellntegration.iPos_Datamodel.*; import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageQueryRequest; import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitFactory; +import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent; import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest; import ipos.project.Functionality.*; import ipos.project.Functionality.eventfilter.*; import ipos.project.Functionality.eventfilter.BeaconFilteringResult; import ipos.project.SensorValueIntegration.GenericSensorValueProcessor; +import ipos.project.devkit.trans.IPos2protoTransformer; import org.apache.logging.log4j.LogManager; import org.springframework.jms.annotation.JmsListener; import org.springframework.stereotype.Component; @@ -164,6 +166,7 @@ public class PositionMonitoring { // Directly changing this object just works for the current simple case that we only have the object-representation of the world model // in general it has to be made sure that both, all links from this object and to this object keep intact lObject.setCurrentPlacing(positionEvent.getPlacing()); + lObject.setLastPosUpdate(positionEvent.getTimeStamp()); } private MonitoringRequest createMonitoringRequest(List<String> frameIds, String monitoringTaskId) { @@ -257,27 +260,107 @@ public class PositionMonitoring { LOG.info("Position after transformation to ROOT-coordinates: " + posEvent.getPlacing().getPosition().toString()); boolean posEventMeetsSdfAccuracyCondition = SensorDataFusion.isMostAccuratePositionAvailable(posEvent); - List<FilteringResult> filteringResults = new LinkedList<>(); + List<PositionFilteringResult> positionFilteringResults = new LinkedList<>(); for (eventFilter eFilter : eventFilters){ try { if (eFilterMayHandlePosEvent(posEvent, posEventMeetsSdfAccuracyCondition, eFilter)){ - filteringResults.add(applyEfilterToPosEvent(posEvent, eFilter)); + positionFilteringResults.add(applyEfilterToPosEvent(posEvent, eFilter)); } } catch (ParseException e) { - processFilteringResults(posEvent, filteringResults); + processFilteringResults(posEvent, positionFilteringResults); e.printStackTrace(); return; } } - processFilteringResults(posEvent, filteringResults); + processFilteringResults(posEvent, positionFilteringResults); LOG.info("INDFRO-DEBUG: zonePopulation after processing filtering results: " + zonePopulation.toString()); } - private static void processFilteringResults(PositionEvent posEvent, List<FilteringResult> filteringResults) { - Map<String, List<ZoneDescriptor>> eFilterZoneDescriptors = translateResultsIntoZoneDescriptors(filteringResults);; + public static void receiveMessage(MessageReceivedEvent messageReceivedEvent) { + try { + _receiveMessage(messageReceivedEvent); + }catch (NullPointerException e){ + LOG.info("Could not process received message. " + e.getMessage()); + e.printStackTrace(); + } + } + + private static void _receiveMessage(MessageReceivedEvent messageReceivedEvent) { + for (eventFilter eFilter : eventFilters){ + applyEFilterToMessageReceivedEventAndProcessFilteringResult(messageReceivedEvent, eFilter); + } + } + + private static void applyEFilterToMessageReceivedEventAndProcessFilteringResult(MessageReceivedEvent messageReceivedEvent, eventFilter eFilter) { + MsgRcvFilteringResult msgRcvFilteringResult = eFilter.processMessageReceivedEvent(messageReceivedEvent); + if (msgRcvFilteringResult.hasBlockedEvent()){ + return; + }else{ + IposMsgRcvEvent iposMsgRcvEvent = createIposMsgRcvEvent(msgRcvFilteringResult); + LOG.info("VDA5050: Filter accepted MessageReceived event."); + LOG.info("VDA5050: Corresponding IposMsgRcvEvent: " + iposMsgRcvEvent.toString()); + SimpleSceneIntegration.receiveMessage(iposMsgRcvEvent, msgRcvFilteringResult.getMonitoringTaskId(), eFilter.getSerializationType()); + } + } + + private static IposMsgRcvEvent createIposMsgRcvEvent(MsgRcvFilteringResult msgRcvFilteringResult) { + LocalizableObject lObject = getLObjectAssociatedToMessageRcvFilteringEvent(msgRcvFilteringResult); + IposMsgRcvEvent iposMsgRcvEvent = extendMessageRcvFilteringEventToIposMsgRcvFilteringEvent(msgRcvFilteringResult, lObject); + return iposMsgRcvEvent; + } + + private static IposMsgRcvEvent extendMessageRcvFilteringEventToIposMsgRcvFilteringEvent(MsgRcvFilteringResult msgRcvFilteringResult, LocalizableObject lObject) { + IposMsgRcvEvent iposMsgRcvEvent = devKitFactory.createIposMsgRcvEvent(); + iposMsgRcvEvent.setProtocolName(msgRcvFilteringResult.getMessageReceivedEvent().getProtocolName()); + iposMsgRcvEvent.setSerializedMsg(msgRcvFilteringResult.getMessageReceivedEvent().getSerializedMsg()); + iposMsgRcvEvent.setAgentId(msgRcvFilteringResult.getMessageReceivedEvent().getAgentId()); + iposMsgRcvEvent.setExtractedAttributes(msgRcvFilteringResult.getMessageReceivedEvent().getExtractedAttributes()); + iposMsgRcvEvent.setTimestamp(msgRcvFilteringResult.getMessageReceivedEvent().getTimestamp()); + handleOptionalData(lObject, iposMsgRcvEvent); + iposMsgRcvEvent.getLastKnownZonedescriptors().addAll(createDescriptorsForZonesThatAgentIsCurrentlyLocatedIn(msgRcvFilteringResult)); + return iposMsgRcvEvent; + } + + private static void handleOptionalData(LocalizableObject lObject, IposMsgRcvEvent iposMsgRcvEvent) { + if (null != lObject.getCurrentPlacing() && null != lObject.getCurrentPlacing().getPosition()){ + iposMsgRcvEvent.setLastKnownPosition(lObject.getCurrentPlacing().getPosition()); + iposMsgRcvEvent.setLastPosUpdate(lObject.getLastPosUpdate()); + } + if (null != lObject.getCurrentPlacing() && null != lObject.getCurrentPlacing().getOrientation()){ + iposMsgRcvEvent.setLastKnownOrientation(lObject.getCurrentPlacing().getOrientation()); + } + } + + + private static List<ZoneDescriptor> createDescriptorsForZonesThatAgentIsCurrentlyLocatedIn(MsgRcvFilteringResult msgRcvFilteringResult) { + List<ZoneDescriptor> zoneDescriptors = new LinkedList<>(); + eventFilter eFilter = Objects.requireNonNull(getEventFilterByIdOrNull(msgRcvFilteringResult.getMonitoringTaskId()), "unknown monitoring-task-id: " + msgRcvFilteringResult.getMonitoringTaskId()); + Set<String> zoneIdsThatEFilterIsInterestedIn = eFilter.getFilterConditionConfig().getPositionConditionCells().keySet(); + for (String zoneId : zoneIdsThatEFilterIsInterestedIn){ + List<String> idsOfAgentsCurrentlyInZone = zonePopulation.get(zoneId); + // Is the AGV that the Message originated from known to be currently located in that zone? + if(idsOfAgentsCurrentlyInZone.contains(msgRcvFilteringResult.getMessageReceivedEvent().getAgentId())){ + ZoneDescriptor zoneDescriptor = modelFactory.createZoneDescriptor(); + zoneDescriptor.setZoneId(zoneId); + zoneDescriptor.setNotificationType(UNDEFINED_TYPE); // notification type: Do we indicate with this message that a zone was left or entered? + zoneDescriptors.add(zoneDescriptor); + } + } + return zoneDescriptors; + } + + private static LocalizableObject getLObjectAssociatedToMessageRcvFilteringEvent(MsgRcvFilteringResult msgRcvFilteringResult) { + String agentId_whichEquals_sensorId = msgRcvFilteringResult.getMessageReceivedEvent().getAgentId(); + LocalizableObject lObject = getLObjectByIdOrNull(agentId_whichEquals_sensorId); + return Objects.requireNonNull(lObject, "Received message is associated to an unknown sensor-id: " + agentId_whichEquals_sensorId); + } + + private static void processFilteringResults(PositionEvent posEvent, List<PositionFilteringResult> positionFilteringResults) { + Map<String, List<ZoneDescriptor>> eFilterZoneDescriptors = translateResultsIntoZoneDescriptors(positionFilteringResults); persistPositionEvent(posEvent, eFilterZoneDescriptors); sendPositionEventToRequesters(posEvent, eFilterZoneDescriptors); updateZoneAssociations(posEvent, eFilterZoneDescriptors); + updateLocalizableObject(posEvent); } /** @@ -302,7 +385,7 @@ public class PositionMonitoring { LOG.warn("A monitoringTaskId was passed that is not associated to any known eventFilter"); continue; } - PositionEvent posEventCopy = createShallowCopyOfPosEvent(posEvent); + PositionEvent posEventCopy = createDeepCopyOfPosEvent(posEvent); posEventCopy.getZonedescriptors().addAll(zoneDescriptorsEFilterResult); // ZoneDescriptors-Collection of PositionEvent was empty up until this point of execution Administration.transformToRequesterCoordinates(posEventCopy, eFilter.getRefSystemId()); SimpleSceneIntegration.receiveMessage(posEventCopy, monitoringTaskId, getFirstNotificationTypeOrUndefined(zoneDescriptorsEFilterResult), eFilter.getSerializationType()); @@ -320,7 +403,7 @@ public class PositionMonitoring { continue; } if( containsExitNotification(zoneDescriptorsEFilterResult)){ - PositionEvent posEventCopy = createShallowCopyOfPosEvent(posEvent); + PositionEvent posEventCopy = createDeepCopyOfPosEvent(posEvent); posEventCopy.getZonedescriptors().addAll(zoneDescriptorsEFilterResult); Administration.transformToRequesterCoordinates(posEventCopy, eFilter.getRefSystemId()); SimpleSceneIntegration.receiveMessage(posEventCopy, monitoringTaskId, getFirstNotificationTypeOrUndefined(zoneDescriptorsEFilterResult), eFilter.getSerializationType()); @@ -350,7 +433,7 @@ public class PositionMonitoring { private static void persistPositionEvent(PositionEvent posEvent, Map<String, List<ZoneDescriptor>> eFilterZoneDescriptors) { for (String monitoringTaskId : eFilterZoneDescriptors.keySet()){ List<ZoneDescriptor> zoneDescriptorsEFilterResult = eFilterZoneDescriptors.get(monitoringTaskId); - PositionEvent posEventCopy = createShallowCopyOfPosEvent(posEvent); + PositionEvent posEventCopy = createDeepCopyOfPosEvent(posEvent); posEventCopy.getZonedescriptors().addAll(zoneDescriptorsEFilterResult); DataServices.persist(posEventCopy, monitoringTaskId + PositionMonitoring.TRACKING_SUFFIX); } @@ -361,12 +444,33 @@ public class PositionMonitoring { * @param posEvent * @return */ - private static PositionEvent createShallowCopyOfPosEvent(PositionEvent posEvent) { - PositionEvent posEventShallowCopy = modelFactory.createPositionEvent(); - posEventShallowCopy.setPlacing(posEvent.getPlacing()); - posEventShallowCopy.setTimeStamp(posEvent.getTimeStamp()); - posEventShallowCopy.setLObjectId(posEvent.getLObjectId()); - return posEventShallowCopy; + private static PositionEvent createDeepCopyOfPosEvent(PositionEvent posEvent) { + PositionEvent posEventDeepCopy = modelFactory.createPositionEvent(); + posEventDeepCopy.setPlacing(createDeepCopyOfPlacing(posEvent.getPlacing())); + posEventDeepCopy.setTimeStamp(posEvent.getTimeStamp()); + posEventDeepCopy.setLObjectId(posEvent.getLObjectId()); + return posEventDeepCopy; + } + + private static Placing createDeepCopyOfPlacing(Placing placingOriginal) { + Placing placingCopy = IPos2protoTransformer.createPlacing( + IPos2protoTransformer.createPosition( + IPos2protoTransformer.createPoint3D( + ((Point3D) placingOriginal.getPosition().getPoint()).getX(), + ((Point3D) placingOriginal.getPosition().getPoint()).getY(), + ((Point3D) placingOriginal.getPosition().getPoint()).getZ() + ), + ((Gaussian) placingOriginal.getPosition().getAccuracy()).getConfidenceInterval(), + DataServices.getReferenceSystemByIdOrNull(placingOriginal.getPosition().getReferenceSystem().getId()) + ), + IPos2protoTransformer.createOrientation( + ((Quaternion) placingOriginal.getOrientation()).getX(), + ((Quaternion) placingOriginal.getOrientation()).getY(), + ((Quaternion) placingOriginal.getOrientation()).getZ(), + ((Quaternion) placingOriginal.getOrientation()).getW() + ) + ); + return placingCopy; } private static void updateZoneAssociations(PositionEvent posEvent, Map<String, List<ZoneDescriptor>> eFilterZoneDescriptors) { @@ -394,15 +498,15 @@ public class PositionMonitoring { /** * ZoneDescriptors are provided for filteringResults that originated in eventFilters * that rejected the event only if those ZoneDescriptors communicate an ExitNotification. - * @param filteringResults + * @param positionFilteringResults * @return */ - private static Map<String, List<ZoneDescriptor>> translateResultsIntoZoneDescriptors(List<FilteringResult> filteringResults) { + private static Map<String, List<ZoneDescriptor>> translateResultsIntoZoneDescriptors(List<PositionFilteringResult> positionFilteringResults) { Map<String, List<ZoneDescriptor>> eFilterzoneDescriptors = new HashMap<>(); - for (FilteringResult filteringResult : filteringResults){ - String monitoringTaskId = filteringResult.getMonitoringTaskId(); - List<ZoneDescriptor> zoneDescriptors = toZoneDescriptors(filteringResult); - if (!filteringResult.hasBlockedEvent()) { + for (PositionFilteringResult positionFilteringResult : positionFilteringResults){ + String monitoringTaskId = positionFilteringResult.getMonitoringTaskId(); + List<ZoneDescriptor> zoneDescriptors = toZoneDescriptors(positionFilteringResult); + if (!positionFilteringResult.hasBlockedEvent()) { eFilterzoneDescriptors.put(monitoringTaskId, zoneDescriptors); }else{ if (containsExitNotification(zoneDescriptors)){ @@ -414,19 +518,19 @@ public class PositionMonitoring { return eFilterzoneDescriptors; } - private static List<ZoneDescriptor> toZoneDescriptors(FilteringResult filteringResult) { + private static List<ZoneDescriptor> toZoneDescriptors(PositionFilteringResult positionFilteringResult) { List<ZoneDescriptor> zoneDescriptors = new LinkedList<>(); - zoneDescriptors.addAll(calcDescriptorsForMatchingZones(filteringResult)); - zoneDescriptors.addAll(calcDescriptorsForNonMatchingZones(filteringResult)); + zoneDescriptors.addAll(calcDescriptorsForMatchingZones(positionFilteringResult)); + zoneDescriptors.addAll(calcDescriptorsForNonMatchingZones(positionFilteringResult)); return zoneDescriptors; } - private static List<ZoneDescriptor> calcDescriptorsForNonMatchingZones(FilteringResult filteringResult) { + private static List<ZoneDescriptor> calcDescriptorsForNonMatchingZones(PositionFilteringResult positionFilteringResult) { List<ZoneDescriptor> zoneDescriptors = new LinkedList<>(); - for (String zoneId : filteringResult.getNonMatchingPositionConditionCellIds()){ + for (String zoneId : positionFilteringResult.getNonMatchingPositionConditionCellIds()){ ZoneDescriptor zoneDescriptor = modelFactory.createZoneDescriptor(); zoneDescriptor.setZoneId(zoneId); - if(isExitNotification(filteringResult, zoneId)){ + if(isExitNotification(positionFilteringResult, zoneId)){ zoneDescriptor.setNotificationType(PositionMonitoring.EXIT_NOTIFICATION_TYPE); zoneDescriptors.add(zoneDescriptor); } @@ -434,13 +538,13 @@ public class PositionMonitoring { return zoneDescriptors; } - private static List<ZoneDescriptor> calcDescriptorsForMatchingZones(FilteringResult filteringResult) { + private static List<ZoneDescriptor> calcDescriptorsForMatchingZones(PositionFilteringResult positionFilteringResult) { List<ZoneDescriptor> zoneDescriptors = new LinkedList<>(); - for (String zoneId : filteringResult.getMatchingPositionConditionCellIds()){ + for (String zoneId : positionFilteringResult.getMatchingPositionConditionCellIds()){ ZoneDescriptor zoneDescriptor = modelFactory.createZoneDescriptor(); //LOG.info("OP: zoneId: " + zoneId); zoneDescriptor.setZoneId(zoneId); - if(isEntryNotification(filteringResult, zoneId)) { + if(isEntryNotification(positionFilteringResult, zoneId)) { zoneDescriptor.setNotificationType(PositionMonitoring.ENTRY_NOTIFICATION_TYPE); }else { zoneDescriptor.setNotificationType(PositionMonitoring.UNDEFINED_TYPE); @@ -491,13 +595,13 @@ public class PositionMonitoring { return !sdfIsRelevant || (sdfIsRelevant && posEventMeetsSdfAccuracyCondition); } - private static FilteringResult applyEfilterToPosEvent(PositionEvent posEvent, eventFilter eFilter) throws ParseException { - FilteringResult filteringResult = eFilter.process(posEvent); - boolean posEventMeetsFilterConditions = !filteringResult.hasBlockedEvent(); + private static PositionFilteringResult applyEfilterToPosEvent(PositionEvent posEvent, eventFilter eFilter) throws ParseException { + PositionFilteringResult positionFilteringResult = eFilter.process(posEvent); + boolean posEventMeetsFilterConditions = !positionFilteringResult.hasBlockedEvent(); if(posEventMeetsFilterConditions) { LOG.info(eFilter.getMonitoringTaskId() + "-EventFilter accepted the position"); } - return filteringResult; + return positionFilteringResult; /* posEvent = createAndAppendZoneDescriptors(posEvent, filteringResult); @@ -526,12 +630,12 @@ public class PositionMonitoring { /** * assumption: An object has been found to be located outside of a zone whose id is zoneId. * This function determines whether it just exited from that zone. - * @param filteringResult + * @param positionFilteringResult * @param zoneId * @return */ - private static boolean isExitNotification(FilteringResult filteringResult, String zoneId) { - PositionEvent posEvent = filteringResult.getPosEvent(); + private static boolean isExitNotification(PositionFilteringResult positionFilteringResult, String zoneId) { + PositionEvent posEvent = positionFilteringResult.getPosEvent(); String agentId = DataServices.getAgentForLocalizableObject(posEvent.getLObjectId()).getId(); if(null == zoneId) return false; return isLocatedInsideZone(zoneId, agentId); @@ -540,12 +644,12 @@ public class PositionMonitoring { /** * Assumption: zoneId is the id of a zone that the position (contained in filteringResult) * is actually located in. - * @param filteringResult + * @param positionFilteringResult * @param zoneId * @return */ - private static boolean isEntryNotification(FilteringResult filteringResult, String zoneId) { - PositionEvent posEvent = filteringResult.getPosEvent(); + private static boolean isEntryNotification(PositionFilteringResult positionFilteringResult, String zoneId) { + PositionEvent posEvent = positionFilteringResult.getPosEvent(); String agentId = DataServices.getAgentForLocalizableObject(posEvent.getLObjectId()).getId(); LOG.info("zoneId: " + zoneId + "; agentId: " + agentId); if(null == zoneId) return false; diff --git a/src/main/java/ipos/project/devkit/iposext/IPosExtension.java b/src/main/java/ipos/project/devkit/iposext/IPosExtension.java index ee5c496..ed4be34 100644 --- a/src/main/java/ipos/project/devkit/iposext/IPosExtension.java +++ b/src/main/java/ipos/project/devkit/iposext/IPosExtension.java @@ -6,8 +6,12 @@ import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEv import ipos.project.UseCaseController.PositionMonitoring; import ipos.project.devkit.utility.ExternalPubServiceImpl; import ipos.project.devkit.utility.ProtoJsonMap; +import org.apache.logging.log4j.LogManager; + +import java.util.Objects; abstract public class IPosExtension { + private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger(); public ExternalPubServiceImpl mqttService; @@ -16,8 +20,13 @@ abstract public class IPosExtension { } public void configureIpos(IPosArguments.IPosConfigData iposConfigData) { - SimpleScene.IposConfigWrapper configWrapper = prepareConfigWrapper(iposConfigData); - sendConfigWrapperToIpos(configWrapper); + try{ + SimpleScene.IposConfigWrapper configWrapper = Objects.requireNonNull(prepareConfigWrapper(iposConfigData), "Warning: An attempt to configure the IPos-IPS has failed"); + sendConfigWrapperToIpos(configWrapper); + } catch(NullPointerException e){ + LOG.info(e.getMessage()); + return; + } } private void sendConfigWrapperToIpos(SimpleScene.IposConfigWrapper proto_configWrapper) { diff --git a/src/main/java/ipos/project/devkit/trans/IPos2protoTransformer.java b/src/main/java/ipos/project/devkit/trans/IPos2protoTransformer.java index f745257..b777367 100644 --- a/src/main/java/ipos/project/devkit/trans/IPos2protoTransformer.java +++ b/src/main/java/ipos/project/devkit/trans/IPos2protoTransformer.java @@ -51,6 +51,12 @@ public class IPos2protoTransformer implements IPosTransformer { return quaternion; } + public static Placing createPlacing(Position position, Orientation orientation){ + Placing placing = modelFactory.createPlacing(); + placing.setPosition(position); + placing.setOrientation(orientation); + return placing; + } public static class MonReq2ProtoTransformer implements IPosTransformer.MonReqTransformer<SimpleScene.IposMonitoringRequest>{ diff --git a/src/main/java/ipos/project/devkit/utility/OtherUtility.java b/src/main/java/ipos/project/devkit/utility/OtherUtility.java index 02a40fc..cb1171e 100644 --- a/src/main/java/ipos/project/devkit/utility/OtherUtility.java +++ b/src/main/java/ipos/project/devkit/utility/OtherUtility.java @@ -3,6 +3,7 @@ package ipos.project.devkit.utility; import com.google.protobuf.AbstractMessageLite; import com.google.protobuf.MessageOrBuilder; import ipos.project.DataModellntegration.SimpleSceneIntegration.SimpleSceneIntegration; +import ipos.project.MainApp; import ipos.project.SensorValueIntegration.GenericSensorValueProcessor; import ipos.project.UseCaseController.PositionMonitoring; import org.apache.logging.log4j.LogManager; @@ -14,8 +15,12 @@ import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.Scanner; public class OtherUtility { + public static final String KEY_EXTRACTED_ATTRIBUTE_NAME = "name"; + public static final String KEY_EXTRACTED_ATTRIBUTE_TYPE = "type"; + public static final String KEY_EXTRACTED_ATTRIBUTE_VALUE = "data"; private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger(); public static List<String> readLines(File initFile) { @@ -43,9 +48,26 @@ public class OtherUtility { // publishes JSON over MQTT if (PositionMonitoring.JSON_SERIALIZATION_TYPE.equals(serializationType)){ - String fakeTopic = "ipos/client/position"; SimpleSceneIntegration.mqttService.publish(topic, jsonString, 0, false); LOG.info("publishing JSON mqttMessage of type " + protoMsg.getClass().getName() + ":" + jsonString + " on topic: " + topic); } } + + public static void waitUntilUserRequestsReadingNextLine(Scanner scanner) { + while (!MainApp.READY_TO_READ_NEXT_LINE){ + try { + Thread.sleep(500); + if(scanner.hasNext()) { + String str = scanner.nextLine(); + switch(str){ + case MainApp.COMMAND_READY_FOR_NEXT_LINE: MainApp.READY_TO_READ_NEXT_LINE = true; break; + default: LOG.info("Waiting for permission to read next line"); + } + } + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + MainApp.READY_TO_READ_NEXT_LINE = false; // make sure that we will also wait before reading the line that comes after the current one + } } diff --git a/src/main/java/ipos/project/iposextension/tooz/Tooz.java b/src/main/java/ipos/project/iposextension/tooz/Tooz.java index 3925d1f..a0bcbd2 100644 --- a/src/main/java/ipos/project/iposextension/tooz/Tooz.java +++ b/src/main/java/ipos/project/iposextension/tooz/Tooz.java @@ -1,34 +1,63 @@ package ipos.project.iposextension.tooz; import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosUWBEvent; +import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity; import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget; +import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozFactory; import ipos.project.devkit.iposext.IPosArguments; import ipos.project.devkit.utility.ExternalPubServiceImpl; import ipos.project.devkit.utility.OtherUtility; +import org.apache.logging.log4j.LogManager; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.io.File; -import java.util.LinkedList; +import java.util.*; @Component public class Tooz { + private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger(); public static final String TOPIC_TOOZEXT_OUTPUT = "SmartGlassesBackend"; public static final String SERIALIZATIONTYPE_TOOZEXT_OUTPUT = "json"; + public static final String TOOZ_MONREQ = "{\"monitoringRequests\": [{\"id\": [\"%s\"], \"properties\": [\"distance\"], \"monitoringTaskId\": \"%s\", \"refSystemId\": \"ROOT\", \"serializationType\": \"json\"}]}"; + public static final String TOOZ_MONITORINGTASKID = "tooz_distances"; + // public static final String TOPIC_TOOZ_EXT = "TOOZ_TEST_MONITORING"; + public static final String TOPIC_TOOZ_ENVIRONMENT = "TOOZ_ENVIRONMENT"; + public static final String TOPIC_TOOZ_EXT_OUTPUT = "TOOZ_EXT_OUTPUT"; + public static final String SERIALIZATION_TYPE_JSON = "json"; + private static ToozFactory toozFactory = ToozFactory.eINSTANCE; + private Timer timer; @Autowired - public Tooz(ExternalPubServiceImpl mqttService){ + public Tooz(ExternalPubServiceImpl mqttService) { toozExt.setMqttService(mqttService); ToozIPosRawdataMqtt.setMqttService(mqttService); ToozExtInputMqtt.setMqttService(mqttService); ToozExtOutputMqtt.setMqttService(mqttService); + startUpdateTimer(); + } + +// ich könnte noch machen: gleich die NFC bzw. RFID-Rohdatenübertragung einbauen, dann muss ich mich später nicht erst lange einarbeiten + + private void startUpdateTimer() { + timer = new Timer(); + timer.scheduleAtFixedRate(new TimerTask() { + @Override + public void run(){ + updateToozBackend(); + } + }, 0, 3000); } static private ToozExt toozExt = new ToozExt(); public static void handleIPosUWBEvent(IPosUWBEvent iPosUWBEvent_internal) { - toozExt.handleRawdataEvent(iPosUWBEvent_internal); + try { + toozExt.handleRawdataEvent(iPosUWBEvent_internal); + } catch (RuntimeException e) { + LOG.info(e.getMessage()); + } } public static void processMonTargetTestdata(String path_to_monTarget_file) { @@ -39,9 +68,52 @@ public class Tooz { } public static void handleMonitoringTarget(MonitoringTarget monitoringTarget_internal) { - LinkedList<MonitoringTarget> monitoringTargets = new LinkedList<>(); - monitoringTargets.add(monitoringTarget_internal); - IPosArguments.IPosConfigData toozConf = new ToozArgs.ToozConf(monitoringTargets); + LOG.info("TOOZ: Attempting to configure IPos-IPS for monitoring the location of the sensor with id " + monitoringTarget_internal.getTargetSensorId()); + IPosArguments.IPosConfigData toozConf = new ToozArgs.ToozConf(monitoringTarget_internal); toozExt.configureIpos(toozConf); + ToozMonitoringTarget newlyRegisteredTarget = new ToozMonitoringTarget(monitoringTarget_internal.getTargetSensorId()); + toozExt.getAllCurrentlyMonitoredTargets().add(newlyRegisteredTarget); + } + + public static void updateToozBackend() { + LOG.info("TOOZ: Updating tooz-backend"); + List<ToozMonitoringTarget> allCurrentlyMonitoredTargets = toozExt.getAllCurrentlyMonitoredTargets(); + allCurrentlyMonitoredTargets.stream().forEach(monitoredTarget -> updateToozBackendForTarget(monitoredTarget)); + } + + private static void updateToozBackendForTarget(ToozMonitoringTarget monitoredTarget) { + if (!monitoredTarget.hasChangedSinceLastUpdate()){ + return; + } + List<Map.Entry<String, Double>> sortedDistances = extractSortedDistances(monitoredTarget); + if (sortedDistances.size() == 0){ + LOG.info("Could not update Tooz-backend for monitoring Target " + monitoredTarget.getTargetSensorId() + "as no distant entities are known yet."); + return; + } + Map.Entry<String, Double> nearestDistantEntity = sortedDistances.get(0); + DistantEntity distantEntity = createDistantEntityFromMonitoredTarget(monitoredTarget, nearestDistantEntity); + LOG.info("TOOZ: The closest distant entity of monitoring target " + monitoredTarget.getTargetSensorId() + " has changed. Id of closest entity: " + distantEntity.getDistantEntityId() + "; distance of closest entity: " + distantEntity.getDistance() + "; all known distances for this monitoring target: " + monitoredTarget.getCopyOfDistances().values()); + ToozExtOutputMqtt.transmitDistantEntity(distantEntity, TOPIC_TOOZ_EXT_OUTPUT, SERIALIZATION_TYPE_JSON); + monitoredTarget.setHasChangedSinceLastUpdate(false); // Tooz-backend has been updated and is up-to-date now, so we regard the monitoredTarget as not having changed since last update + return; + } + + private static DistantEntity createDistantEntityFromMonitoredTarget(ToozMonitoringTarget monitoredTarget, Map.Entry<String, Double> nearestDistantEntity) { + DistantEntity distantEntity = toozFactory.createDistantEntity(); + distantEntity.setLocalSensorId(monitoredTarget.getTargetSensorId()); + distantEntity.setLocalAgentId(monitoredTarget.getLocalAgentId()); + distantEntity.setDistantEntityId(nearestDistantEntity.getKey()); + distantEntity.setDistance(nearestDistantEntity.getValue()); + distantEntity.setProximityIndex(0); + distantEntity.setEntityData(new HashMap<>()); + distantEntity.setTimeStamp(monitoredTarget.getTimestamp()); + return distantEntity; + } + + private static List<Map.Entry<String, Double>> extractSortedDistances(ToozMonitoringTarget monitoredTarget) { + List<Map.Entry<String, Double>> toBeSortedDistancesList = new LinkedList<>(); + toBeSortedDistancesList.addAll(monitoredTarget.getCopyOfDistances().entrySet()); + Collections.sort(toBeSortedDistancesList, (e1, e2) -> e1.getValue().compareTo(e2.getValue())); + return toBeSortedDistancesList; } } diff --git a/src/main/java/ipos/project/iposextension/tooz/ToozArgs.java b/src/main/java/ipos/project/iposextension/tooz/ToozArgs.java index 6a26278..463ba7c 100644 --- a/src/main/java/ipos/project/iposextension/tooz/ToozArgs.java +++ b/src/main/java/ipos/project/iposextension/tooz/ToozArgs.java @@ -3,20 +3,17 @@ package ipos.project.iposextension.tooz; import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget; import ipos.project.devkit.iposext.IPosArguments; -import javax.management.monitor.Monitor; -import java.util.List; - public class ToozArgs { public static class ToozConf implements IPosArguments.IPosConfigData { - List<MonitoringTarget> monitoringTargets; - public List<MonitoringTarget> getMonitoringTargets() { - return monitoringTargets; + MonitoringTarget monitoringTarget; + public MonitoringTarget getMonitoringTargets() { + return monitoringTarget; } - public ToozConf(List<MonitoringTarget> monitoringTargets) { - this.monitoringTargets = monitoringTargets; + public ToozConf(MonitoringTarget monitoringTarget) { + this.monitoringTarget = monitoringTarget; } } diff --git a/src/main/java/ipos/project/iposextension/tooz/ToozExt.java b/src/main/java/ipos/project/iposextension/tooz/ToozExt.java index 7611695..18ab387 100644 --- a/src/main/java/ipos/project/iposextension/tooz/ToozExt.java +++ b/src/main/java/ipos/project/iposextension/tooz/ToozExt.java @@ -1,19 +1,30 @@ package ipos.project.iposextension.tooz; +import com.google.protobuf.InvalidProtocolBufferException; import ipos.models.SimpleScene; import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent; import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosUWBEvent; import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent; -import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity; +import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget; import ipos.project.devkit.iposext.IPosArguments; import ipos.project.devkit.iposext.IPosExtension; +import ipos.project.devkit.utility.ProtoJsonMap; +import org.apache.logging.log4j.LogManager; -import static ipos.project.iposextension.tooz.Tooz.TOPIC_TOOZEXT_OUTPUT; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +import static ipos.project.iposextension.tooz.Tooz.TOOZ_MONITORINGTASKID; public class ToozExt extends IPosExtension { - public static final String TOPIC_TOOZ_EXT = "TOOZ_TEST_MONITORING"; - public static final String TOPIC_TOOZ_ENVIRONMENT = "TOOZ_ENVIRONMENT"; - public static final String TOPIC_TOOZ_EXT_OUTPUT = "TOOZ_EXT_OUTPUT"; + private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger(); + + protected List<ToozMonitoringTarget> getAllCurrentlyMonitoredTargets() { + return allCurrentlyMonitoredTargets; + } + + private List<ToozMonitoringTarget> allCurrentlyMonitoredTargets = new LinkedList<>(); @Override public void handlePositionEvent(IposPositionEvent posEvent) {} @@ -31,20 +42,36 @@ public class ToozExt extends IPosExtension { @Override public SimpleScene.IposConfigWrapper prepareConfigWrapper(IPosArguments.IPosConfigData iposConfigData) { - // ToozArgs.ToozConf toozConf = (ToozArgs.ToozConf) iposConfigData; - // toozConf.getMonitoringTargets(); - + ToozArgs.ToozConf toozConf = (ToozArgs.ToozConf) iposConfigData; + MonitoringTarget monitoringTarget = toozConf.getMonitoringTargets(); + return createConfigWrapperFromMonitoringTarget(monitoringTarget); + } - // return ProtoJsonMap.fromJson(OFBizOrderPicker.OP_MONITORINGREQUEST, SimpleScene.IposConfigWrapper.class); - // public static final String OP_MONITORINGREQUEST = "{\"monitoringRequests\": [{\"frameIds\": [\"box_1\", \"box_2\", \"box_3\", \"shipmentBin_1\", \"shipmentBin_2\"], \"monitoringTaskId\": \"" + OFBizOrderPicker.TOPIC_POSITION_EVENT + "\", \"serializationType\": \"json\"}]}"; - return null; + private SimpleScene.IposConfigWrapper createConfigWrapperFromMonitoringTarget(MonitoringTarget monitoringTarget) { + String monitoringRequest = String.format(Tooz.TOOZ_MONREQ, monitoringTarget.getTargetSensorId(), TOOZ_MONITORINGTASKID); + try { + return ProtoJsonMap.fromJson(monitoringRequest, SimpleScene.IposConfigWrapper.class); + } catch (InvalidProtocolBufferException e) { + LOG.info("Warning: IPos-IPS could not be configured properly, as there was a MonitoringTarget that no ConfigWrapper could be created from."); + return null; + } } - protected static void handleIPosUWBEvent(IPosUWBEvent iPosUWBEvent) { - // jetzt die Distanzen richtig sortieren, also UWBEvent in eine map<String, double> (string: beacon-id, double: distance) eintragen und valueSet sortieren und alle beacon-ids mit dem kleinsten rausholen. Alternative: Map sortieren und - // siehe https://www.baeldung.com/java-sorting + protected void handleIPosUWBEvent(IPosUWBEvent iPosUWBEvent) { + LOG.info("TOOZ: Attempting to handle UWB rawdata event"); + ToozMonitoringTarget toozMonitoringTarget = fetchMonitoringTarget(iPosUWBEvent); + toozMonitoringTarget.addOrUpdateDistances(iPosUWBEvent.getDistances()); + toozMonitoringTarget.setLocalAgentId(iPosUWBEvent.getAgentId()); + toozMonitoringTarget.setTimestamp(iPosUWBEvent.getTimeStamp()); // the time when the distances to the distant entities have been updated the previous time + LOG.info("TOOZ: ToozExt received rawdata event: UWB. Monitoring target (sensorId): " + iPosUWBEvent.getSensorId() + ", agent: " + iPosUWBEvent.getAgentId() + ", timestamp: " + iPosUWBEvent.getTimeStamp()); + } - // DistantEntity distantEntity_internal = createDistantEntity(iPosUWBEvent); - //ToozExtOutputMqtt.transmitDistantEntity(distantEntity_internal, Tooz.TOPIC_TOOZEXT_OUTPUT, Tooz.SERIALIZATIONTYPE_TOOZEXT_OUTPUT); + private ToozMonitoringTarget fetchMonitoringTarget(IPosUWBEvent iPosUWBEvent) { + String targetSensorId = iPosUWBEvent.getSensorId(); + ToozMonitoringTarget monitoringTarget = allCurrentlyMonitoredTargets.stream().filter( + monTarget -> monTarget.getTargetSensorId().equals(targetSensorId)) + .findFirst(). + orElseThrow(() -> new RuntimeException("Warning: ToozExt received rawdata from a position sensor that no MonitoringTarget was defined for")); + return monitoringTarget; } } diff --git a/src/main/java/ipos/project/iposextension/tooz/ToozExtInputMqtt.java b/src/main/java/ipos/project/iposextension/tooz/ToozExtInputMqtt.java index 8e50252..f852b72 100644 --- a/src/main/java/ipos/project/iposextension/tooz/ToozExtInputMqtt.java +++ b/src/main/java/ipos/project/iposextension/tooz/ToozExtInputMqtt.java @@ -1,19 +1,15 @@ package ipos.project.iposextension.tooz; import com.google.protobuf.InvalidProtocolBufferException; -import ipos.models.GenericSensor; -import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosUWBEvent; -import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity; import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget; import ipos.project.config.mqtt.Handler; import ipos.project.config.mqtt.MqttListener; import ipos.project.devkit.utility.ExternalPubServiceImpl; -import ipos.project.devkit.utility.OtherUtility; import ipos.project.devkit.utility.ProtoJsonMap; import org.apache.logging.log4j.LogManager; import org.eclipse.paho.client.mqttv3.MqttMessage; -@MqttListener(ToozExt.TOPIC_TOOZ_ENVIRONMENT) +@MqttListener(Tooz.TOPIC_TOOZ_ENVIRONMENT) public class ToozExtInputMqtt implements Handler { private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger(); @@ -29,6 +25,7 @@ public class ToozExtInputMqtt implements Handler { } public static void handleToozExtInput(String jsonMsg) { + LOG.info("TOOZ: Handling ToozExtInput: " + jsonMsg); ipos.models.Tooz.IPosToozExtInputWrapper toozInputWrapper = null; try { toozInputWrapper = ProtoJsonMap.fromJson(jsonMsg, ipos.models.Tooz.IPosToozExtInputWrapper.class); diff --git a/src/main/java/ipos/project/iposextension/tooz/ToozExtOutputMqtt.java b/src/main/java/ipos/project/iposextension/tooz/ToozExtOutputMqtt.java index d5fdd9f..42dbe7a 100644 --- a/src/main/java/ipos/project/iposextension/tooz/ToozExtOutputMqtt.java +++ b/src/main/java/ipos/project/iposextension/tooz/ToozExtOutputMqtt.java @@ -1,19 +1,14 @@ package ipos.project.iposextension.tooz; -import com.google.protobuf.InvalidProtocolBufferException; -import ipos.models.GenericSensor; -import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosUWBEvent; import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity; -import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget; import ipos.project.config.mqtt.Handler; import ipos.project.config.mqtt.MqttListener; import ipos.project.devkit.utility.ExternalPubServiceImpl; import ipos.project.devkit.utility.OtherUtility; -import ipos.project.devkit.utility.ProtoJsonMap; import org.apache.logging.log4j.LogManager; import org.eclipse.paho.client.mqttv3.MqttMessage; -@MqttListener(ToozExt.TOPIC_TOOZ_EXT_OUTPUT) +@MqttListener(Tooz.TOPIC_TOOZ_EXT_OUTPUT) public class ToozExtOutputMqtt implements Handler { private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger(); diff --git a/src/main/java/ipos/project/iposextension/tooz/ToozIPosRawdataMqtt.java b/src/main/java/ipos/project/iposextension/tooz/ToozIPosRawdataMqtt.java index d05ddea..d840150 100644 --- a/src/main/java/ipos/project/iposextension/tooz/ToozIPosRawdataMqtt.java +++ b/src/main/java/ipos/project/iposextension/tooz/ToozIPosRawdataMqtt.java @@ -10,7 +10,7 @@ import ipos.project.devkit.utility.ProtoJsonMap; import org.apache.logging.log4j.LogManager; import org.eclipse.paho.client.mqttv3.MqttMessage; -@MqttListener(ToozExt.TOPIC_TOOZ_EXT) +@MqttListener(Tooz.TOOZ_MONITORINGTASKID) public class ToozIPosRawdataMqtt implements Handler { private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger(); @@ -27,6 +27,7 @@ public class ToozIPosRawdataMqtt implements Handler { // die Wrapper-Nachrichten überhaupt empfangen werden sollen @Override public void handle(MqttMessage message) { + LOG.info("TOOZ: ToozIPosRawdataMqtt received message: " + message.toString()); handleIPosRawdataWrapper(message.toString()); } @@ -42,6 +43,7 @@ public class ToozIPosRawdataMqtt implements Handler { private void handleIPosUWBEvent(GenericSensor.IPosUWBEvent iPosUWBEvent_proto) { IPosUWBEvent iPosUWBEvent_internal = ToozTrans.uwb_proto2IPosRawdata(iPosUWBEvent_proto); + LOG.info("TOOZ: UWBEvent was transformed into internal data format: " + iPosUWBEvent_internal.toString()); Tooz.handleIPosUWBEvent(iPosUWBEvent_internal); } diff --git a/src/main/java/ipos/project/iposextension/tooz/ToozMonitoringTarget.java b/src/main/java/ipos/project/iposextension/tooz/ToozMonitoringTarget.java new file mode 100644 index 0000000..b2c3b6f --- /dev/null +++ b/src/main/java/ipos/project/iposextension/tooz/ToozMonitoringTarget.java @@ -0,0 +1,89 @@ +package ipos.project.iposextension.tooz; + +import java.util.HashMap; +import java.util.Map; + +public class ToozMonitoringTarget { + + public ToozMonitoringTarget(String targetSensorId) { + this.targetSensorId = targetSensorId; + this.targetData = new HashMap<>(); + this.localAgentId = ""; + this.timestamp = ""; + this.hasChanged = false; + } + + private Map<String, Double> distances = new HashMap<>(); + + public String getTimestamp() { + return timestamp; + } + + public void setTimestamp(String timestamp) { + this.timestamp = timestamp; + } + + private String timestamp; // the time when the distances to the distant entities have been updated the previous time + + /** + * Returns true if this instance of ToozMonitoringTarget has to be regarded as having changed since the last + * update of the Tooz-backend, and false otherwise. + * @return + */ + public boolean hasChangedSinceLastUpdate() { + return hasChanged; + } + + /** + * Sets the boolean value that defines whether this instance of ToozMonitoringTarget has to be + * regarde as having changed since last update of the Tooz-backend + * @param hasChanged + */ + public void setHasChangedSinceLastUpdate(boolean hasChanged) { + this.hasChanged = hasChanged; + } + + private boolean hasChanged; + + private String localAgentId; + Map<String, String> targetData; + + protected Map<String, Double> getCopyOfDistances() { + HashMap<String, Double> copyOfDistances = new HashMap<>(); + copyOfDistances.putAll(distances); + return copyOfDistances; + } + + protected void addDistance(String sensorId, Double distance){ + distances.put(sensorId, distance); + } + + public String getTargetSensorId() { + return targetSensorId; + } + + private String targetSensorId; + + public void addOrUpdateDistances(Map<String, Double> map){ + map.entrySet().forEach(entry -> distances.put(entry.getKey(), entry.getValue())); // put-function creates new entry, or updates existing one + this.hasChanged = true; + } + + public String getLocalAgentId() { + return localAgentId; + } + + public void setLocalAgentId(String localAgentId) { + this.localAgentId = localAgentId; + } + + + public Map<String, String> getTargetData() { + return targetData; + } + + public void setTargetData(Map<String, String> targetData) { + this.targetData = targetData; + } + +} diff --git a/testdata_raw_tooz.txt b/testdata_raw_tooz.txt index 96672a1..02cae32 100644 --- a/testdata_raw_tooz.txt +++ b/testdata_raw_tooz.txt @@ -1,4 +1,3 @@ {"uwbRawDataEvent" : [ {"timestamp" : "2022-02-02T16:03:20+00:00", "sensorId" : "tooz_employee_uwb", "distances": {"beacon_1" : "2.5", "beacon_2" : "5.5", "beacon_3" : "8.5"}, "type": "UWB"}]} -{"uwbRawDataEvent" : [ {"timestamp" : "2022-02-02T16:04:20+00:00", "sensorId" : "tooz_employee_uwb", "distances": {"beacon_4" : "2.8"}, "type": "UWB"}]} -{"uwbRawDataEvent" : [ {"timestamp" : "2022-02-02T16:05:20+00:00", "sensorId" : "tooz_employee_uwb", "distances": {"beacon_5" : "5.8"}, "type": "UWB"}]} -{"uwbRawDataEvent" : [ {"timestamp" : "2022-02-02T16:06:20+00:00", "sensorId" : "tooz_employee_uwb", "distances": {"beacon_6" : "8.8"}, "type": "UWB"}]} \ No newline at end of file +{"uwbRawDataEvent" : [ {"timestamp" : "2022-02-02T16:04:20+00:00", "sensorId" : "tooz_employee_uwb", "distances": {"beacon_1" : "15.0"}, "type": "UWB"}]} +{"uwbRawDataEvent" : [ {"timestamp" : "2022-02-02T16:05:20+00:00", "sensorId" : "tooz_employee_uwb", "distances": {"beacon_5" : "1.8"}, "type": "UWB"}]} \ No newline at end of file diff --git a/testdata_raw_tooz_init.txt b/testdata_raw_tooz_init.txt index 9481385..0ae4ad5 100644 --- a/testdata_raw_tooz_init.txt +++ b/testdata_raw_tooz_init.txt @@ -1 +1 @@ -{"monitoringTarget" : [{"targetSensorId" : "tooz_employee_uwb" }]} \ No newline at end of file +{"monitoringTargets" : [{"targetSensorId" : "tooz_employee_uwb" }]} \ No newline at end of file diff --git a/testdata_raw_vda5050.txt b/testdata_raw_vda5050.txt new file mode 100644 index 0000000..94df7e6 --- /dev/null +++ b/testdata_raw_vda5050.txt @@ -0,0 +1,3 @@ +{"timeStamp" : "2021-10-14T20:35:33+00:00", "manufacturer" : "TL_TUD", "serialNumber" : "Virtual_AGV"} +{"timeStamp" : "2021-10-14T20:35:33+00:00", "manufacturer" : "TL_TUD", "serialNumber" : "Virtual_AGV", "lastNodeId" : "31762128", "batteryState" : {"batteryCharge" : 88.0}, "errors" : [{"errorType" : "83", "errorLevel" : "WARNING"}, {"errorType" : "16", "errorLevel" : "FATAL"}], "loads" : [{"loadId" : "47"}, {"loadId" : "23"}]} +{"timeStamp" : "2021-10-14T19:32:20+00:00", "manufacturer" : "TL_TUD", "serialNumber" : "Virtual_AGV", "lastNodeId" : "31762128", "batteryState" : {"batteryCharge" : 86.0}, "errors" : [{"errorType" : "83", "errorLevel" : "WARNING"}, {"errorType" : "16", "errorLevel" : "FATAL"}], "agvPosition" : {"x" : 4.3, "y" : 2.5, "theta" : 1.0}, "loads" : [{"loadId" : "47"}, {"loadId" : "23"}]} \ No newline at end of file -- GitLab