First version of IoTML profile
- profile with Papyrus diagrams
- generated code
Change-Id: Ifb1b34a5567f4ae01658da43771b9d4e8666b011
Signed-off-by: Benoit Maggi <benoit.maggi@cea.fr>
diff --git a/org.eclipse.papyrus.iotml.profile/.classpath b/org.eclipse.papyrus.iotml.profile/.classpath
new file mode 100644
index 0000000..751c8f2
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.papyrus.iotml.profile/.project b/org.eclipse.papyrus.iotml.profile/.project
new file mode 100644
index 0000000..561f5b8
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.iotml.profile</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.papyrus.iotml.profile/META-INF/MANIFEST.MF b/org.eclipse.papyrus.iotml.profile/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..671b4f4
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/META-INF/MANIFEST.MF
@@ -0,0 +1,45 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.iotml.profile;singleton:=true
+Bundle-Version: 0.7.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Export-Package: IoTML.Animate,
+ IoTML.Animate.impl,
+ IoTML.Animate.util,
+ IoTML.Hardware.Actuator,
+ IoTML.Hardware.Actuator.impl,
+ IoTML.Hardware.Actuator.util,
+ IoTML.Hardware.Core,
+ IoTML.Hardware.Core.impl,
+ IoTML.Hardware.Core.util,
+ IoTML.Hardware.Network,
+ IoTML.Hardware.Network.impl,
+ IoTML.Hardware.Network.util,
+ IoTML.Hardware.Sensor,
+ IoTML.Hardware.Sensor.impl,
+ IoTML.Hardware.Sensor.util,
+ IoTML.Hybrid,
+ IoTML.Hybrid.impl,
+ IoTML.Hybrid.util,
+ IoTML.Software.Artefact,
+ IoTML.Software.Artefact.impl,
+ IoTML.Software.Artefact.util,
+ IoTML.Software.Core.Structure,
+ IoTML.Software.Core.Structure.impl,
+ IoTML.Software.Core.Structure.util,
+ IoTML.Software.Resource,
+ IoTML.Software.Resource.impl,
+ IoTML.Software.Resource.util
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.papyrus.marte.static.profile;visibility:=reexport,
+ org.eclipse.papyrus.sysml14;visibility:=reexport,
+ org.eclipse.uml2.types;visibility:=reexport,
+ org.eclipse.uml2.uml;visibility:=reexport,
+ org.eclipse.papyrus.uml.extensionpoints;bundle-version="1.2.0"
+Eclipse-LazyStart: true
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/org.eclipse.papyrus.iotml.profile/build.properties b/org.eclipse.papyrus.iotml.profile/build.properties
new file mode 100644
index 0000000..4465407
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/org.eclipse.papyrus.iotml.profile/model/IoT-ML.profile.di b/org.eclipse.papyrus.iotml.profile/model/IoT-ML.profile.di
new file mode 100644
index 0000000..bf9abab
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/model/IoT-ML.profile.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/org.eclipse.papyrus.iotml.profile/model/IoT-ML.profile.genmodel b/org.eclipse.papyrus.iotml.profile/model/IoT-ML.profile.genmodel
new file mode 100644
index 0000000..1ff6e93
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/model/IoT-ML.profile.genmodel
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/uml2/2.2.0/GenModel"
+ modelDirectory="/IoT-ML/src" modelPluginID="IoT-ML" modelName="IoT-ML"
+ rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" importerID="org.eclipse.uml2.uml.ecore.importer"
+ copyrightFields="false" usedGenPackages="../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../org.eclipse.papyrus.marte.static.profile/resources/MARTE.genmodel#//MARTE ../org.eclipse.papyrus.marte.static.profile/resources/MARTE.genmodel#//MARTE_Library ../org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.genmodel#//sysml14 ../org.eclipse.uml2.types/model/Types.genmodel#//types ../org.eclipse.uml2.uml/model/UML.genmodel#//uml"
+ operationReflection="false" importOrganizing="true">
+ <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
+ <details key="OPPOSITE_ROLE_NAMES" value="IGNORE"/>
+ <details key="DUPLICATE_FEATURES" value="DISCARD"/>
+ <details key="ANNOTATION_DETAILS" value="PROCESS"/>
+ <details key="PROPERTY_DEFAULT_EXPRESSIONS" value="IGNORE"/>
+ <details key="DUPLICATE_FEATURE_INHERITANCE" value="DISCARD"/>
+ <details key="COMMENTS" value="PROCESS"/>
+ <details key="DERIVED_FEATURES" value="PROCESS"/>
+ <details key="SUPER_CLASS_ORDER" value="PROCESS"/>
+ <details key="DUPLICATE_OPERATION_INHERITANCE" value="DISCARD"/>
+ <details key="REDEFINING_OPERATIONS" value="REPORT"/>
+ <details key="INVARIANT_CONSTRAINTS" value="PROCESS"/>
+ <details key="UNION_PROPERTIES" value="REPORT"/>
+ <details key="DUPLICATE_OPERATIONS" value="DISCARD"/>
+ <details key="NON_API_INVARIANTS" value="IGNORE"/>
+ <details key="CAMEL_CASE_NAMES" value="IGNORE"/>
+ <details key="SUBSETTING_PROPERTIES" value="REPORT"/>
+ <details key="OPERATION_BODIES" value="IGNORE"/>
+ <details key="ECORE_TAGGED_VALUES" value="PROCESS"/>
+ <details key="UNTYPED_PROPERTIES" value="REPORT"/>
+ <details key="REDEFINING_PROPERTIES" value="REPORT"/>
+ <details key="INVOCATION_DELEGATES" value="IGNORE"/>
+ <details key="VALIDATION_DELEGATES" value="IGNORE"/>
+ </genAnnotations>
+ <foreignModel>IoT-ML.profile.uml</foreignModel>
+ <genPackages xsi:type="genmodel:GenPackage" prefix="IoTML" disposableProviderFactory="true"
+ ecorePackage="IoTML.ecore#/">
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Animate" disposableProviderFactory="true"
+ ecorePackage="IoTML.ecore#//Animate">
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Animate/HumanUser">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Animate/HumanUser/base_Actor"/>
+ </genClasses>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Hardware" disposableProviderFactory="true"
+ ecorePackage="IoTML.ecore#//Hardware">
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Actuator" disposableProviderFactory="true"
+ ecorePackage="IoTML.ecore#//Hardware/Actuator">
+ <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="IoTML.ecore#//Hardware/Actuator/EnergyKind">
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IoTML.ecore#//Hardware/Actuator/EnergyKind/Electrical"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IoTML.ecore#//Hardware/Actuator/EnergyKind/Mechanical"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IoTML.ecore#//Hardware/Actuator/EnergyKind/Pneumatical"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IoTML.ecore#//Hardware/Actuator/EnergyKind/Hydraulic"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IoTML.ecore#//Hardware/Actuator/EnergyKind/None"/>
+ </genEnums>
+ <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="IoTML.ecore#//Hardware/Actuator/MovementKind">
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IoTML.ecore#//Hardware/Actuator/MovementKind/Linear"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="IoTML.ecore#//Hardware/Actuator/MovementKind/Rotational"/>
+ </genEnums>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Hardware/Actuator/HwCommonActuator">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute IoTML.ecore#//Hardware/Actuator/HwCommonActuator/energyKind"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute IoTML.ecore#//Hardware/Actuator/HwCommonActuator/movementKind"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute IoTML.ecore#//Hardware/Actuator/HwCommonActuator/isPowered"/>
+ </genClasses>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Sensor" disposableProviderFactory="true"
+ ecorePackage="IoTML.ecore#//Hardware/Sensor">
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Hardware/Sensor/HwCommonSensor">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Hardware/Sensor/HwCommonSensor/inputValueType"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Hardware/Sensor/HwCommonSensor/outputValueType"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Hardware/Sensor/HwCommonSensor/hwcommonsensor"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Hardware/Sensor/HwCommonSensor/transferFunction"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Hardware/Sensor/HwRFIDReaderSensor">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Hardware/Sensor/HwRFIDReaderSensor/tag"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Hardware/Sensor/HwTag">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute IoTML.ecore#//Hardware/Sensor/HwTag/tageFrequency"/>
+ </genClasses>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Network" disposableProviderFactory="true"
+ ecorePackage="IoTML.ecore#//Hardware/Network">
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Hardware/Network/ConnectedDevice"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Hardware/Network/Gateway"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Hardware/Network/Server"/>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Core" disposableProviderFactory="true"
+ ecorePackage="IoTML.ecore#//Hardware/Core">
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Hardware/Core/AllocateResource">
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="IoTML.ecore#//Hardware/Core/AllocateResource/AllocateResource_C1">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Hardware/Core/AllocateResource/AllocateResource_C1/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Hardware/Core/AllocateResource/AllocateResource_C1/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Hardware/Core/HasService">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Hardware/Core/HasService/base_Association"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="IoTML.ecore#//Hardware/Core/HasService/HasDevice_C1">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Hardware/Core/HasService/HasDevice_C1/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Hardware/Core/HasService/HasDevice_C1/context"/>
+ </genOperations>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="IoTML.ecore#//Hardware/Core/HasService/HasDevice_C2">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Hardware/Core/HasService/HasDevice_C2/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Hardware/Core/HasService/HasDevice_C2/context"/>
+ </genOperations>
+ </genClasses>
+ </nestedGenPackages>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Hybrid" disposableProviderFactory="true"
+ ecorePackage="IoTML.ecore#//Hybrid">
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Hybrid/PhysicalEntity"/>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Software" disposableProviderFactory="true"
+ ecorePackage="IoTML.ecore#//Software">
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Artefact" disposableProviderFactory="true"
+ ecorePackage="IoTML.ecore#//Software/Artefact">
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Software/Artefact/PropertyAccess">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Software/Artefact/PropertyAccess/base_Association"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Software/Artefact/PropertyAccess/accessedProperty"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="IoTML.ecore#//Software/Artefact/PropertyAccess/PropertyAccess_C1">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Software/Artefact/PropertyAccess/PropertyAccess_C1/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Software/Artefact/PropertyAccess/PropertyAccess_C1/context"/>
+ </genOperations>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="IoTML.ecore#//Software/Artefact/PropertyAccess/PropertyAccess_C2">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Software/Artefact/PropertyAccess/PropertyAccess_C2/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Software/Artefact/PropertyAccess/PropertyAccess_C2/context"/>
+ </genOperations>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="IoTML.ecore#//Software/Artefact/PropertyAccess/propertyAccess_C3">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Software/Artefact/PropertyAccess/propertyAccess_C3/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Software/Artefact/PropertyAccess/propertyAccess_C3/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Software/Artefact/DigitalArtefact">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Software/Artefact/DigitalArtefact/base_Class"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Software/Artefact/VirtualEntity">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Software/Artefact/VirtualEntity/phisicalEntitySpecification"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Software/Artefact/VirtualEntity/physicalEntity"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Software/Artefact/ProvideService">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Software/Artefact/ProvideService/base_Association"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="IoTML.ecore#//Software/Artefact/ProvideService/ProvideService_C2">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Software/Artefact/ProvideService/ProvideService_C2/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Software/Artefact/ProvideService/ProvideService_C2/context"/>
+ </genOperations>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="IoTML.ecore#//Software/Artefact/ProvideService/ProvideService_C1">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Software/Artefact/ProvideService/ProvideService_C1/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Software/Artefact/ProvideService/ProvideService_C1/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Software/Artefact/ProvideResource">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Software/Artefact/ProvideResource/base_Association"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="IoTML.ecore#//Software/Artefact/ProvideResource/ProvideResource_C1">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Software/Artefact/ProvideResource/ProvideResource_C1/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Software/Artefact/ProvideResource/ProvideResource_C1/context"/>
+ </genOperations>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="IoTML.ecore#//Software/Artefact/ProvideResource/ProvideResource_C2">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Software/Artefact/ProvideResource/ProvideResource_C2/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Software/Artefact/ProvideResource/ProvideResource_C2/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Software/Artefact/ServiceDescription">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Software/Artefact/ServiceDescription/base_Interface"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Software/Artefact/ServiceDescription/resourceGetSet"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Software/Artefact/Service">
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="IoTML.ecore#//Software/Artefact/Service/Service_C1">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Software/Artefact/Service/Service_C1/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="IoTML.ecore#//Software/Artefact/Service/Service_C1/context"/>
+ </genOperations>
+ </genClasses>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Core" disposableProviderFactory="true"
+ ecorePackage="IoTML.ecore#//Software/Core">
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Structure" disposableProviderFactory="true"
+ ecorePackage="IoTML.ecore#//Software/Core/Structure">
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Software/Core/Structure/MetaValueSpecification">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Software/Core/Structure/MetaValueSpecification/base_ValueSpecification"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Software/Core/Structure/MetaValueSpecification/type"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute IoTML.ecore#//Software/Core/Structure/MetaValueSpecification/description"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Software/Core/Structure/DetailedValueSpecification">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Software/Core/Structure/DetailedValueSpecification/base_ValueSpecification"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
+ createChild="true" ecoreFeature="ecore:EReference IoTML.ecore#//Software/Core/Structure/DetailedValueSpecification/metaSpecification"/>
+ </genClasses>
+ </nestedGenPackages>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Resource" disposableProviderFactory="true"
+ ecorePackage="IoTML.ecore#//Software/Resource">
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Software/Resource/NetworkResource">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Software/Resource/NetworkResource/base_Class"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="IoTML.ecore#//Software/Resource/OnDeviceResource">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Software/Resource/OnDeviceResource/base_Class"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Software/Resource/OnDeviceResource/deviceBroker"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference IoTML.ecore#//Software/Resource/OnDeviceResource/memoryBroker"/>
+ </genClasses>
+ </nestedGenPackages>
+ </nestedGenPackages>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/org.eclipse.papyrus.iotml.profile/model/IoT-ML.profile.notation b/org.eclipse.papyrus.iotml.profile/model/IoT-ML.profile.notation
new file mode 100644
index 0000000..ef5e169
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/model/IoT-ML.profile.notation
@@ -0,0 +1,2145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:configuration="http://www.eclipse.org/papyrus/infra/viewpoints/configuration" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_s3jpcCtgEeepEtCwqDnj2w" type="PapyrusUMLProfileDiagram" name="Animate" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_wQU8ECtgEeepEtCwqDnj2w" type="Class_MetaclassShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wQkzsCtgEeepEtCwqDnj2w" type="Class_MetaclassNameLabel"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Actor"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wQU8EStgEeepEtCwqDnj2w" x="188" y="145" width="143"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wTFVICtgEeepEtCwqDnj2w" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wTFVIStgEeepEtCwqDnj2w"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wTF8MCtgEeepEtCwqDnj2w" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Actor"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wTFVIitgEeepEtCwqDnj2w" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9sUnICtgEeepEtCwqDnj2w" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9sV1QCtgEeepEtCwqDnj2w" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9saGsCtgEeepEtCwqDnj2w" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9saGsStgEeepEtCwqDnj2w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9saGsitgEeepEtCwqDnj2w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9saGsytgEeepEtCwqDnj2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9saGtCtgEeepEtCwqDnj2w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9satwCtgEeepEtCwqDnj2w" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9satwStgEeepEtCwqDnj2w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9satwitgEeepEtCwqDnj2w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9satwytgEeepEtCwqDnj2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9satxCtgEeepEtCwqDnj2w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_9sK2ICtgEeepEtCwqDnj2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9sUnIStgEeepEtCwqDnj2w" x="188" y="254" width="143" height="50"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_s3jpcStgEeepEtCwqDnj2w" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_s3jpcitgEeepEtCwqDnj2w"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_s3jpcytgEeepEtCwqDnj2w">
+ <owner xmi:type="uml:Package" href="IoT-ML.profile.uml#_qEMJ8CtgEeepEtCwqDnj2w"/>
+ </styles>
+ <element xmi:type="uml:Package" href="IoT-ML.profile.uml#_qEMJ8CtgEeepEtCwqDnj2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_wTK0sCtgEeepEtCwqDnj2w" type="StereotypeCommentLink" source="_wQU8ECtgEeepEtCwqDnj2w" target="_wTFVICtgEeepEtCwqDnj2w">
+ <styles xmi:type="notation:FontStyle" xmi:id="_wTK0sStgEeepEtCwqDnj2w"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wTLbwStgEeepEtCwqDnj2w" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Actor"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wTK0sitgEeepEtCwqDnj2w" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wTK0sytgEeepEtCwqDnj2w"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wTLbwCtgEeepEtCwqDnj2w"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_BSFM4CthEeepEtCwqDnj2w" type="Extension_Edge" source="_9sUnICtgEeepEtCwqDnj2w" target="_wQU8ECtgEeepEtCwqDnj2w">
+ <styles xmi:type="notation:FontStyle" xmi:id="_BSFM4SthEeepEtCwqDnj2w"/>
+ <element xmi:type="uml:Extension" href="IoT-ML.profile.uml#_BR0uMCthEeepEtCwqDnj2w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BSFM4ithEeepEtCwqDnj2w" points="[260, 303, -643984, -643984]$[260, 195, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BS2B4CthEeepEtCwqDnj2w" id="(0.5034965034965035,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BS2o8CthEeepEtCwqDnj2w" id="(0.5034965034965035,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <css:ModelStyleSheets xmi:id="_5v-GUCtgEeepEtCwqDnj2w">
+ <stylesheets xmi:type="css:StyleSheetReference" xmi:id="_5v-tYCtgEeepEtCwqDnj2w" path="/org.eclipse.papyrus.iotml.profile/model/model-style.css"/>
+ </css:ModelStyleSheets>
+ <notation:Diagram xmi:id="_SblEcCthEeepEtCwqDnj2w" type="PapyrusUMLClassDiagram" name="Core package" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_gKf2ECtiEeeLDNWa-Yk0bg" type="Package_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gKkukCtiEeeLDNWa-Yk0bg" type="Package_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gKkukStiEeeLDNWa-Yk0bg" type="Package_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gKkukitiEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gKkukytiEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Package" href="IoT-ML.profile.uml#_Ko050CthEeepEtCwqDnj2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gKf2EStiEeeLDNWa-Yk0bg" x="517" y="149" width="232" height="387"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_96lasCtiEeeLDNWa-Yk0bg" type="Class_Shape" fillColor="8047085">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Dfl7YCtjEeeLDNWa-Yk0bg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DfmicCtjEeeLDNWa-Yk0bg" key="QualifiedNameDepth" value="2"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_96mBwCtiEeeLDNWa-Yk0bg" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_96mBwStiEeeLDNWa-Yk0bg" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_96mBwitiEeeLDNWa-Yk0bg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_96mBwytiEeeLDNWa-Yk0bg" visible="false" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_96mBxCtiEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_96mBxStiEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_96mBxitiEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_96mBxytiEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_96mByCtiEeeLDNWa-Yk0bg" visible="false" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_96mByStiEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_96mByitiEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_96mByytiEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_96mBzCtiEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_96mBzStiEeeLDNWa-Yk0bg" visible="false" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_96mBzitiEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_96mBzytiEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_96mB0CtiEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_96mB0StiEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_Ljw9kBKREdyCSNtdGzMSGg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_96lasStiEeeLDNWa-Yk0bg" x="876" y="385" width="161" height="62"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TzxUgCtjEeeLDNWa-Yk0bg" type="Class_Shape" fillColor="8047085">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zFyl8CtjEeeLDNWa-Yk0bg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zFzNACtjEeeLDNWa-Yk0bg" key="QualifiedNameDepth" value="2"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TzyioCtjEeeLDNWa-Yk0bg" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TzyioStjEeeLDNWa-Yk0bg" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TzyioitjEeeLDNWa-Yk0bg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TzyioytjEeeLDNWa-Yk0bg" visible="false" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TzyipCtjEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TzyipStjEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TzyipitjEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TzyipytjEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TzzJsCtjEeeLDNWa-Yk0bg" visible="false" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TzzJsStjEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TzzJsitjEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TzzJsytjEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TzzJtCtjEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TzzJtStjEeeLDNWa-Yk0bg" visible="false" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TzzJtitjEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TzzJtytjEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TzzJuCtjEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TzzJuStjEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_kzoXABHbEdyWC5IKDhzksw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TzxUgStjEeeLDNWa-Yk0bg" x="876" y="310" width="161" height="62"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_T1AqoCtjEeeLDNWa-Yk0bg" type="Enumeration_Shape" fillColor="8047085">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zFzNAStjEeeLDNWa-Yk0bg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zFz0ECtjEeeLDNWa-Yk0bg" key="QualifiedNameDepth" value="2"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_T1AqoitjEeeLDNWa-Yk0bg" type="Enumeration_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_T1AqoytjEeeLDNWa-Yk0bg" type="Enumeration_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T1AqpCtjEeeLDNWa-Yk0bg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_T1AqpStjEeeLDNWa-Yk0bg" visible="false" type="Enumeration_LiteralCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_T1AqpitjEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_T1AqpytjEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_T1AqqCtjEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T1AqqStjEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_VxKdYBHbEdyWC5IKDhzksw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T1AqoStjEeeLDNWa-Yk0bg" x="876" y="238" width="161" height="62"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_T2AJICtjEeeLDNWa-Yk0bg" type="Enumeration_Shape" fillColor="8047085">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zFz0EStjEeeLDNWa-Yk0bg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zFz0EitjEeeLDNWa-Yk0bg" key="QualifiedNameDepth" value="2"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_T2AJIitjEeeLDNWa-Yk0bg" type="Enumeration_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_T2AJIytjEeeLDNWa-Yk0bg" type="Enumeration_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T2AJJCtjEeeLDNWa-Yk0bg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_T2AJJStjEeeLDNWa-Yk0bg" visible="false" type="Enumeration_LiteralCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_T2AJJitjEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_T2AJJytjEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_T2AJKCtjEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T2AJKStjEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9MtaUECmEd6UTJZnztgOLw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T2AJIStjEeeLDNWa-Yk0bg" x="876" y="165" width="161" height="62"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_SblEcSthEeepEtCwqDnj2w" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_SblEcithEeepEtCwqDnj2w"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_SblEcythEeepEtCwqDnj2w">
+ <owner xmi:type="uml:Package" href="IoT-ML.profile.uml#_Ko050CthEeepEtCwqDnj2w"/>
+ <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrus.uml.diagram.clazz/model/clazzdiagram.configuration#_zzf4cXDtEeWh-MssWmCB_A"/>
+ </styles>
+ <element xmi:type="uml:Package" href="IoT-ML.profile.uml#_Ko050CthEeepEtCwqDnj2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_979TsCtiEeeLDNWa-Yk0bg" type="ElementImport_Edge" source="_gKf2ECtiEeeLDNWa-Yk0bg" target="_96lasCtiEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_979TsytiEeeLDNWa-Yk0bg" type="ElementImport_AliasLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_-VIBoCtiEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_979TtCtiEeeLDNWa-Yk0bg" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9796wCtiEeeLDNWa-Yk0bg" type="ElementImport_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_-Vf1ECtiEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9796wStiEeeLDNWa-Yk0bg" x="-15" y="-6"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_979TsStiEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:ElementImport" href="IoT-ML.profile.uml#_4YKT8CtiEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_979TsitiEeeLDNWa-Yk0bg" points="[749, 416, -643984, -643984]$[876, 416, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-VrbQCtiEeeLDNWa-Yk0bg" id="(1.0,0.689922480620155)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-VspYCtiEeeLDNWa-Yk0bg" id="(0.0,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_T0xaECtjEeeLDNWa-Yk0bg" type="ElementImport_Edge" source="_gKf2ECtiEeeLDNWa-Yk0bg" target="_TzxUgCtjEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_T0xaEytjEeeLDNWa-Yk0bg" type="ElementImport_AliasLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Vta9wCtjEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T0xaFCtjEeeLDNWa-Yk0bg" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_T0xaFStjEeeLDNWa-Yk0bg" type="ElementImport_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_VtoZICtjEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T0xaFitjEeeLDNWa-Yk0bg" x="-19" y="-12"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_T0xaEStjEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:ElementImport" href="IoT-ML.profile.uml#_JXnesCtjEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_T0xaEitjEeeLDNWa-Yk0bg" points="[749, 334, -643984, -643984]$[813, 334, -643984, -643984]$[876, 334, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VuFFECtjEeeLDNWa-Yk0bg" id="(1.0,0.4780361757105943)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VuFsICtjEeeLDNWa-Yk0bg" id="(0.0,0.3870967741935484)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_T1xfoCtjEeeLDNWa-Yk0bg" type="ElementImport_Edge" source="_gKf2ECtiEeeLDNWa-Yk0bg" target="_T1AqoCtjEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_T1yGsCtjEeeLDNWa-Yk0bg" type="ElementImport_AliasLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_VgsJUCtjEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T1yGsStjEeeLDNWa-Yk0bg" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_T1yGsitjEeeLDNWa-Yk0bg" type="ElementImport_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Vg-dMCtjEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T1yGsytjEeeLDNWa-Yk0bg" x="-18" y="-10"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_T1xfoStjEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:ElementImport" href="IoT-ML.profile.uml#_MQnsICtjEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_T1xfoitjEeeLDNWa-Yk0bg" points="[749, 269, -643984, -643984]$[876, 269, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VhKqcCtjEeeLDNWa-Yk0bg" id="(1.0,0.31007751937984496)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VhLRgCtjEeeLDNWa-Yk0bg" id="(0.0,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_T2kJ0CtjEeeLDNWa-Yk0bg" type="ElementImport_Edge" source="_gKf2ECtiEeeLDNWa-Yk0bg" target="_T2AJICtjEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_T2kJ0ytjEeeLDNWa-Yk0bg" type="ElementImport_AliasLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_USZxQCtjEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T2kJ1CtjEeeLDNWa-Yk0bg" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_T2kJ1StjEeeLDNWa-Yk0bg" type="ElementImport_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_USqP8CtjEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T2kJ1itjEeeLDNWa-Yk0bg" x="-19" y="-11"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_T2kJ0StjEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:ElementImport" href="IoT-ML.profile.uml#_QaQbACtjEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_T2kJ0itjEeeLDNWa-Yk0bg" points="[749, 198, -643984, -643984]$[750, 198, -643984, -643984]$[750, 196, -643984, -643984]$[937, 196, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_US1PECtjEeeLDNWa-Yk0bg" id="(1.0,0.12144702842377261)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_US12ICtjEeeLDNWa-Yk0bg" id="(0.0,0.5)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="__g74ACtjEeeLDNWa-Yk0bg" type="PapyrusUMLProfileDiagram" name="Core" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_BCg_gCtkEeeLDNWa-Yk0bg" type="Stereotype_Shape" fillColor="8047085">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BChmkCtkEeeLDNWa-Yk0bg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BCiNoCtkEeeLDNWa-Yk0bg" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BCiNoStkEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BCiNoitkEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BCiNoytkEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BCiNpCtkEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BCi0sCtkEeeLDNWa-Yk0bg" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BCi0sStkEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BCi0sitkEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BCi0sytkEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BCi0tCtkEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_kzoXABHbEdyWC5IKDhzksw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BCg_gStkEeeLDNWa-Yk0bg" x="87" y="117" width="156" height="53"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GcFFMCtkEeeLDNWa-Yk0bg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GcFFMitkEeeLDNWa-Yk0bg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GcFFMytkEeeLDNWa-Yk0bg" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GcFFNCtkEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GcFFNStkEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GcFFNitkEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GcFFNytkEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GcFFOCtkEeeLDNWa-Yk0bg" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GcFFOStkEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GcFFOitkEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GcFFOytkEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GcFFPCtkEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_Gb9JYCtkEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GcFFMStkEeeLDNWa-Yk0bg" x="87" y="247" width="156" height="53"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7JjQCtkEeeLDNWa-Yk0bg" type="Constraint_PackagedElementShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7JjQitkEeeLDNWa-Yk0bg" type="Constraint_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7KKUCtkEeeLDNWa-Yk0bg" type="Constraint_BodyLabel"/>
+ <element xmi:type="uml:Constraint" href="IoT-ML.profile.uml#_O699ECtkEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7JjQStkEeeLDNWa-Yk0bg" x="66" y="376" width="283"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_b6iK0CtkEeeLDNWa-Yk0bg" type="Class_MetaclassShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_b6jY8CtkEeeLDNWa-Yk0bg" type="Class_MetaclassNameLabel"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b6iK0StkEeeLDNWa-Yk0bg" x="547" y="117" width="156" height="53"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_b7AE4CtkEeeLDNWa-Yk0bg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b7AE4StkEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_b7B6ECtkEeeLDNWa-Yk0bg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b7AE4itkEeeLDNWa-Yk0bg" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ey6tMCtkEeeLDNWa-Yk0bg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ey6tMitkEeeLDNWa-Yk0bg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ey6tMytkEeeLDNWa-Yk0bg" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ey6tNCtkEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ey6tNStkEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ey6tNitkEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ey6tNytkEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ey6tOCtkEeeLDNWa-Yk0bg" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ey6tOStkEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ey6tOitkEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ey6tOytkEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ey6tPCtkEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_eyhroCtkEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ey6tMStkEeeLDNWa-Yk0bg" x="553" y="247" width="156" height="53"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nStkACtkEeeLDNWa-Yk0bg" type="Constraint_PackagedElementShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nSuLEStkEeeLDNWa-Yk0bg" type="Constraint_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nSuyICtkEeeLDNWa-Yk0bg" type="Constraint_BodyLabel"/>
+ <element xmi:type="uml:Constraint" href="IoT-ML.profile.uml#_nSIVMCtkEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nSuLECtkEeeLDNWa-Yk0bg" x="489" y="399" width="283"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_n6VksCtkEeeLDNWa-Yk0bg" type="Constraint_PackagedElementShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_n6VksitkEeeLDNWa-Yk0bg" type="Constraint_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_n6VksytkEeeLDNWa-Yk0bg" type="Constraint_BodyLabel"/>
+ <element xmi:type="uml:Constraint" href="IoT-ML.profile.uml#_n6FGACtkEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n6VksStkEeeLDNWa-Yk0bg" x="489" y="493" width="283"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="__g74AStjEeeLDNWa-Yk0bg" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="__g74AitjEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="__g74AytjEeeLDNWa-Yk0bg">
+ <owner xmi:type="uml:Package" href="IoT-ML.profile.uml#_Ko050CthEeepEtCwqDnj2w"/>
+ </styles>
+ <element xmi:type="uml:Package" href="IoT-ML.profile.uml#_Ko050CthEeepEtCwqDnj2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_PMbggCtkEeeLDNWa-Yk0bg" type="Constraint_ContextEdge" source="_O7JjQCtkEeeLDNWa-Yk0bg" target="_GcFFMCtkEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_PMbggytkEeeLDNWa-Yk0bg" type="Constraint_KeywordLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_XFfHcCtkEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PMbghCtkEeeLDNWa-Yk0bg" y="15"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_PMbggStkEeeLDNWa-Yk0bg"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PMbggitkEeeLDNWa-Yk0bg" points="[224, 407, -643984, -643984]$[224, 353, -643984, -643984]$[162, 353, -643984, -643984]$[162, 300, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PMnGsCtkEeeLDNWa-Yk0bg" id="(0.3392226148409894,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PMnGsStkEeeLDNWa-Yk0bg" id="(0.4807692307692308,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_b7ChICtkEeeLDNWa-Yk0bg" type="StereotypeCommentLink" source="_b6iK0CtkEeeLDNWa-Yk0bg" target="_b7AE4CtkEeeLDNWa-Yk0bg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_b7ChIStkEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_b7DIMStkEeeLDNWa-Yk0bg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_b7ChIitkEeeLDNWa-Yk0bg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b7ChIytkEeeLDNWa-Yk0bg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b7DIMCtkEeeLDNWa-Yk0bg"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kVmSoCtkEeeLDNWa-Yk0bg" type="Extension_Edge" source="_ey6tMCtkEeeLDNWa-Yk0bg" target="_b6iK0CtkEeeLDNWa-Yk0bg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_kVmSoStkEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:Extension" href="IoT-ML.profile.uml#_kVPGQCtkEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kVmSoitkEeeLDNWa-Yk0bg" points="[634, 247, -643984, -643984]$[634, 170, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kVuOcCtkEeeLDNWa-Yk0bg" id="(0.5192307692307693,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kVu1gCtkEeeLDNWa-Yk0bg" id="(0.5576923076923077,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_lhEAMCtkEeeLDNWa-Yk0bg" type="Generalization_Edge" source="_GcFFMCtkEeeLDNWa-Yk0bg" target="_BCg_gCtkEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_lhEnQCtkEeeLDNWa-Yk0bg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lhEnQStkEeeLDNWa-Yk0bg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_lhEAMStkEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:Generalization" href="IoT-ML.profile.uml#_lg6PMCtkEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lhEAMitkEeeLDNWa-Yk0bg" points="[162, 247, -643984, -643984]$[162, 170, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lhUe4CtkEeeLDNWa-Yk0bg" id="(0.4807692307692308,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lhVF8CtkEeeLDNWa-Yk0bg" id="(0.4807692307692308,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ngBnQCtkEeeLDNWa-Yk0bg" type="Constraint_ContextEdge" source="_nStkACtkEeeLDNWa-Yk0bg" target="_ey6tMCtkEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ngC1YCtkEeeLDNWa-Yk0bg" type="Constraint_KeywordLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_q6zsECtkEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ngC1YStkEeeLDNWa-Yk0bg" y="15"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ngBnQStkEeeLDNWa-Yk0bg"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ngBnQitkEeeLDNWa-Yk0bg" points="[621, 399, -643984, -643984]$[621, 300, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ngKxMCtkEeeLDNWa-Yk0bg" id="(0.4664310954063604,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ngKxMStkEeeLDNWa-Yk0bg" id="(0.4358974358974359,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_oJ2AUCtkEeeLDNWa-Yk0bg" type="Constraint_ContextEdge" source="_n6VksCtkEeeLDNWa-Yk0bg" target="_ey6tMCtkEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oJ2nYCtkEeeLDNWa-Yk0bg" type="Constraint_KeywordLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_raTEcCtkEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oJ2nYStkEeeLDNWa-Yk0bg" x="109" y="21"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_oJ2AUStkEeeLDNWa-Yk0bg"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oJ2AUitkEeeLDNWa-Yk0bg" points="[489, 523, -643984, -643984]$[448, 523, -643984, -643984]$[448, 272, -643984, -643984]$[553, 272, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oKGfACtkEeeLDNWa-Yk0bg" id="(0.0,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oKGfAStkEeeLDNWa-Yk0bg" id="(0.0,0.4528301886792453)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_CYKHUCtlEeeLDNWa-Yk0bg" type="PapyrusUMLClassDiagram" name="Sensor package" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_EocH4CtlEeeLDNWa-Yk0bg" type="Package_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_EocH4itlEeeLDNWa-Yk0bg" type="Package_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EocH4ytlEeeLDNWa-Yk0bg" type="Package_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EocH5CtlEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EocH5StlEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Package" href="IoT-ML.profile.uml#_GsMsMCthEeepEtCwqDnj2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EocH4StlEeeLDNWa-Yk0bg" x="270" y="299"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JjeegCtlEeeLDNWa-Yk0bg" type="Class_Shape" fillColor="8047085">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ow1UMCtlEeeLDNWa-Yk0bg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ow17QCtlEeeLDNWa-Yk0bg" key="QualifiedNameDepth" value="2"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JjfFkCtlEeeLDNWa-Yk0bg" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JjfFkStlEeeLDNWa-Yk0bg" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JjfFkitlEeeLDNWa-Yk0bg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JjfFkytlEeeLDNWa-Yk0bg" visible="false" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JjfFlCtlEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JjfFlStlEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JjfFlitlEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JjfFlytlEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JjfFmCtlEeeLDNWa-Yk0bg" visible="false" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JjfFmStlEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JjfFmitlEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JjfFmytlEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JjfFnCtlEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JjfFnStlEeeLDNWa-Yk0bg" visible="false" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JjfFnitlEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JjfFnytlEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JjfFoCtlEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JjfFoStlEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_PHH9sDL2Ed2HYNz2hI9A2g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JjeegStlEeeLDNWa-Yk0bg" x="599" y="335" width="143" height="55"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_CYKHUStlEeeLDNWa-Yk0bg" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_CYKHUitlEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_CYKHUytlEeeLDNWa-Yk0bg">
+ <owner xmi:type="uml:Package" href="IoT-ML.profile.uml#_GsMsMCthEeepEtCwqDnj2w"/>
+ <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrus.uml.diagram.clazz/model/clazzdiagram.configuration#_zzf4cXDtEeWh-MssWmCB_A"/>
+ </styles>
+ <element xmi:type="uml:Package" href="IoT-ML.profile.uml#_GsMsMCthEeepEtCwqDnj2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_JkM3QCtlEeeLDNWa-Yk0bg" type="ElementImport_Edge" source="_EocH4CtlEeeLDNWa-Yk0bg" target="_JjeegCtlEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_JkM3QytlEeeLDNWa-Yk0bg" type="ElementImport_AliasLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_J0bEkCtlEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JkM3RCtlEeeLDNWa-Yk0bg" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JkM3RStlEeeLDNWa-Yk0bg" type="ElementImport_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_J0fWACtlEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JkM3RitlEeeLDNWa-Yk0bg" x="-14" y="-16"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_JkM3QStlEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:ElementImport" href="IoT-ML.profile.uml#_GJm_sCtlEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JkM3QitlEeeLDNWa-Yk0bg" points="[470, 362, -643984, -643984]$[598, 362, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J0nR0CtlEeeLDNWa-Yk0bg" id="(1.0,0.63)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J0nR0StlEeeLDNWa-Yk0bg" id="(0.0,0.4909090909090909)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_RUzFwCtlEeeLDNWa-Yk0bg" type="PapyrusUMLProfileDiagram" name="Actuator" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_vaOoQCtlEeeLDNWa-Yk0bg" type="Stereotype_Shape" fillColor="8047085">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vaPPUCtlEeeLDNWa-Yk0bg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vaPPUStlEeeLDNWa-Yk0bg" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_vaPPUitlEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vaPPUytlEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vaPPVCtlEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vaPPVStlEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vaPPVitlEeeLDNWa-Yk0bg" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_vaPPVytlEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vaPPWCtlEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vaPPWStlEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vaPPWitlEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_PHH9sDL2Ed2HYNz2hI9A2g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vaOoQStlEeeLDNWa-Yk0bg" x="247" y="148" width="167" height="59"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ym3jYCtlEeeLDNWa-Yk0bg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ym4KcCtlEeeLDNWa-Yk0bg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ym4KcStlEeeLDNWa-Yk0bg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_oLoeICtmEeeLDNWa-Yk0bg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="IoT-ML.profile.uml#_oLZ0oCtmEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oLoeIStmEeeLDNWa-Yk0bg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ym4KcitlEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ym4KcytlEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ym4KdCtlEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ym4KdStlEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ym4KditlEeeLDNWa-Yk0bg" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ym4KdytlEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ym4KeCtlEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ym4KeStlEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ym4KeitlEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_ymw1sCtlEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ym3jYStlEeeLDNWa-Yk0bg" x="247" y="303" width="167" height="244"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EU8usCtmEeeLDNWa-Yk0bg" type="Enumeration_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_EU8usitmEeeLDNWa-Yk0bg" type="Enumeration_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EU8usytmEeeLDNWa-Yk0bg" type="Enumeration_LiteralCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_Gbm5MCtmEeeLDNWa-Yk0bg" type="EnumerationLiteral_LiteralLabel">
+ <element xmi:type="uml:EnumerationLiteral" href="IoT-ML.profile.uml#_Gbj14CtmEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Gbm5MStmEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Gvtg8CtmEeeLDNWa-Yk0bg" type="EnumerationLiteral_LiteralLabel">
+ <element xmi:type="uml:EnumerationLiteral" href="IoT-ML.profile.uml#_Gvk-ECtmEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Gvtg8StmEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HC7-8CtmEeeLDNWa-Yk0bg" type="EnumerationLiteral_LiteralLabel">
+ <element xmi:type="uml:EnumerationLiteral" href="IoT-ML.profile.uml#_HC4UkCtmEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HC7-8StmEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_H6Kh4CtmEeeLDNWa-Yk0bg" type="EnumerationLiteral_LiteralLabel">
+ <element xmi:type="uml:EnumerationLiteral" href="IoT-ML.profile.uml#_H6D0MCtmEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_H6Kh4StmEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_INyBcCtmEeeLDNWa-Yk0bg" type="EnumerationLiteral_LiteralLabel">
+ <element xmi:type="uml:EnumerationLiteral" href="IoT-ML.profile.uml#_INrTwCtmEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_INyBcStmEeeLDNWa-Yk0bg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EU8utCtmEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EU8utStmEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EU8utitmEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EU8utytmEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Enumeration" href="IoT-ML.profile.uml#_EU2BACtmEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EU8usStmEeeLDNWa-Yk0bg" x="668" y="307" width="132"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cE1EYCtmEeeLDNWa-Yk0bg" type="Enumeration_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cE1rcCtmEeeLDNWa-Yk0bg" type="Enumeration_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cE1rcStmEeeLDNWa-Yk0bg" type="Enumeration_LiteralCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_fp2DQCtmEeeLDNWa-Yk0bg" type="EnumerationLiteral_LiteralLabel">
+ <element xmi:type="uml:EnumerationLiteral" href="IoT-ML.profile.uml#_fpuHcCtmEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fp2DQStmEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_guaeoCtmEeeLDNWa-Yk0bg" type="EnumerationLiteral_LiteralLabel">
+ <element xmi:type="uml:EnumerationLiteral" href="IoT-ML.profile.uml#_guUYACtmEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_guaeoStmEeeLDNWa-Yk0bg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cE1rcitmEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cE1rcytmEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cE1rdCtmEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE1rdStmEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Enumeration" href="IoT-ML.profile.uml#_cErTYCtmEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE1EYStmEeeLDNWa-Yk0bg" x="668" y="416" width="132" height="66"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_RUzFwStlEeeLDNWa-Yk0bg" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_RUzFwitlEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_RUzFwytlEeeLDNWa-Yk0bg">
+ <owner xmi:type="uml:Package" href="IoT-ML.profile.uml#_GsMsMCthEeepEtCwqDnj2w"/>
+ </styles>
+ <element xmi:type="uml:Package" href="IoT-ML.profile.uml#_GsMsMCthEeepEtCwqDnj2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_2NjWMCtlEeeLDNWa-Yk0bg" type="Generalization_Edge" source="_ym3jYCtlEeeLDNWa-Yk0bg" target="_vaOoQCtlEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2Nj9QCtlEeeLDNWa-Yk0bg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3WvL0CtlEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2Nj9QStlEeeLDNWa-Yk0bg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_2NjWMStlEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:Generalization" href="IoT-ML.profile.uml#_2NfEwCtlEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2NjWMitlEeeLDNWa-Yk0bg" points="[331, 320, -643984, -643984]$[331, 263, -643984, -643984]$[331, 207, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2NxYoCtlEeeLDNWa-Yk0bg" id="(0.5029940119760479,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2NxYoStlEeeLDNWa-Yk0bg" id="(0.5029940119760479,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_SU9s0CtmEeeLDNWa-Yk0bg" type="Association_Edge" source="_ym3jYCtlEeeLDNWa-Yk0bg" target="_EU8usCtmEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_SU-T4CtmEeeLDNWa-Yk0bg" type="Association_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SU-T4StmEeeLDNWa-Yk0bg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SU-T4itmEeeLDNWa-Yk0bg" type="Association_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SU-T4ytmEeeLDNWa-Yk0bg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SU-T5CtmEeeLDNWa-Yk0bg" type="Association_TargetRoleLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SU-T5StmEeeLDNWa-Yk0bg" x="-53" y="-28"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SU-T5itmEeeLDNWa-Yk0bg" visible="false" type="Association_SourceRoleLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SU-T5ytmEeeLDNWa-Yk0bg" x="-25" y="19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SU-T6CtmEeeLDNWa-Yk0bg" type="Association_SourceMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SU-T6StmEeeLDNWa-Yk0bg" x="-32" y="18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SU-T6itmEeeLDNWa-Yk0bg" type="Association_TargetMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SU-T6ytmEeeLDNWa-Yk0bg" x="-15" y="-15"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_SU9s0StmEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:Association" href="IoT-ML.profile.uml#_SUpjwCtmEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SU9s0itmEeeLDNWa-Yk0bg" points="[414, 361, -643984, -643984]$[668, 361, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SVhtgCtmEeeLDNWa-Yk0bg" id="(1.0,0.23770491803278687)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SVhtgStmEeeLDNWa-Yk0bg" id="(0.0,0.5294117647058824)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_iyi5kCtmEeeLDNWa-Yk0bg" type="Association_Edge" source="_ym3jYCtlEeeLDNWa-Yk0bg" target="_cE1EYCtmEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_iyjgoCtmEeeLDNWa-Yk0bg" type="Association_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iyjgoStmEeeLDNWa-Yk0bg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iyjgoitmEeeLDNWa-Yk0bg" type="Association_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iyjgoytmEeeLDNWa-Yk0bg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iyjgpCtmEeeLDNWa-Yk0bg" type="Association_TargetRoleLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iyjgpStmEeeLDNWa-Yk0bg" x="-55" y="-30"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iyjgpitmEeeLDNWa-Yk0bg" visible="false" type="Association_SourceRoleLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iyjgpytmEeeLDNWa-Yk0bg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iyjgqCtmEeeLDNWa-Yk0bg" type="Association_SourceMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iyjgqStmEeeLDNWa-Yk0bg" x="-30" y="13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iyjgqitmEeeLDNWa-Yk0bg" type="Association_TargetMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iyjgqytmEeeLDNWa-Yk0bg" y="-16"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_iyi5kStmEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:Association" href="IoT-ML.profile.uml#_iyXTYCtmEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iyi5kitmEeeLDNWa-Yk0bg" points="[414, 452, -643984, -643984]$[668, 452, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iyyKICtmEeeLDNWa-Yk0bg" id="(1.0,0.610655737704918)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iyyKIStmEeeLDNWa-Yk0bg" id="(0.0,0.5454545454545454)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_UAMqICtnEeeLDNWa-Yk0bg" type="PapyrusUMLClassDiagram" name="Network package" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_lXbbsCtnEeeLDNWa-Yk0bg" type="Package_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_lXcCwCtnEeeLDNWa-Yk0bg" type="Package_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lXcCwStnEeeLDNWa-Yk0bg" type="Package_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lXcCwitnEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lXcCwytnEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Package" href="IoT-ML.profile.uml#_JQEXICthEeepEtCwqDnj2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lXbbsStnEeeLDNWa-Yk0bg" x="282" y="284" height="379"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mjLdICtnEeeLDNWa-Yk0bg" type="Class_Shape" fillColor="8047085">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HqLTNStoEeeLDNWa-Yk0bg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HqLTNitoEeeLDNWa-Yk0bg" key="QualifiedNameDepth" value="2"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mjLdIitnEeeLDNWa-Yk0bg" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mjLdIytnEeeLDNWa-Yk0bg" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mjLdJCtnEeeLDNWa-Yk0bg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mjLdJStnEeeLDNWa-Yk0bg" visible="false" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mjLdJitnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mjLdJytnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mjLdKCtnEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mjLdKStnEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mjMEMCtnEeeLDNWa-Yk0bg" visible="false" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mjMEMStnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mjMEMitnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mjMEMytnEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mjMENCtnEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mjMENStnEeeLDNWa-Yk0bg" visible="false" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mjMENitnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mjMENytnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mjMEOCtnEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mjMEOStnEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_tE4T4BJ9EdyT_7R0WVpWAw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mjLdIStnEeeLDNWa-Yk0bg" x="605" y="313" width="172" height="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mjuPsCtnEeeLDNWa-Yk0bg" type="Class_Shape" fillColor="8047085">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HqLTMytoEeeLDNWa-Yk0bg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HqLTNCtoEeeLDNWa-Yk0bg" key="QualifiedNameDepth" value="2"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mjuPsitnEeeLDNWa-Yk0bg" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mjuPsytnEeeLDNWa-Yk0bg" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mjuPtCtnEeeLDNWa-Yk0bg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mjuPtStnEeeLDNWa-Yk0bg" visible="false" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mjuPtitnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mjuPtytnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mjuPuCtnEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mjuPuStnEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mjuPuitnEeeLDNWa-Yk0bg" visible="false" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mjuPuytnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mjuPvCtnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mjuPvStnEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mjuPvitnEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mjuPvytnEeeLDNWa-Yk0bg" visible="false" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mjuPwCtnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mjuPwStnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mjuPwitnEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mjuPwytnEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_NrpywBJzEdygQ5HMNSpiZw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mjuPsStnEeeLDNWa-Yk0bg" x="605" y="407" width="172" height="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mkymsCtnEeeLDNWa-Yk0bg" type="Class_Shape" fillColor="8047085">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HqLTMStoEeeLDNWa-Yk0bg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HqLTMitoEeeLDNWa-Yk0bg" key="QualifiedNameDepth" value="2"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mkymsitnEeeLDNWa-Yk0bg" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mkymsytnEeeLDNWa-Yk0bg" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mkymtCtnEeeLDNWa-Yk0bg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mkymtStnEeeLDNWa-Yk0bg" visible="false" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mkymtitnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mkymtytnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mkymuCtnEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mkymuStnEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mkymuitnEeeLDNWa-Yk0bg" visible="false" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mkymuytnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mkymvCtnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mkymvStnEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mkymvitnEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mkymvytnEeeLDNWa-Yk0bg" visible="false" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mkymwCtnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mkymwStnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mkymwitnEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mkymwytnEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_-ZhPABJ-EdyT_7R0WVpWAw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mkymsStnEeeLDNWa-Yk0bg" x="605" y="506" width="172" height="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mlfKQCtnEeeLDNWa-Yk0bg" type="Class_Shape" fillColor="8047085">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HqKsICtoEeeLDNWa-Yk0bg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HqLTMCtoEeeLDNWa-Yk0bg" key="QualifiedNameDepth" value="2"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mlfxUStnEeeLDNWa-Yk0bg" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mlfxUitnEeeLDNWa-Yk0bg" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mlfxUytnEeeLDNWa-Yk0bg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mlfxVCtnEeeLDNWa-Yk0bg" visible="false" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mlfxVStnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mlfxVitnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mlfxVytnEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mlfxWCtnEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mlfxWStnEeeLDNWa-Yk0bg" visible="false" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mlfxWitnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mlfxWytnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mlfxXCtnEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mlfxXStnEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mlfxXitnEeeLDNWa-Yk0bg" visible="false" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mlfxXytnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mlfxYCtnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mlfxYStnEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mlfxYitnEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_Q4QQoBJ-EdyT_7R0WVpWAw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mlfxUCtnEeeLDNWa-Yk0bg" x="605" y="602" width="172" height="63"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_UAMqIStnEeeLDNWa-Yk0bg" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_UAMqIitnEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_UAMqIytnEeeLDNWa-Yk0bg">
+ <owner xmi:type="uml:Package" href="IoT-ML.profile.uml#_JQEXICthEeepEtCwqDnj2w"/>
+ <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrus.uml.diagram.clazz/model/clazzdiagram.configuration#_zzf4cXDtEeWh-MssWmCB_A"/>
+ </styles>
+ <element xmi:type="uml:Package" href="IoT-ML.profile.uml#_JQEXICthEeepEtCwqDnj2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_mjniACtnEeeLDNWa-Yk0bg" type="ElementImport_Edge" source="_lXbbsCtnEeeLDNWa-Yk0bg" target="_mjLdICtnEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_mjniAytnEeeLDNWa-Yk0bg" type="ElementImport_AliasLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_nFrGMCtnEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mjniBCtnEeeLDNWa-Yk0bg" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mjniBStnEeeLDNWa-Yk0bg" type="ElementImport_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_nF2FUCtnEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mjniBitnEeeLDNWa-Yk0bg" x="-21" y="-14"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_mjniAStnEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:ElementImport" href="IoT-ML.profile.uml#_eIpg0CtnEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mjniAitnEeeLDNWa-Yk0bg" points="[482, 344, -643984, -643984]$[604, 344, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nGDgsCtnEeeLDNWa-Yk0bg" id="(1.0,0.158311345646438)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nGDgsStnEeeLDNWa-Yk0bg" id="(0.0,0.49206349206349204)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_mkpcwCtnEeeLDNWa-Yk0bg" type="ElementImport_Edge" source="_lXbbsCtnEeeLDNWa-Yk0bg" target="_mjuPsCtnEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_mkpcwytnEeeLDNWa-Yk0bg" type="ElementImport_AliasLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_n-ougCtnEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mkqD0CtnEeeLDNWa-Yk0bg" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mkqD0StnEeeLDNWa-Yk0bg" type="ElementImport_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_n-2J4CtnEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mkqD0itnEeeLDNWa-Yk0bg" x="-24" y="-16"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_mkpcwStnEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:ElementImport" href="IoT-ML.profile.uml#_VSRWACtnEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mkpcwitnEeeLDNWa-Yk0bg" points="[482, 438, -643984, -643984]$[604, 438, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n_BwECtnEeeLDNWa-Yk0bg" id="(1.0,0.40633245382585753)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n_BwEStnEeeLDNWa-Yk0bg" id="(0.0,0.49206349206349204)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_mlWnYCtnEeeLDNWa-Yk0bg" type="ElementImport_Edge" source="_lXbbsCtnEeeLDNWa-Yk0bg" target="_mkymsCtnEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_mlXOcCtnEeeLDNWa-Yk0bg" type="ElementImport_AliasLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_n0Z0cCtnEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mlXOcStnEeeLDNWa-Yk0bg" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mlXOcitnEeeLDNWa-Yk0bg" type="ElementImport_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_n0hJMCtnEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mlXOcytnEeeLDNWa-Yk0bg" x="-20" y="-12"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_mlWnYStnEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:ElementImport" href="IoT-ML.profile.uml#_ipdZkCtnEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mlWnYitnEeeLDNWa-Yk0bg" points="[482, 537, -643984, -643984]$[604, 537, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n0qTICtnEeeLDNWa-Yk0bg" id="(1.0,0.6675461741424802)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n0qTIStnEeeLDNWa-Yk0bg" id="(0.0,0.49206349206349204)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_mmJ4oCtnEeeLDNWa-Yk0bg" type="ElementImport_Edge" source="_lXbbsCtnEeeLDNWa-Yk0bg" target="_mlfKQCtnEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_mmJ4oytnEeeLDNWa-Yk0bg" type="ElementImport_AliasLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_nrRGkCtnEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mmJ4pCtnEeeLDNWa-Yk0bg" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mmJ4pStnEeeLDNWa-Yk0bg" type="ElementImport_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_nrgXICtnEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mmJ4pitnEeeLDNWa-Yk0bg" x="-20" y="-16"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_mmJ4oStnEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:ElementImport" href="IoT-ML.profile.uml#_Zxbo8CtnEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mmJ4oitnEeeLDNWa-Yk0bg" points="[482, 633, -643984, -643984]$[604, 633, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nro6ACtnEeeLDNWa-Yk0bg" id="(1.0,0.920844327176781)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nro6AStnEeeLDNWa-Yk0bg" id="(0.0,0.49206349206349204)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_MJ4_wCtoEeeLDNWa-Yk0bg" type="PapyrusUMLProfileDiagram" name="Ntework" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_OpZIECtoEeeLDNWa-Yk0bg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_OpZvICtoEeeLDNWa-Yk0bg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OpZvIStoEeeLDNWa-Yk0bg" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OpZvIitoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OpZvIytoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OpZvJCtoEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OpZvJStoEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OpZvJitoEeeLDNWa-Yk0bg" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OpZvJytoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OpZvKCtoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OpZvKStoEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OpZvKitoEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_OpOwACtoEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OpZIEStoEeeLDNWa-Yk0bg" x="189" y="199" width="156" height="56"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O9oSsCtoEeeLDNWa-Yk0bg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O9oSsitoEeeLDNWa-Yk0bg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O9oSsytoEeeLDNWa-Yk0bg" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O9oStCtoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O9o5wCtoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O9o5wStoEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O9o5witoEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O9o5wytoEeeLDNWa-Yk0bg" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O9o5xCtoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O9o5xStoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O9o5xitoEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O9o5xytoEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_O9fv0CtoEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O9oSsStoEeeLDNWa-Yk0bg" x="94" y="350" width="156" height="56"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PQgycCtoEeeLDNWa-Yk0bg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_PQgycitoEeeLDNWa-Yk0bg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PQgycytoEeeLDNWa-Yk0bg" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PQgydCtoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PQgydStoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PQgyditoEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PQgydytoEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PQgyeCtoEeeLDNWa-Yk0bg" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PQgyeStoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PQgyeitoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PQgyeytoEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PQgyfCtoEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_PQZdsCtoEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PQgycStoEeeLDNWa-Yk0bg" x="299" y="350" width="156" height="56"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cVFcACtoEeeLDNWa-Yk0bg" type="Stereotype_Shape" fillColor="8047085">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cVGDECtoEeeLDNWa-Yk0bg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cVGDEStoEeeLDNWa-Yk0bg" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cVGDEitoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cVGDEytoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cVGDFCtoEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cVGDFStoEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cVGDFitoEeeLDNWa-Yk0bg" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cVGDFytoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cVGDGCtoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cVGDGStoEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cVGDGitoEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_tE4T4BJ9EdyT_7R0WVpWAw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cVFcAStoEeeLDNWa-Yk0bg" x="189" y="93" width="156" height="56"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jbwjwCtoEeeLDNWa-Yk0bg" type="Stereotype_Shape" fillColor="8047085">
+ <children xmi:type="notation:DecorationNode" xmi:id="_jbxK0CtoEeeLDNWa-Yk0bg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jbxK0StoEeeLDNWa-Yk0bg" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jbxK0itoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jbxK0ytoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jbxK1CtoEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jbxK1StoEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jbxK1itoEeeLDNWa-Yk0bg" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jbxK1ytoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jbxK2CtoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jbxK2StoEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jbxK2itoEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_NrpywBJzEdygQ5HMNSpiZw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jbwjwStoEeeLDNWa-Yk0bg" x="189" y="481" width="156" height="56"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_MJ4_wStoEeeLDNWa-Yk0bg" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_MJ4_witoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_MJ4_wytoEeeLDNWa-Yk0bg">
+ <owner xmi:type="uml:Package" href="IoT-ML.profile.uml#_JQEXICthEeepEtCwqDnj2w"/>
+ </styles>
+ <element xmi:type="uml:Package" href="IoT-ML.profile.uml#_JQEXICthEeepEtCwqDnj2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_YSfJQCtoEeeLDNWa-Yk0bg" type="Generalization_Edge" source="_O9oSsCtoEeeLDNWa-Yk0bg" target="_OpZIECtoEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_YSfwUCtoEeeLDNWa-Yk0bg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_rD4ywCtoEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YSfwUStoEeeLDNWa-Yk0bg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_YSfJQStoEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:Generalization" href="IoT-ML.profile.uml#_YScF8CtoEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YSfJQitoEeeLDNWa-Yk0bg" points="[214, 350, -643984, -643984]$[214, 255, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YSmeACtoEeeLDNWa-Yk0bg" id="(0.7692307692307693,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YSmeAStoEeeLDNWa-Yk0bg" id="(0.16025641025641027,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ZB-FcCtoEeeLDNWa-Yk0bg" type="Generalization_Edge" source="_PQgycCtoEeeLDNWa-Yk0bg" target="_OpZIECtoEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZB-FcytoEeeLDNWa-Yk0bg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_rEAukCtoEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZB-FdCtoEeeLDNWa-Yk0bg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZB-FcStoEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:Generalization" href="IoT-ML.profile.uml#_ZB6bECtoEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZB-FcitoEeeLDNWa-Yk0bg" points="[328, 350, -643984, -643984]$[328, 255, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZCGoUCtoEeeLDNWa-Yk0bg" id="(0.1858974358974359,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZCGoUStoEeeLDNWa-Yk0bg" id="(0.8910256410256411,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_fy3KcCtoEeeLDNWa-Yk0bg" type="Generalization_Edge" source="_OpZIECtoEeeLDNWa-Yk0bg" target="_cVFcACtoEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_fy3KcytoEeeLDNWa-Yk0bg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_gPD-QCtoEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fy3KdCtoEeeLDNWa-Yk0bg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_fy3KcStoEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:Generalization" href="IoT-ML.profile.uml#_fyyR8CtoEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fy3KcitoEeeLDNWa-Yk0bg" points="[261, 199, -643984, -643984]$[261, 107, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fzA7cCtoEeeLDNWa-Yk0bg" id="(0.46153846153846156,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fzA7cStoEeeLDNWa-Yk0bg" id="(0.46153846153846156,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_n9CWkCtoEeeLDNWa-Yk0bg" type="Generalization_Edge" source="_O9oSsCtoEeeLDNWa-Yk0bg" target="_jbwjwCtoEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_n9C9oCtoEeeLDNWa-Yk0bg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_rEIqYCtoEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_n9C9oStoEeeLDNWa-Yk0bg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_n9CWkStoEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:Generalization" href="IoT-ML.profile.uml#_n883ACtoEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_n9CWkitoEeeLDNWa-Yk0bg" points="[210, 406, -643984, -643984]$[210, 481, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n9N8wCtoEeeLDNWa-Yk0bg" id="(0.7435897435897436,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n9Oj0CtoEeeLDNWa-Yk0bg" id="(0.1346153846153846,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ogqBACtoEeeLDNWa-Yk0bg" type="Generalization_Edge" source="_PQgycCtoEeeLDNWa-Yk0bg" target="_jbwjwCtoEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ogqBAytoEeeLDNWa-Yk0bg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_rEMUwCtoEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ogqoECtoEeeLDNWa-Yk0bg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ogqBAStoEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:Generalization" href="IoT-ML.profile.uml#_oggQACtoEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ogqBAitoEeeLDNWa-Yk0bg" points="[317, 406, -643984, -643984]$[317, 481, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_og3cYCtoEeeLDNWa-Yk0bg" id="(0.11538461538461539,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_og3cYStoEeeLDNWa-Yk0bg" id="(0.8205128205128205,0.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_yEa2QCtoEeeLDNWa-Yk0bg" type="PapyrusUMLClassDiagram" name="Sensor package" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_1V7qUCtoEeeLDNWa-Yk0bg" type="Package_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1V8RYCtoEeeLDNWa-Yk0bg" type="Package_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1V8RYStoEeeLDNWa-Yk0bg" type="Package_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1V8RYitoEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1V8RYytoEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Package" href="IoT-ML.profile.uml#_INCz4CthEeepEtCwqDnj2w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1V7qUStoEeeLDNWa-Yk0bg" x="60" y="330" height="202"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9Op6ECtoEeeLDNWa-Yk0bg" type="Class_Shape" fillColor="8047085">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FXMHcCtpEeeLDNWa-Yk0bg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FXMHcStpEeeLDNWa-Yk0bg" key="QualifiedNameDepth" value="2"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9Op6EitoEeeLDNWa-Yk0bg" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9Op6EytoEeeLDNWa-Yk0bg" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9Op6FCtoEeeLDNWa-Yk0bg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9OqhICtoEeeLDNWa-Yk0bg" visible="false" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9OqhIStoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9OqhIitoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9OqhIytoEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9OqhJCtoEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9OqhJStoEeeLDNWa-Yk0bg" visible="false" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9OqhJitoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9OqhJytoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9OqhKCtoEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9OqhKStoEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9OqhKitoEeeLDNWa-Yk0bg" visible="false" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9OqhKytoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9OqhLCtoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9OqhLStoEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9OqhLitoEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_PzqFcBKREdyCSNtdGzMSGg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Op6EStoEeeLDNWa-Yk0bg" x="382" y="372" width="152" height="53"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-JJzcCtoEeeLDNWa-Yk0bg" type="Class_Shape" fillColor="8047085">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FXLgYCtpEeeLDNWa-Yk0bg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FXLgYStpEeeLDNWa-Yk0bg" key="QualifiedNameDepth" value="2"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-JKagCtoEeeLDNWa-Yk0bg" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-JKagStoEeeLDNWa-Yk0bg" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-JKagitoEeeLDNWa-Yk0bg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-JKagytoEeeLDNWa-Yk0bg" visible="false" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-JKahCtoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-JKahStoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-JKahitoEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-JKahytoEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-JKaiCtoEeeLDNWa-Yk0bg" visible="false" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-JKaiStoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-JKaiitoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-JKaiytoEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-JKajCtoEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-JLBkCtoEeeLDNWa-Yk0bg" visible="false" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-JLBkStoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-JLBkitoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-JLBkytoEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-JLBlCtoEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_SuQccDL2Ed2HYNz2hI9A2g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-JJzcStoEeeLDNWa-Yk0bg" x="382" y="478" width="152" height="53"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_atEDYCtqEeeZI6rMTYV60w" type="Class_Shape" fillColor="10011046">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ekzxACtqEeeZI6rMTYV60w" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ekzxAStqEeeZI6rMTYV60w" key="QualifiedNameDepth" value="0"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_atFRgCtqEeeZI6rMTYV60w" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_atF4kCtqEeeZI6rMTYV60w" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_atF4kStqEeeZI6rMTYV60w" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_atGfoCtqEeeZI6rMTYV60w" visible="false" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_atGfoStqEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_atGfoitqEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_atGfoytqEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_atGfpCtqEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_atGfpStqEeeZI6rMTYV60w" visible="false" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_atGfpitqEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_atGfpytqEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_atGfqCtqEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_atGfqStqEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_atGfqitqEeeZI6rMTYV60w" visible="false" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_atGfqytqEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_atGfrCtqEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_atGfrStqEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_atGfritqEeeZI6rMTYV60w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks.stereotype_packagedElement_ValueType"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_atEDYStqEeeZI6rMTYV60w" x="84" y="632" width="152" height="53"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_yEa2QStoEeeLDNWa-Yk0bg" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_yEa2QitoEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_yEa2QytoEeeLDNWa-Yk0bg">
+ <owner xmi:type="uml:Package" href="IoT-ML.profile.uml#_INCz4CthEeepEtCwqDnj2w"/>
+ <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrus.uml.diagram.clazz/model/clazzdiagram.configuration#_zzf4cXDtEeWh-MssWmCB_A"/>
+ </styles>
+ <element xmi:type="uml:Package" href="IoT-ML.profile.uml#_INCz4CthEeepEtCwqDnj2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_9PNTsCtoEeeLDNWa-Yk0bg" type="ElementImport_Edge" source="_1V7qUCtoEeeLDNWa-Yk0bg" target="_9Op6ECtoEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9PNTsytoEeeLDNWa-Yk0bg" type="ElementImport_AliasLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_-3ijcCtoEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9PNTtCtoEeeLDNWa-Yk0bg" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9PNTtStoEeeLDNWa-Yk0bg" type="ElementImport_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_-3oqECtoEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9PN6wCtoEeeLDNWa-Yk0bg" x="-29" y="-15"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9PNTsStoEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:ElementImport" href="IoT-ML.profile.uml#_6o1uYCtoEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9PNTsitoEeeLDNWa-Yk0bg" points="[260, 398, -643984, -643984]$[381, 398, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-3uJoCtoEeeLDNWa-Yk0bg" id="(1.0,0.33663366336633666)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-3uwsCtoEeeLDNWa-Yk0bg" id="(0.0,0.49056603773584906)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-JxegCtoEeeLDNWa-Yk0bg" type="ElementImport_Edge" source="_1V7qUCtoEeeLDNWa-Yk0bg" target="_-JJzcCtoEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-JxegytoEeeLDNWa-Yk0bg" type="ElementImport_AliasLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_BBf5kCtpEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-JxehCtoEeeLDNWa-Yk0bg" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-JxehStoEeeLDNWa-Yk0bg" type="ElementImport_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_BBmnQCtpEeeLDNWa-Yk0bg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-JxehitoEeeLDNWa-Yk0bg" x="-29" y="-15"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_-JxegStoEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:ElementImport" href="IoT-ML.profile.uml#_2-IXMCtoEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-JxegitoEeeLDNWa-Yk0bg" points="[260, 504, -643984, -643984]$[381, 504, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BBw_UCtpEeeLDNWa-Yk0bg" id="(1.0,0.8613861386138614)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BBw_UStpEeeLDNWa-Yk0bg" id="(0.0,0.49056603773584906)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_at-CUCtqEeeZI6rMTYV60w" type="ElementImport_Edge" source="_1V7qUCtoEeeLDNWa-Yk0bg" target="_atEDYCtqEeeZI6rMTYV60w">
+ <children xmi:type="notation:DecorationNode" xmi:id="_at-pYCtqEeeZI6rMTYV60w" type="ElementImport_AliasLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_e21VICtqEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_at-pYStqEeeZI6rMTYV60w" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_at-pYitqEeeZI6rMTYV60w" type="ElementImport_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_e28p4CtqEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_at-pYytqEeeZI6rMTYV60w" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_at-CUStqEeeZI6rMTYV60w"/>
+ <element xmi:type="uml:ElementImport" href="IoT-ML.profile.uml#_MZiTYCtqEeeZI6rMTYV60w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_at-CUitqEeeZI6rMTYV60w" points="[160, 532, -643984, -643984]$[160, 558, -643984, -643984]$[336, 558, -643984, -643984]$[336, 659, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_e3MhgCtqEeeZI6rMTYV60w" id="(0.5,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_e3MhgStqEeeZI6rMTYV60w" id="(0.5,0.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_HrdQICtpEeeLDNWa-Yk0bg" type="PapyrusUMLProfileDiagram" name="Sensor" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_IZT0oCtpEeeLDNWa-Yk0bg" type="Stereotype_Shape" fillColor="8047085">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IZT0oitpEeeLDNWa-Yk0bg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IZT0oytpEeeLDNWa-Yk0bg" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IZT0pCtpEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IZT0pStpEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IZT0pitpEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IZT0pytpEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IZT0qCtpEeeLDNWa-Yk0bg" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IZT0qStpEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IZT0qitpEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IZT0qytpEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IZT0rCtpEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_PzqFcBKREdyCSNtdGzMSGg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IZT0oStpEeeLDNWa-Yk0bg" x="197" y="105" width="187" height="58"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Isi5sCtpEeeLDNWa-Yk0bg" type="Stereotype_Shape" fillColor="8047085">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Isi5sitpEeeLDNWa-Yk0bg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IsjgwCtpEeeLDNWa-Yk0bg" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IsjgwStpEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IsjgwitpEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IsjgwytpEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IsjgxCtpEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IsjgxStpEeeLDNWa-Yk0bg" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IsjgxitpEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IsjgxytpEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IsjgyCtpEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IsjgyStpEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_SuQccDL2Ed2HYNz2hI9A2g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Isi5sStpEeeLDNWa-Yk0bg" x="945" y="105" width="187" height="130"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TODwoCtpEeeLDNWa-Yk0bg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_TODwoitpEeeLDNWa-Yk0bg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TOEXsCtpEeeLDNWa-Yk0bg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_hxiywCtqEeeZI6rMTYV60w" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="IoT-ML.profile.uml#_hxd6QCtqEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hxiywStqEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iXPg0CtqEeeZI6rMTYV60w" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="IoT-ML.profile.uml#_iXFIwCtqEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iXPg0StqEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uyAGcCtsEeeZI6rMTYV60w" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="IoT-ML.profile.uml#_uxw14CtsEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uyAGcStsEeeZI6rMTYV60w"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TOEXsStpEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TOEXsitpEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TOEXsytpEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TOEXtCtpEeeLDNWa-Yk0bg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TOEXtStpEeeLDNWa-Yk0bg" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TOEXtitpEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TOEXtytpEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TOEXuCtpEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TOEXuStpEeeLDNWa-Yk0bg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_TN_fMCtpEeeLDNWa-Yk0bg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TODwoStpEeeLDNWa-Yk0bg" x="945" y="317" width="187" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_s-LDQCtqEeeZI6rMTYV60w" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_s-LqUCtqEeeZI6rMTYV60w" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_s-LqUStqEeeZI6rMTYV60w" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_s-LqUitqEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_s-LqUytqEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_s-LqVCtqEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s-LqVStqEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_s-LqVitqEeeZI6rMTYV60w" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_s-LqVytqEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_s-LqWCtqEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_s-LqWStqEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s-LqWitqEeeZI6rMTYV60w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_s94vYCtqEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s-LDQStqEeeZI6rMTYV60w" x="626" y="317" width="187" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8732ECtqEeeZI6rMTYV60w" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8732EitqEeeZI6rMTYV60w" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_874dICtqEeeZI6rMTYV60w" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_PPRU8CtrEeeZI6rMTYV60w" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="IoT-ML.profile.uml#_PPHj8CtrEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PPRU8StrEeeZI6rMTYV60w"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_874dIStqEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_874dIitqEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_874dIytqEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_874dJCtqEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_874dJStqEeeZI6rMTYV60w" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_874dJitqEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_874dJytqEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_874dKCtqEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_874dKStqEeeZI6rMTYV60w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_87v6QCtqEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8732EStqEeeZI6rMTYV60w" x="183" y="317" width="217" height="91"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_HrdQIStpEeeLDNWa-Yk0bg" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_HrdQIitpEeeLDNWa-Yk0bg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_HrdQIytpEeeLDNWa-Yk0bg">
+ <owner xmi:type="uml:Package" href="IoT-ML.profile.uml#_INCz4CthEeepEtCwqDnj2w"/>
+ </styles>
+ <element xmi:type="uml:Package" href="IoT-ML.profile.uml#_INCz4CthEeepEtCwqDnj2w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Z-39ICtpEeeLDNWa-Yk0bg" type="Generalization_Edge" source="_TODwoCtpEeeLDNWa-Yk0bg" target="_Isi5sCtpEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z-39IytpEeeLDNWa-Yk0bg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_1aE4kCtqEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z-39JCtpEeeLDNWa-Yk0bg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Z-39IStpEeeLDNWa-Yk0bg"/>
+ <element xmi:type="uml:Generalization" href="IoT-ML.profile.uml#_Z-woYCtpEeeLDNWa-Yk0bg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Z-39IitpEeeLDNWa-Yk0bg" points="[1037, 272, -643984, -643984]$[1037, 163, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Z--DwCtpEeeLDNWa-Yk0bg" id="(0.4919786096256685,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Z--DwStpEeeLDNWa-Yk0bg" id="(0.4919786096256685,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_5t1z0CtqEeeZI6rMTYV60w" type="Generalization_Edge" source="_s-LDQCtqEeeZI6rMTYV60w" target="_TODwoCtpEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_5t1z0ytqEeeZI6rMTYV60w" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_7nnY4CtqEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5t2a4CtqEeeZI6rMTYV60w" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5t1z0StqEeeZI6rMTYV60w"/>
+ <element xmi:type="uml:Generalization" href="IoT-ML.profile.uml#_5to_gCtqEeeZI6rMTYV60w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5t1z0itqEeeZI6rMTYV60w" points="[691, 364, -643984, -643984]$[945, 364, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5uFEYCtqEeeZI6rMTYV60w" id="(1.0,0.5164835164835165)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5uFEYStqEeeZI6rMTYV60w" id="(0.0,0.5164835164835165)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_A_T2UCtrEeeZI6rMTYV60w" type="Generalization_Edge" source="_8732ECtqEeeZI6rMTYV60w" target="_IZT0oCtpEeeLDNWa-Yk0bg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_A_T2UytrEeeZI6rMTYV60w" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_dmZLgCtrEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A_T2VCtrEeeZI6rMTYV60w" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_A_T2UStrEeeZI6rMTYV60w"/>
+ <element xmi:type="uml:Generalization" href="IoT-ML.profile.uml#_A_AUUCtrEeeZI6rMTYV60w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_A_T2UitrEeeZI6rMTYV60w" points="[287, 317, -643984, -643984]$[287, 240, -643984, -643984]$[273, 240, -643984, -643984]$[273, 163, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A_hRsCtrEeeZI6rMTYV60w" id="(0.4792626728110599,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A_hRsStrEeeZI6rMTYV60w" id="(0.48128342245989303,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_DyGHACtrEeeZI6rMTYV60w" type="Association_Edge" source="_s-LDQCtqEeeZI6rMTYV60w" target="_8732ECtqEeeZI6rMTYV60w">
+ <children xmi:type="notation:DecorationNode" xmi:id="_DyGHAytrEeeZI6rMTYV60w" type="Association_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DyGHBCtrEeeZI6rMTYV60w" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DyGHBStrEeeZI6rMTYV60w" type="Association_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DyGHBitrEeeZI6rMTYV60w" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DyGHBytrEeeZI6rMTYV60w" type="Association_TargetRoleLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DyGHCCtrEeeZI6rMTYV60w" x="18" y="25"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DyGHCStrEeeZI6rMTYV60w" type="Association_SourceRoleLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DyGHCitrEeeZI6rMTYV60w" x="8" y="-14"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DyGHCytrEeeZI6rMTYV60w" type="Association_SourceMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DyGHDCtrEeeZI6rMTYV60w" x="-19" y="-29"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DyGHDStrEeeZI6rMTYV60w" type="Association_TargetMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DyGHDitrEeeZI6rMTYV60w" x="6" y="13"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_DyGHAStrEeeZI6rMTYV60w"/>
+ <element xmi:type="uml:Association" href="IoT-ML.profile.uml#_DxvhsCtrEeeZI6rMTYV60w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DyGHAitrEeeZI6rMTYV60w" points="[626, 367, -643984, -643984]$[370, 367, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DydTYCtrEeeZI6rMTYV60w" id="(0.0,0.5494505494505495)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DydTYStrEeeZI6rMTYV60w" id="(1.0,0.5494505494505495)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_D1inICtsEeeZI6rMTYV60w" type="PapyrusUMLProfileDiagram" name="Hybrid" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_EhKXACtsEeeZI6rMTYV60w" type="Stereotype_Shape" fillColor="8047085">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IXmdECtsEeeZI6rMTYV60w" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IXmdEStsEeeZI6rMTYV60w" key="QualifiedNameDepth" value="2"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EhK-ECtsEeeZI6rMTYV60w" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EhLlICtsEeeZI6rMTYV60w" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EhLlIStsEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EhLlIitsEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EhLlIytsEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EhLlJCtsEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EhLlJStsEeeZI6rMTYV60w" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EhLlJitsEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EhLlJytsEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EhLlKCtsEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EhLlKStsEeeZI6rMTYV60w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_LDER0BJxEdygQ5HMNSpiZw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EhKXAStsEeeZI6rMTYV60w" x="265" y="202" width="190" height="59"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PEHYYCtsEeeZI6rMTYV60w" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_PEH_cCtsEeeZI6rMTYV60w" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PEH_cStsEeeZI6rMTYV60w" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PEH_citsEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PEH_cytsEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PEH_dCtsEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PEH_dStsEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PEH_ditsEeeZI6rMTYV60w" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PEH_dytsEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PEH_eCtsEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PEH_eStsEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PEH_eitsEeeZI6rMTYV60w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_PEDG8CtsEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PEHYYStsEeeZI6rMTYV60w" x="265" y="324" width="190" height="59"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_D1inIStsEeeZI6rMTYV60w" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_D1inIitsEeeZI6rMTYV60w"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_D1inIytsEeeZI6rMTYV60w">
+ <owner xmi:type="uml:Package" href="IoT-ML.profile.uml#_iuTggCtrEeeZI6rMTYV60w"/>
+ </styles>
+ <element xmi:type="uml:Package" href="IoT-ML.profile.uml#_iuTggCtrEeeZI6rMTYV60w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_T-fnsCtsEeeZI6rMTYV60w" type="Generalization_Edge" source="_PEHYYCtsEeeZI6rMTYV60w" target="_EhKXACtsEeeZI6rMTYV60w">
+ <children xmi:type="notation:DecorationNode" xmi:id="_T-gOwCtsEeeZI6rMTYV60w" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T-gOwStsEeeZI6rMTYV60w" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_T-fnsStsEeeZI6rMTYV60w"/>
+ <element xmi:type="uml:Generalization" href="IoT-ML.profile.uml#_T-b9UCtsEeeZI6rMTYV60w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_T-fnsitsEeeZI6rMTYV60w" points="[356, 324, -643984, -643984]$[356, 261, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T-qm0CtsEeeZI6rMTYV60w" id="(0.4789473684210526,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T-qm0StsEeeZI6rMTYV60w" id="(0.4789473684210526,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_ZAiv0CttEeeZI6rMTYV60w" type="PapyrusUMLProfileDiagram" name="Virtual Entity" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_f7OqACttEeeZI6rMTYV60w" type="Class_MetaclassShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_f7OqAittEeeZI6rMTYV60w" type="Class_MetaclassNameLabel"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f7OqASttEeeZI6rMTYV60w" x="90" y="91" width="172"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f7jaIyttEeeZI6rMTYV60w" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f7jaJCttEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f7jaJittEeeZI6rMTYV60w" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f7jaJSttEeeZI6rMTYV60w" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mZ5WkCttEeeZI6rMTYV60w" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_mZ6ksCttEeeZI6rMTYV60w" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mZ9oACttEeeZI6rMTYV60w" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_ujLK0CttEeeZI6rMTYV60w" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="IoT-ML.profile.uml#_ujD2ECttEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ujLK0SttEeeZI6rMTYV60w"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mZ9oASttEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mZ9oAittEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mZ9oAyttEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mZ9oBCttEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mZ9oBSttEeeZI6rMTYV60w" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mZ9oBittEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mZ9oByttEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mZ9oCCttEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mZ9oCSttEeeZI6rMTYV60w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_mZu-gCttEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mZ5WkSttEeeZI6rMTYV60w" x="90" y="256" width="172"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-vXsoCttEeeZI6rMTYV60w" type="Constraint_PackagedElementShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-vXsoittEeeZI6rMTYV60w" type="Constraint_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-vXsoyttEeeZI6rMTYV60w" type="Constraint_BodyLabel"/>
+ <element xmi:type="uml:Constraint" href="IoT-ML.profile.uml#_-vUpUCttEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-vXsoSttEeeZI6rMTYV60w" x="313" y="200" width="303"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__Py5ICttEeeZI6rMTYV60w" type="Constraint_PackagedElementShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="__Py5IittEeeZI6rMTYV60w" type="Constraint_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="__PzgMCttEeeZI6rMTYV60w" type="Constraint_BodyLabel"/>
+ <element xmi:type="uml:Constraint" href="IoT-ML.profile.uml#__PuAoCttEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__Py5ISttEeeZI6rMTYV60w" x="312" y="286" width="303"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__1TZ8CttEeeZI6rMTYV60w" type="Constraint_PackagedElementShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="__1UBACttEeeZI6rMTYV60w" type="Constraint_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="__1UBASttEeeZI6rMTYV60w" type="Constraint_BodyLabel"/>
+ <element xmi:type="uml:Constraint" href="IoT-ML.profile.uml#__1PvkCttEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__1TZ8SttEeeZI6rMTYV60w" x="312" y="383" width="303"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fN3_UCtuEeeZI6rMTYV60w" type="Class_MetaclassShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_fN4mYCtuEeeZI6rMTYV60w" type="Class_MetaclassNameLabel"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fN3_UStuEeeZI6rMTYV60w" x="821" y="96" width="172"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fOGo0CtuEeeZI6rMTYV60w" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_fOGo0StuEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_fOGo0ytuEeeZI6rMTYV60w" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fOGo0ituEeeZI6rMTYV60w" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gpPKECtuEeeZI6rMTYV60w" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gpPKEituEeeZI6rMTYV60w" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gpPKEytuEeeZI6rMTYV60w" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gpPKFCtuEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gpPKFStuEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gpPKFituEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gpPKFytuEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gpPKGCtuEeeZI6rMTYV60w" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gpPKGStuEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gpPKGituEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gpPKGytuEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gpPKHCtuEeeZI6rMTYV60w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_gpMGwCtuEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gpPKEStuEeeZI6rMTYV60w" x="821" y="220" width="172" height="50"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mxT7kCtuEeeZI6rMTYV60w" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_mxUioCtuEeeZI6rMTYV60w" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mxUioStuEeeZI6rMTYV60w" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_y3nmECtuEeeZI6rMTYV60w" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="IoT-ML.profile.uml#_y3iGgCtuEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y3nmEStuEeeZI6rMTYV60w"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mxUioituEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mxUioytuEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mxUipCtuEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mxUipStuEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mxUipituEeeZI6rMTYV60w" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mxUipytuEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mxUiqCtuEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mxUiqStuEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mxUiqituEeeZI6rMTYV60w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_mxPqICtuEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mxT7kStuEeeZI6rMTYV60w" x="769" y="324" width="276"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KQLn8CtvEeeZI6rMTYV60w" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_KQLn8itvEeeZI6rMTYV60w" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KQLn8ytvEeeZI6rMTYV60w" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_KQLn9CtvEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KQLn9StvEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KQLn9itvEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KQLn9ytvEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_KQLn-CtvEeeZI6rMTYV60w" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_KQLn-StvEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KQLn-itvEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KQLn-ytvEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KQLn_CtvEeeZI6rMTYV60w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_PEDG8CtsEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KQLn8StvEeeZI6rMTYV60w" x="1351" y="345" width="174" height="54"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_ZAiv0SttEeeZI6rMTYV60w" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ZAiv0ittEeeZI6rMTYV60w"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_ZAiv0yttEeeZI6rMTYV60w">
+ <owner xmi:type="uml:Package" href="IoT-ML.profile.uml#_VGlbsCttEeeZI6rMTYV60w"/>
+ </styles>
+ <element xmi:type="uml:Package" href="IoT-ML.profile.uml#_VGlbsCttEeeZI6rMTYV60w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_f7kBMCttEeeZI6rMTYV60w" type="StereotypeCommentLink" source="_f7OqACttEeeZI6rMTYV60w" target="_f7jaIyttEeeZI6rMTYV60w">
+ <styles xmi:type="notation:FontStyle" xmi:id="_f7kBMSttEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f7kBNSttEeeZI6rMTYV60w" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f7kBMittEeeZI6rMTYV60w" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f7kBMyttEeeZI6rMTYV60w"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f7kBNCttEeeZI6rMTYV60w"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_sITq4CttEeeZI6rMTYV60w" type="Extension_Edge" source="_mZ5WkCttEeeZI6rMTYV60w" target="_f7OqACttEeeZI6rMTYV60w">
+ <styles xmi:type="notation:FontStyle" xmi:id="_sITq4SttEeeZI6rMTYV60w"/>
+ <element xmi:type="uml:Extension" href="IoT-ML.profile.uml#_sIFocCttEeeZI6rMTYV60w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sITq4ittEeeZI6rMTYV60w" points="[173, 256, -643984, -643984]$[173, 141, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sIa_oCttEeeZI6rMTYV60w" id="(0.48255813953488375,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sIa_oSttEeeZI6rMTYV60w" id="(0.48255813953488375,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-7v7wCttEeeZI6rMTYV60w" type="Constraint_ContextEdge" source="_-vXsoCttEeeZI6rMTYV60w" target="_mZ5WkCttEeeZI6rMTYV60w">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-7v7wyttEeeZI6rMTYV60w" type="Constraint_KeywordLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_GfcWsCtuEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-7v7xCttEeeZI6rMTYV60w" y="15"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_-7v7wSttEeeZI6rMTYV60w"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-7v7wittEeeZI6rMTYV60w" points="[313, 226, -643984, -643984]$[208, 226, -643984, -643984]$[208, 256, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-77h8CttEeeZI6rMTYV60w" id="(0.0,0.45)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-77h8SttEeeZI6rMTYV60w" id="(0.686046511627907,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__alM0CttEeeZI6rMTYV60w" type="Constraint_ContextEdge" source="__Py5ICttEeeZI6rMTYV60w" target="_mZ5WkCttEeeZI6rMTYV60w">
+ <children xmi:type="notation:DecorationNode" xmi:id="__alM0yttEeeZI6rMTYV60w" type="Constraint_KeywordLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_E1BcQCtuEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__alM1CttEeeZI6rMTYV60w" x="21" y="16"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__alM0SttEeeZI6rMTYV60w"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__alM0ittEeeZI6rMTYV60w" points="[313, 333, -643984, -643984]$[295, 333, -643984, -643984]$[295, 329, -643984, -643984]$[262, 329, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__au90CttEeeZI6rMTYV60w" id="(0.0,0.6)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__au90SttEeeZI6rMTYV60w" id="(1.0,0.73)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ACMmcCtuEeeZI6rMTYV60w" type="Constraint_ContextEdge" source="__1TZ8CttEeeZI6rMTYV60w" target="_mZ5WkCttEeeZI6rMTYV60w">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ACMmcytuEeeZI6rMTYV60w" type="Constraint_KeywordLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AmjQsCtuEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ACMmdCtuEeeZI6rMTYV60w" y="15"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ACMmcStuEeeZI6rMTYV60w"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ACMmcituEeeZI6rMTYV60w" points="[313, 423, -643984, -643984]$[181, 423, -643984, -643984]$[181, 356, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ACYMoCtuEeeZI6rMTYV60w" id="(0.0,0.4666666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ACYMoStuEeeZI6rMTYV60w" id="(0.5290697674418605,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_fOGo1CtuEeeZI6rMTYV60w" type="StereotypeCommentLink" source="_fN3_UCtuEeeZI6rMTYV60w" target="_fOGo0CtuEeeZI6rMTYV60w">
+ <styles xmi:type="notation:FontStyle" xmi:id="_fOGo1StuEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_fOGo2StuEeeZI6rMTYV60w" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fOGo1ituEeeZI6rMTYV60w" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fOGo1ytuEeeZI6rMTYV60w"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fOGo2CtuEeeZI6rMTYV60w"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_l45s4CtuEeeZI6rMTYV60w" type="Extension_Edge" source="_gpPKECtuEeeZI6rMTYV60w" target="_fN3_UCtuEeeZI6rMTYV60w">
+ <styles xmi:type="notation:FontStyle" xmi:id="_l45s4StuEeeZI6rMTYV60w"/>
+ <element xmi:type="uml:Extension" href="IoT-ML.profile.uml#_l4utwCtuEeeZI6rMTYV60w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_l45s4ituEeeZI6rMTYV60w" points="[904, 220, -643984, -643984]$[904, 146, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l5KyoCtuEeeZI6rMTYV60w" id="(0.48255813953488375,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l5KyoStuEeeZI6rMTYV60w" id="(0.48255813953488375,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_vg3FoCtuEeeZI6rMTYV60w" type="Generalization_Edge" source="_mxT7kCtuEeeZI6rMTYV60w" target="_gpPKECtuEeeZI6rMTYV60w">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vg3ssCtuEeeZI6rMTYV60w" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_yZaAECtuEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vg3ssStuEeeZI6rMTYV60w" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_vg3FoStuEeeZI6rMTYV60w"/>
+ <element xmi:type="uml:Generalization" href="IoT-ML.profile.uml#_vgstkCtuEeeZI6rMTYV60w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vg3FoituEeeZI6rMTYV60w" points="[909, 324, -643984, -643984]$[909, 297, -643984, -643984]$[907, 297, -643984, -643984]$[907, 270, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vhIycCtuEeeZI6rMTYV60w" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vhIycStuEeeZI6rMTYV60w" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Msbn8CtvEeeZI6rMTYV60w" type="Association_Edge" source="_mxT7kCtuEeeZI6rMTYV60w" target="_KQLn8CtvEeeZI6rMTYV60w">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MscPACtvEeeZI6rMTYV60w" type="Association_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_NL_40CtvEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MscPAStvEeeZI6rMTYV60w" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MscPAitvEeeZI6rMTYV60w" type="Association_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_NMPwcCtvEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MscPAytvEeeZI6rMTYV60w" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MscPBCtvEeeZI6rMTYV60w" type="Association_TargetRoleLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_NMYTUCtvEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MscPBStvEeeZI6rMTYV60w" x="-91" y="-29"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MscPBitvEeeZI6rMTYV60w" type="Association_SourceRoleLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_NMfoECtvEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MscPBytvEeeZI6rMTYV60w" x="12" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MscPCCtvEeeZI6rMTYV60w" type="Association_SourceMultiplicityLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_NMlusCtvEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MscPCStvEeeZI6rMTYV60w" x="25" y="36"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MscPCitvEeeZI6rMTYV60w" type="Association_TargetMultiplicityLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_NMscYCtvEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MscPCytvEeeZI6rMTYV60w" x="-37" y="-13"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Msbn8StvEeeZI6rMTYV60w"/>
+ <element xmi:type="uml:Association" href="IoT-ML.profile.uml#_MsOMkCtvEeeZI6rMTYV60w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Msbn8itvEeeZI6rMTYV60w" points="[1045, 377, -643984, -643984]$[1293, 377, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MsxmMCtvEeeZI6rMTYV60w" id="(1.0,0.53)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MsxmMStvEeeZI6rMTYV60w" id="(0.0,0.5925925925925926)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_Yse5cCtvEeeZI6rMTYV60w" type="PapyrusUMLProfileDiagram" name="Service" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_au1ywCtvEeeZI6rMTYV60w" type="Class_MetaclassShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_au2Z0CtvEeeZI6rMTYV60w" type="Class_MetaclassNameLabel"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_au1ywStvEeeZI6rMTYV60w" x="537" y="252" width="211" height="148"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_avGRcCtvEeeZI6rMTYV60w" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_avGRcStvEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_avGRcytvEeeZI6rMTYV60w" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_avGRcitvEeeZI6rMTYV60w" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cUrIICtvEeeZI6rMTYV60w" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cUrvMCtvEeeZI6rMTYV60w" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cUrvMStvEeeZI6rMTYV60w" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cUrvMitvEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cUrvMytvEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cUrvNCtvEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cUrvNStvEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cUrvNitvEeeZI6rMTYV60w" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cUrvNytvEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cUrvOCtvEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cUrvOStvEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cUrvOitvEeeZI6rMTYV60w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_cUpS8CtvEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cUrIIStvEeeZI6rMTYV60w" x="204" y="252" width="164" height="59"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_emlgYCtvEeeZI6rMTYV60w" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_emmHcCtvEeeZI6rMTYV60w" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_emmHcStvEeeZI6rMTYV60w" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_emmHcitvEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_emmHcytvEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_emmHdCtvEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_emmHdStvEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_emmHditvEeeZI6rMTYV60w" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_emmHdytvEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_emmHeCtvEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_emmHeStvEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_emmHeitvEeeZI6rMTYV60w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_emjrMCtvEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_emlgYStvEeeZI6rMTYV60w" x="204" y="341" width="164" height="59"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_slaLsCtvEeeZI6rMTYV60w" type="Constraint_PackagedElementShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_slaLsitvEeeZI6rMTYV60w" type="Constraint_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_slaLsytvEeeZI6rMTYV60w" type="Constraint_BodyLabel"/>
+ <element xmi:type="uml:Constraint" href="IoT-ML.profile.uml#_slVTMCtvEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_slaLsStvEeeZI6rMTYV60w" x="42" y="472" width="293"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tlVXoCtvEeeZI6rMTYV60w" type="Constraint_PackagedElementShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tlV-sCtvEeeZI6rMTYV60w" type="Constraint_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tlV-sStvEeeZI6rMTYV60w" type="Constraint_BodyLabel"/>
+ <element xmi:type="uml:Constraint" href="IoT-ML.profile.uml#_tlTicCtvEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tlVXoStvEeeZI6rMTYV60w" x="42" y="559" width="295"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-oYo8CtvEeeZI6rMTYV60w" type="Constraint_PackagedElementShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-oZQACtvEeeZI6rMTYV60w" type="Constraint_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-oZQAStvEeeZI6rMTYV60w" type="Constraint_BodyLabel"/>
+ <element xmi:type="uml:Constraint" href="IoT-ML.profile.uml#_-oWzwCtvEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-oYo8StvEeeZI6rMTYV60w" x="42" y="145" width="293"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__TCIcCtvEeeZI6rMTYV60w" type="Constraint_PackagedElementShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="__TCvgCtvEeeZI6rMTYV60w" type="Constraint_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="__TCvgStvEeeZI6rMTYV60w" type="Constraint_BodyLabel"/>
+ <element xmi:type="uml:Constraint" href="IoT-ML.profile.uml#__S_sMCtvEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__TCIcStvEeeZI6rMTYV60w" x="42" y="65" width="293"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WG_BYCtwEeeZI6rMTYV60w" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WG_ocCtwEeeZI6rMTYV60w" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_WG_ocStwEeeZI6rMTYV60w" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_jc22UCtwEeeZI6rMTYV60w" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="IoT-ML.profile.uml#_jcr3MCtwEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jc22UStwEeeZI6rMTYV60w"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WG_ocitwEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_WG_ocytwEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_WG_odCtwEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WG_odStwEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_WG_oditwEeeZI6rMTYV60w" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WG_odytwEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_WG_oeCtwEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_WG_oeStwEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WG_oeitwEeeZI6rMTYV60w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_WG8lICtwEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WG_BYStwEeeZI6rMTYV60w" x="934" y="252" width="207" height="75"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XfPNwCtwEeeZI6rMTYV60w" type="Class_MetaclassShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XfPNwitwEeeZI6rMTYV60w" type="Class_MetaclassNameLabel"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XfPNwStwEeeZI6rMTYV60w" x="934" y="108" width="207"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XffscytwEeeZI6rMTYV60w" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XffsdCtwEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XffsditwEeeZI6rMTYV60w" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XffsdStwEeeZI6rMTYV60w" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6t4s0CtwEeeZI6rMTYV60w" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_6t4s0itwEeeZI6rMTYV60w" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6t4s0ytwEeeZI6rMTYV60w" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6t4s1CtwEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6t4s1StwEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6t4s1itwEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6t4s1ytwEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6t5T4CtwEeeZI6rMTYV60w" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6t5T4StwEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6t5T4itwEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6t5T4ytwEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6t5T5CtwEeeZI6rMTYV60w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_gpMGwCtuEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6t4s0StwEeeZI6rMTYV60w" x="1302" y="108" width="207" height="50"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__nYyYCtwEeeZI6rMTYV60w" type="Class_MetaclassShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="__nYyYitwEeeZI6rMTYV60w" type="Class_MetaclassNameLabel"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__nYyYStwEeeZI6rMTYV60w" x="1300" y="16" width="207"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__nkYkytwEeeZI6rMTYV60w" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__nkYlCtwEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="__nkYlitwEeeZI6rMTYV60w" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__nkYlStwEeeZI6rMTYV60w" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_END9ACtxEeeZI6rMTYV60w" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_END9AitxEeeZI6rMTYV60w" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_END9AytxEeeZI6rMTYV60w" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_END9BCtxEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_END9BStxEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_END9BitxEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_END9BytxEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ENEkECtxEeeZI6rMTYV60w" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ENEkEStxEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ENEkEitxEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ENEkEytxEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ENEkFCtxEeeZI6rMTYV60w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_ENBgwCtxEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_END9AStxEeeZI6rMTYV60w" x="1302" y="252" width="207" height="75"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_K0-sMCtxEeeZI6rMTYV60w" type="Constraint_PackagedElementShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_K0-sMitxEeeZI6rMTYV60w" type="Constraint_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_K0_TQCtxEeeZI6rMTYV60w" type="Constraint_BodyLabel"/>
+ <element xmi:type="uml:Constraint" href="IoT-ML.profile.uml#_K07B0CtxEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_K0-sMStxEeeZI6rMTYV60w" x="1259" y="472" width="293"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Yse5cStvEeeZI6rMTYV60w" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Yse5citvEeeZI6rMTYV60w"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Yse5cytvEeeZI6rMTYV60w">
+ <owner xmi:type="uml:Package" href="IoT-ML.profile.uml#_VGlbsCttEeeZI6rMTYV60w"/>
+ </styles>
+ <element xmi:type="uml:Package" href="IoT-ML.profile.uml#_VGlbsCttEeeZI6rMTYV60w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_avGRdCtvEeeZI6rMTYV60w" type="StereotypeCommentLink" source="_au1ywCtvEeeZI6rMTYV60w" target="_avGRcCtvEeeZI6rMTYV60w">
+ <styles xmi:type="notation:FontStyle" xmi:id="_avGRdStvEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_avGReStvEeeZI6rMTYV60w" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_avGRditvEeeZI6rMTYV60w" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_avGRdytvEeeZI6rMTYV60w"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_avGReCtvEeeZI6rMTYV60w"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_odUU8CtvEeeZI6rMTYV60w" type="Extension_Edge" source="_cUrIICtvEeeZI6rMTYV60w" target="_au1ywCtvEeeZI6rMTYV60w">
+ <styles xmi:type="notation:FontStyle" xmi:id="_odUU8StvEeeZI6rMTYV60w"/>
+ <element xmi:type="uml:Extension" href="IoT-ML.profile.uml#_odIuwCtvEeeZI6rMTYV60w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_odUU8itvEeeZI6rMTYV60w" points="[368, 281, -643984, -643984]$[537, 281, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_odde4CtvEeeZI6rMTYV60w" id="(1.0,0.4915254237288136)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_odde4StvEeeZI6rMTYV60w" id="(0.0,0.19594594594594594)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_pGtQMCtvEeeZI6rMTYV60w" type="Extension_Edge" source="_emlgYCtvEeeZI6rMTYV60w" target="_au1ywCtvEeeZI6rMTYV60w">
+ <styles xmi:type="notation:FontStyle" xmi:id="_pGtQMStvEeeZI6rMTYV60w"/>
+ <element xmi:type="uml:Extension" href="IoT-ML.profile.uml#_pGlUYCtvEeeZI6rMTYV60w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pGtQMitvEeeZI6rMTYV60w" points="[368, 369, -643984, -643984]$[537, 369, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pG3oQCtvEeeZI6rMTYV60w" id="(1.0,0.4745762711864407)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pG3oQStvEeeZI6rMTYV60w" id="(0.0,0.7905405405405406)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_tFh2MCtvEeeZI6rMTYV60w" type="Constraint_ContextEdge" source="_slaLsCtvEeeZI6rMTYV60w" target="_emlgYCtvEeeZI6rMTYV60w">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tFh2MytvEeeZI6rMTYV60w" type="Constraint_KeywordLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_xj6GACtvEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tFh2NCtvEeeZI6rMTYV60w" y="15"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_tFh2MStvEeeZI6rMTYV60w"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tFh2MitvEeeZI6rMTYV60w" points="[259, 472, -643984, -643984]$[259, 400, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tFpK8CtvEeeZI6rMTYV60w" id="(0.7406143344709898,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tFpK8StvEeeZI6rMTYV60w" id="(0.3353658536585366,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_uHm-QCtvEeeZI6rMTYV60w" type="Constraint_ContextEdge" source="_tlVXoCtvEeeZI6rMTYV60w" target="_emlgYCtvEeeZI6rMTYV60w">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uHnlUCtvEeeZI6rMTYV60w" type="Constraint_KeywordLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_vUPJcCtvEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uHnlUStvEeeZI6rMTYV60w" y="15"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_uHm-QStvEeeZI6rMTYV60w"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uHm-QitvEeeZI6rMTYV60w" points="[337, 591, -643984, -643984]$[351, 591, -643984, -643984]$[351, 400, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uHwIMCtvEeeZI6rMTYV60w" id="(1.0,0.5333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uHwvQCtvEeeZI6rMTYV60w" id="(0.8963414634146342,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-2J_MCtvEeeZI6rMTYV60w" type="Constraint_ContextEdge" source="_-oYo8CtvEeeZI6rMTYV60w" target="_cUrIICtvEeeZI6rMTYV60w">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-2J_MytvEeeZI6rMTYV60w" type="Constraint_KeywordLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_A-tAECtwEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-2J_NCtvEeeZI6rMTYV60w" x="21" y="45"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_-2J_MStvEeeZI6rMTYV60w"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-2J_MitvEeeZI6rMTYV60w" points="[335, 195, -643984, -643984]$[375, 195, -643984, -643984]$[375, 266, -643984, -643984]$[368, 266, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-2TJICtvEeeZI6rMTYV60w" id="(1.0,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-2TJIStvEeeZI6rMTYV60w" id="(1.0,0.22033898305084745)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__l9EcCtvEeeZI6rMTYV60w" type="Constraint_ContextEdge" source="__TCIcCtvEeeZI6rMTYV60w" target="_cUrIICtvEeeZI6rMTYV60w">
+ <children xmi:type="notation:DecorationNode" xmi:id="__l9EcytvEeeZI6rMTYV60w" type="Constraint_KeywordLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_BjUJACtwEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__l9EdCtvEeeZI6rMTYV60w" x="-14" y="49"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__l9EcStvEeeZI6rMTYV60w"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__l9EcitvEeeZI6rMTYV60w" points="[335, 104, -643984, -643984]$[400, 104, -643984, -643984]$[400, 273, -643984, -643984]$[368, 273, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__mG1cCtvEeeZI6rMTYV60w" id="(1.0,0.6333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__mG1cStvEeeZI6rMTYV60w" id="(1.0,0.3559322033898305)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XffsdytwEeeZI6rMTYV60w" type="StereotypeCommentLink" source="_XfPNwCtwEeeZI6rMTYV60w" target="_XffscytwEeeZI6rMTYV60w">
+ <styles xmi:type="notation:FontStyle" xmi:id="_XffseCtwEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_XfgTgCtwEeeZI6rMTYV60w" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XffseStwEeeZI6rMTYV60w" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XffseitwEeeZI6rMTYV60w"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XffseytwEeeZI6rMTYV60w"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gn0i4CtwEeeZI6rMTYV60w" type="Extension_Edge" source="_WG_BYCtwEeeZI6rMTYV60w" target="_XfPNwCtwEeeZI6rMTYV60w">
+ <styles xmi:type="notation:FontStyle" xmi:id="_gn0i4StwEeeZI6rMTYV60w"/>
+ <element xmi:type="uml:Extension" href="IoT-ML.profile.uml#_gnl5YCtwEeeZI6rMTYV60w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gn0i4itwEeeZI6rMTYV60w" points="[1032, 266, -643984, -643984]$[1032, 158, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_goAJECtwEeeZI6rMTYV60w" id="(0.47342995169082125,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_goAJEStwEeeZI6rMTYV60w" id="(0.47342995169082125,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__nkYlytwEeeZI6rMTYV60w" type="StereotypeCommentLink" source="__nYyYCtwEeeZI6rMTYV60w" target="__nkYkytwEeeZI6rMTYV60w">
+ <styles xmi:type="notation:FontStyle" xmi:id="__nkYmCtwEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="__nkYnCtwEeeZI6rMTYV60w" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__nkYmStwEeeZI6rMTYV60w" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__nkYmitwEeeZI6rMTYV60w"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__nkYmytwEeeZI6rMTYV60w"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__nxz8CtwEeeZI6rMTYV60w" type="Extension_Edge" source="_6t4s0CtwEeeZI6rMTYV60w" target="__nYyYCtwEeeZI6rMTYV60w">
+ <styles xmi:type="notation:FontStyle" xmi:id="__nxz8StwEeeZI6rMTYV60w"/>
+ <element xmi:type="uml:Extension" href="IoT-ML.profile.uml#_l4utwCtuEeeZI6rMTYV60w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__nxz8itwEeeZI6rMTYV60w" points="[1404, 108, -643984, -643984]$[1404, 87, -643984, -643984]$[1404, 66, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ABy2cCtxEeeZI6rMTYV60w" id="(0.4927536231884058,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ABy2cStxEeeZI6rMTYV60w" id="(0.5024154589371981,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_H-cj8CtxEeeZI6rMTYV60w" type="Generalization_Edge" source="_END9ACtxEeeZI6rMTYV60w" target="_6t4s0CtwEeeZI6rMTYV60w">
+ <children xmi:type="notation:DecorationNode" xmi:id="_H-cj8ytxEeeZI6rMTYV60w" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_H-cj9CtxEeeZI6rMTYV60w" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_H-cj8StxEeeZI6rMTYV60w"/>
+ <element xmi:type="uml:Generalization" href="IoT-ML.profile.uml#_H-SL4CtxEeeZI6rMTYV60w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_H-cj8itxEeeZI6rMTYV60w" points="[1405, 252, -643984, -643984]$[1405, 158, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_H-u30CtxEeeZI6rMTYV60w" id="(0.4975845410628019,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_H-u30StxEeeZI6rMTYV60w" id="(0.4975845410628019,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_LLzQwCtxEeeZI6rMTYV60w" type="Constraint_ContextEdge" source="_K0-sMCtxEeeZI6rMTYV60w" target="_END9ACtxEeeZI6rMTYV60w">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LLzQwytxEeeZI6rMTYV60w" type="Constraint_KeywordLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_OvbvkCtxEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LLzQxCtxEeeZI6rMTYV60w" y="15"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_LLzQwStxEeeZI6rMTYV60w"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LLzQwitxEeeZI6rMTYV60w" points="[1403, 472, -643984, -643984]$[1403, 327, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LMDvcCtxEeeZI6rMTYV60w" id="(0.49146757679180886,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LMDvcStxEeeZI6rMTYV60w" id="(0.48792270531400966,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_lXlBICtxEeeZI6rMTYV60w" type="PapyrusUMLProfileDiagram" name="Structure" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_qDFuACtxEeeZI6rMTYV60w" type="Class_MetaclassShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qDGVECtxEeeZI6rMTYV60w" type="Class_MetaclassNameLabel"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ValueSpecification"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qDFuAStxEeeZI6rMTYV60w" x="51" y="65" width="621"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qDQtIytxEeeZI6rMTYV60w" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qDQtJCtxEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_qDQtJitxEeeZI6rMTYV60w" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ValueSpecification"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qDQtJStxEeeZI6rMTYV60w" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rm8tcCtxEeeZI6rMTYV60w" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_rm8tcitxEeeZI6rMTYV60w" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_rm9UgCtxEeeZI6rMTYV60w" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_2Hn24CtxEeeZI6rMTYV60w" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="IoT-ML.profile.uml#_2HkMgCtxEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2Hn24StxEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BbszMCtyEeeZI6rMTYV60w" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="IoT-ML.profile.uml#_Bbpv4CtyEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BbszMStyEeeZI6rMTYV60w"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_rm9UgStxEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_rm9UgitxEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_rm9UgytxEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rm9UhCtxEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_rm9UhStxEeeZI6rMTYV60w" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_rm9UhitxEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_rm9UhytxEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_rm9UiCtxEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rm9UiStxEeeZI6rMTYV60w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_rm64QCtxEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rm8tcStxEeeZI6rMTYV60w" x="51" y="258" width="202" height="82"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Fw-KUCtyEeeZI6rMTYV60w" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Fw-xYCtyEeeZI6rMTYV60w" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Fw-xYStyEeeZI6rMTYV60w" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Fw-xYityEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Fw-xYytyEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Fw-xZCtyEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Fw-xZStyEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Fw-xZityEeeZI6rMTYV60w" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Fw-xZytyEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Fw-xaCtyEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Fw-xaStyEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Fw-xaityEeeZI6rMTYV60w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_Fw88MCtyEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Fw-KUStyEeeZI6rMTYV60w" x="470" y="258" width="202" height="82"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_lXloMCtxEeeZI6rMTYV60w" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_lXloMStxEeeZI6rMTYV60w"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_lXloMitxEeeZI6rMTYV60w">
+ <owner xmi:type="uml:Package" href="IoT-ML.profile.uml#_hrtzYCtxEeeZI6rMTYV60w"/>
+ </styles>
+ <element xmi:type="uml:Package" href="IoT-ML.profile.uml#_hrtzYCtxEeeZI6rMTYV60w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_qDRUMCtxEeeZI6rMTYV60w" type="StereotypeCommentLink" source="_qDFuACtxEeeZI6rMTYV60w" target="_qDQtIytxEeeZI6rMTYV60w">
+ <styles xmi:type="notation:FontStyle" xmi:id="_qDRUMStxEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_qDRUNStxEeeZI6rMTYV60w" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ValueSpecification"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qDRUMitxEeeZI6rMTYV60w" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qDRUMytxEeeZI6rMTYV60w"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qDRUNCtxEeeZI6rMTYV60w"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_1Jn9kCtxEeeZI6rMTYV60w" type="Extension_Edge" source="_rm8tcCtxEeeZI6rMTYV60w" target="_qDFuACtxEeeZI6rMTYV60w">
+ <styles xmi:type="notation:FontStyle" xmi:id="_1Jn9kStxEeeZI6rMTYV60w"/>
+ <element xmi:type="uml:Extension" href="IoT-ML.profile.uml#_1JgBwCtxEeeZI6rMTYV60w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1Jn9kitxEeeZI6rMTYV60w" points="[151, 258, -643984, -643984]$[151, 115, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1Jv5YCtxEeeZI6rMTYV60w" id="(0.49504950495049505,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1Jv5YStxEeeZI6rMTYV60w" id="(0.1610305958132045,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_JPA-gCtyEeeZI6rMTYV60w" type="Extension_Edge" source="_Fw-KUCtyEeeZI6rMTYV60w" target="_qDFuACtxEeeZI6rMTYV60w">
+ <styles xmi:type="notation:FontStyle" xmi:id="_JPA-gStyEeeZI6rMTYV60w"/>
+ <element xmi:type="uml:Extension" href="IoT-ML.profile.uml#_JO6Q0CtyEeeZI6rMTYV60w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JPA-gityEeeZI6rMTYV60w" points="[572, 258, -643984, -643984]$[572, 115, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JPI6UCtyEeeZI6rMTYV60w" id="(0.504950495049505,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JPI6UStyEeeZI6rMTYV60w" id="(0.8389694041867954,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_OMovECtyEeeZI6rMTYV60w" type="Association_Edge" source="_Fw-KUCtyEeeZI6rMTYV60w" target="_rm8tcCtxEeeZI6rMTYV60w">
+ <children xmi:type="notation:DecorationNode" xmi:id="_OMovEytyEeeZI6rMTYV60w" type="Association_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OMovFCtyEeeZI6rMTYV60w" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OMovFStyEeeZI6rMTYV60w" type="Association_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OMovFityEeeZI6rMTYV60w" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OMovFytyEeeZI6rMTYV60w" type="Association_TargetRoleLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OMpWICtyEeeZI6rMTYV60w" x="25" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OMpWIStyEeeZI6rMTYV60w" type="Association_SourceRoleLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OMpWIityEeeZI6rMTYV60w" x="74" y="28"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OMpWIytyEeeZI6rMTYV60w" type="Association_SourceMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OMpWJCtyEeeZI6rMTYV60w" x="-11" y="13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OMpWJStyEeeZI6rMTYV60w" type="Association_TargetMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OMpWJityEeeZI6rMTYV60w" x="13" y="-34"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_OMovEStyEeeZI6rMTYV60w"/>
+ <element xmi:type="uml:Association" href="IoT-ML.profile.uml#_OMj2kCtyEeeZI6rMTYV60w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OMovEityEeeZI6rMTYV60w" points="[470, 306, -643984, -643984]$[253, 306, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OM4msCtyEeeZI6rMTYV60w" id="(0.0,0.5853658536585366)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OM4msStyEeeZI6rMTYV60w" id="(1.0,0.5853658536585366)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_v_8RgCtyEeeZI6rMTYV60w" type="PapyrusUMLClassDiagram" name="Resource package" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_zIq9ACtyEeeZI6rMTYV60w" type="Package_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_zIrkECtyEeeZI6rMTYV60w" type="Package_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zIrkEStyEeeZI6rMTYV60w" type="Package_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_zIrkEityEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zIrkEytyEeeZI6rMTYV60w"/>
+ </children>
+ <element xmi:type="uml:Package" href="IoT-ML.profile.uml#_skdpICtyEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zIq9AStyEeeZI6rMTYV60w" x="282" y="304" height="187"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BsFjICtzEeeZI6rMTYV60w" type="Class_Shape" fillColor="8047085">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FdGWoCtzEeeZI6rMTYV60w" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FdGWoStzEeeZI6rMTYV60w" key="QualifiedNameDepth" value="2"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BsFjIitzEeeZI6rMTYV60w" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BsFjIytzEeeZI6rMTYV60w" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BsFjJCtzEeeZI6rMTYV60w" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BsFjJStzEeeZI6rMTYV60w" visible="false" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BsFjJitzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BsFjJytzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BsFjKCtzEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BsFjKStzEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BsFjKitzEeeZI6rMTYV60w" visible="false" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BsFjKytzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BsFjLCtzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BsFjLStzEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BsFjLitzEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BsFjLytzEeeZI6rMTYV60w" visible="false" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BsFjMCtzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BsFjMStzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BsFjMitzEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BsFjMytzEeeZI6rMTYV60w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_IXI-cBJuEdyNBsnA2HLmgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BsFjIStzEeeZI6rMTYV60w" x="655" y="341" width="146" height="53"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Bsl5cCtzEeeZI6rMTYV60w" type="Class_Shape" fillColor="8047085">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FdG9sCtzEeeZI6rMTYV60w" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FdG9sStzEeeZI6rMTYV60w" key="QualifiedNameDepth" value="2"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Bsl5citzEeeZI6rMTYV60w" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Bsl5cytzEeeZI6rMTYV60w" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Bsl5dCtzEeeZI6rMTYV60w" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Bsl5dStzEeeZI6rMTYV60w" visible="false" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Bsl5ditzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Bsl5dytzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Bsl5eCtzEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bsl5eStzEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Bsl5eitzEeeZI6rMTYV60w" visible="false" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Bsl5eytzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Bsl5fCtzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Bsl5fStzEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bsl5fitzEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Bsl5fytzEeeZI6rMTYV60w" visible="false" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Bsl5gCtzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Bsl5gStzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Bsl5gitzEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bsl5gytzEeeZI6rMTYV60w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ovMq4BJuEdyNBsnA2HLmgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bsl5cStzEeeZI6rMTYV60w" x="655" y="436" width="146" height="53"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_v_8RgStyEeeZI6rMTYV60w" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_v_8RgityEeeZI6rMTYV60w"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_v_8RgytyEeeZI6rMTYV60w">
+ <owner xmi:type="uml:Package" href="IoT-ML.profile.uml#_skdpICtyEeeZI6rMTYV60w"/>
+ <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrus.uml.diagram.clazz/model/clazzdiagram.configuration#_zzf4cXDtEeWh-MssWmCB_A"/>
+ </styles>
+ <element xmi:type="uml:Package" href="IoT-ML.profile.uml#_skdpICtyEeeZI6rMTYV60w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Bsfy0CtzEeeZI6rMTYV60w" type="ElementImport_Edge" source="_zIq9ACtyEeeZI6rMTYV60w" target="_BsFjICtzEeeZI6rMTYV60w">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Bsfy0ytzEeeZI6rMTYV60w" type="ElementImport_AliasLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CDzfkCtzEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Bsfy1CtzEeeZI6rMTYV60w" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BsgZ4CtzEeeZI6rMTYV60w" type="ElementImport_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CD5mMCtzEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BsgZ4StzEeeZI6rMTYV60w" x="-20" y="-18"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Bsfy0StzEeeZI6rMTYV60w"/>
+ <element xmi:type="uml:ElementImport" href="IoT-ML.profile.uml#_13Nm4CtyEeeZI6rMTYV60w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bsfy0itzEeeZI6rMTYV60w" points="[482, 367, -643984, -643984]$[655, 367, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CECJECtzEeeZI6rMTYV60w" id="(1.0,0.33689839572192515)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CECJEStzEeeZI6rMTYV60w" id="(0.0,0.49056603773584906)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_BtDMcCtzEeeZI6rMTYV60w" type="ElementImport_Edge" source="_zIq9ACtyEeeZI6rMTYV60w" target="_Bsl5cCtzEeeZI6rMTYV60w">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BtDMcytzEeeZI6rMTYV60w" type="ElementImport_AliasLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_ChL_ICtzEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BtDMdCtzEeeZI6rMTYV60w" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BtDMdStzEeeZI6rMTYV60w" type="ElementImport_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_ChSFwCtzEeeZI6rMTYV60w" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BtDMditzEeeZI6rMTYV60w" x="-25" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_BtDMcStzEeeZI6rMTYV60w"/>
+ <element xmi:type="uml:ElementImport" href="IoT-ML.profile.uml#_-xvR4CtyEeeZI6rMTYV60w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BtDMcitzEeeZI6rMTYV60w" points="[482, 462, -643984, -643984]$[655, 462, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ChZagCtzEeeZI6rMTYV60w" id="(1.0,0.8449197860962567)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ChZagStzEeeZI6rMTYV60w" id="(0.0,0.49056603773584906)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_mYGYECtzEeeZI6rMTYV60w" type="PapyrusUMLProfileDiagram" name="Resource" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_o4JS8CtzEeeZI6rMTYV60w" type="Class_MetaclassShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_o4J6ACtzEeeZI6rMTYV60w" type="Class_MetaclassNameLabel"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o4JS8StzEeeZI6rMTYV60w" x="364" y="150" width="633"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_o4aYsCtzEeeZI6rMTYV60w" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_o4aYsStzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_o4aYsytzEeeZI6rMTYV60w" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o4aYsitzEeeZI6rMTYV60w" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qMNi4CtzEeeZI6rMTYV60w" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qMNi4itzEeeZI6rMTYV60w" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qMNi4ytzEeeZI6rMTYV60w" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qMNi5CtzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qMNi5StzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qMNi5itzEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qMNi5ytzEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qMNi6CtzEeeZI6rMTYV60w" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_qMNi6StzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qMNi6itzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qMNi6ytzEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qMNi7CtzEeeZI6rMTYV60w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_qMEY8CtzEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qMNi4StzEeeZI6rMTYV60w" x="364" y="277" width="179" height="77"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_veNoACtzEeeZI6rMTYV60w" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_veNoAitzEeeZI6rMTYV60w" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_veNoAytzEeeZI6rMTYV60w" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_3d9FwCtzEeeZI6rMTYV60w" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="IoT-ML.profile.uml#_3d40UCtzEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3d9FwStzEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4Ks3ACtzEeeZI6rMTYV60w" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="IoT-ML.profile.uml#_4KpMoCtzEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4Ks3AStzEeeZI6rMTYV60w"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_veNoBCtzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_veNoBStzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_veNoBitzEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_veNoBytzEeeZI6rMTYV60w"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_veNoCCtzEeeZI6rMTYV60w" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_veNoCStzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_veNoCitzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_veNoCytzEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_veNoDCtzEeeZI6rMTYV60w"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="IoT-ML.profile.uml#_veD3ACtzEeeZI6rMTYV60w"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_veNoAStzEeeZI6rMTYV60w" x="752" y="277" width="245" height="77"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_mYGYEStzEeeZI6rMTYV60w" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_mYGYEitzEeeZI6rMTYV60w"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_mYGYEytzEeeZI6rMTYV60w">
+ <owner xmi:type="uml:Package" href="IoT-ML.profile.uml#_skdpICtyEeeZI6rMTYV60w"/>
+ </styles>
+ <element xmi:type="uml:Package" href="IoT-ML.profile.uml#_skdpICtyEeeZI6rMTYV60w"/>
+ <edges xmi:type="notation:Connector" xmi:id="_o4aYtCtzEeeZI6rMTYV60w" type="StereotypeCommentLink" source="_o4JS8CtzEeeZI6rMTYV60w" target="_o4aYsCtzEeeZI6rMTYV60w">
+ <styles xmi:type="notation:FontStyle" xmi:id="_o4aYtStzEeeZI6rMTYV60w"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_o4a_wCtzEeeZI6rMTYV60w" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_o4aYtitzEeeZI6rMTYV60w" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_o4aYtytzEeeZI6rMTYV60w"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_o4aYuCtzEeeZI6rMTYV60w"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ux1qMCtzEeeZI6rMTYV60w" type="Extension_Edge" source="_qMNi4CtzEeeZI6rMTYV60w" target="_o4JS8CtzEeeZI6rMTYV60w">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ux1qMStzEeeZI6rMTYV60w"/>
+ <element xmi:type="uml:Extension" href="IoT-ML.profile.uml#_uxrSICtzEeeZI6rMTYV60w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ux1qMitzEeeZI6rMTYV60w" points="[455, 277, -643984, -643984]$[455, 238, -643984, -643984]$[454, 238, -643984, -643984]$[454, 200, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ux6isCtzEeeZI6rMTYV60w" id="(0.5027932960893855,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ux6isStzEeeZI6rMTYV60w" id="(0.14218009478672985,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_2VMG4CtzEeeZI6rMTYV60w" type="Extension_Edge" source="_veNoACtzEeeZI6rMTYV60w" target="_o4JS8CtzEeeZI6rMTYV60w">
+ <styles xmi:type="notation:FontStyle" xmi:id="_2VMG4StzEeeZI6rMTYV60w"/>
+ <element xmi:type="uml:Extension" href="IoT-ML.profile.uml#_2VDkACtzEeeZI6rMTYV60w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2VMG4itzEeeZI6rMTYV60w" points="[876, 277, -643984, -643984]$[876, 200, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2VTboCtzEeeZI6rMTYV60w" id="(0.5083798882681564,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2VTboStzEeeZI6rMTYV60w" id="(0.8088467614533965,1.0)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/org.eclipse.papyrus.iotml.profile/model/IoT-ML.profile.uml b/org.eclipse.papyrus.iotml.profile/model/IoT-ML.profile.uml
new file mode 100644
index 0000000..be820d2
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/model/IoT-ML.profile.uml
@@ -0,0 +1,1446 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Profile xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_gF1qcCtgEeepEtCwqDnj2w" name="IoT-ML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4Rb8Ct1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <contents xmi:type="ecore:EPackage" xmi:id="_MfaQ4Ct1EeeZI6rMTYV60w" name="IoTML" nsURI="http:///schemas/IoTML/_MfZCwCt1EeeZI6rMTYV60w/1" nsPrefix="IoTML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaQ4St1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaQ4it1EeeZI6rMTYV60w" key="originalName" value="IoT-ML"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaQ4yt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.1.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwLogical/HwDevice"/>
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//blocks"/>
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwLogical/HwCommunication"/>
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwLogical/HwComputing"/>
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc"/>
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwGeneral"/>
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//SRM/SW_Brokering"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfctICt1EeeZI6rMTYV60w" source="PapyrusVersion">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfctISt1EeeZI6rMTYV60w" key="Version" value="0.0.2"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfctIit1EeeZI6rMTYV60w" key="Comment" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfctIyt1EeeZI6rMTYV60w" key="Copyright" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfctJCt1EeeZI6rMTYV60w" key="Date" value="2017-04-27"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfctJSt1EeeZI6rMTYV60w" key="Author" value=""/>
+ </eAnnotations>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_MfaQ5Ct1EeeZI6rMTYV60w" name="Animate" nsURI="http:///IoTML/Animate.ecore" nsPrefix="IoTML.Animate">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaQ5St1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_qEMJ8CtgEeepEtCwqDnj2w"/>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaQ5it1EeeZI6rMTYV60w" name="HumanUser">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaQ5yt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_9sK2ICtgEeepEtCwqDnj2w"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaQ6Ct1EeeZI6rMTYV60w" name="base_Actor" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Actor"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_MfaQ6it1EeeZI6rMTYV60w" name="Hardware" nsURI="http:///IoTML/Hardware.ecore" nsPrefix="IoTML.Hardware">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaQ6yt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_FSypQCthEeepEtCwqDnj2w"/>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_MfaQ7Ct1EeeZI6rMTYV60w" name="Actuator" nsURI="http:///IoTML/Hardware/Actuator.ecore" nsPrefix="IoTML.Hardware.Actuator">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaQ7St1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_GsMsMCthEeepEtCwqDnj2w"/>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaQ7it1EeeZI6rMTYV60w" name="HwCommonActuator">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaQ7yt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ymw1sCtlEeeLDNWa-Yk0bg"/>
+ <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwLogical/HwDevice/HWActuator"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MfaQ8Ct1EeeZI6rMTYV60w" name="energyKind" ordered="false" eType="_MfaQ9yt1EeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MfaQ8it1EeeZI6rMTYV60w" name="movementKind" ordered="false" eType="_MfaQ_it1EeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MfaQ9Ct1EeeZI6rMTYV60w" name="isPowered" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_MfaQ9yt1EeeZI6rMTYV60w" name="EnergyKind">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaQ-Ct1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_EU2BACtmEeeLDNWa-Yk0bg"/>
+ <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_MfaQ-St1EeeZI6rMTYV60w" name="Electrical"/>
+ <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_MfaQ-it1EeeZI6rMTYV60w" name="Mechanical" value="1"/>
+ <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_MfaQ-yt1EeeZI6rMTYV60w" name="Pneumatical" value="2"/>
+ <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_MfaQ_Ct1EeeZI6rMTYV60w" name="Hydraulic" value="3"/>
+ <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_MfaQ_St1EeeZI6rMTYV60w" name="None" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_MfaQ_it1EeeZI6rMTYV60w" name="MovementKind">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaQ_yt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_cErTYCtmEeeLDNWa-Yk0bg"/>
+ <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_MfaRACt1EeeZI6rMTYV60w" name="Linear"/>
+ <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_MfaRASt1EeeZI6rMTYV60w" name="Rotational" value="1"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_MfaRAit1EeeZI6rMTYV60w" name="Sensor" nsURI="http:///IoTML/Hardware/Sensor.ecore" nsPrefix="IoTML.Hardware.Sensor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRAyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_INCz4CthEeepEtCwqDnj2w"/>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaRBCt1EeeZI6rMTYV60w" name="HwCommonSensor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRBSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TN_fMCtpEeeLDNWa-Yk0bg"/>
+ <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwLogical/HwDevice/HWSensor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaRBit1EeeZI6rMTYV60w" name="inputValueType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//blocks/ValueType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaRCCt1EeeZI6rMTYV60w" name="outputValueType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//blocks/ValueType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaRCit1EeeZI6rMTYV60w" name="hwcommonsensor" ordered="false" lowerBound="1" eType="_MfaRBCt1EeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaRDCt1EeeZI6rMTYV60w" name="transferFunction" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Behavior"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaRDyt1EeeZI6rMTYV60w" name="HwRFIDReaderSensor" eSuperTypes="_MfaRBCt1EeeZI6rMTYV60w">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRECt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_s94vYCtqEeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaRESt1EeeZI6rMTYV60w" name="tag" ordered="false" upperBound="-1" eType="_MfaRFCt1EeeZI6rMTYV60w"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaRFCt1EeeZI6rMTYV60w" name="HwTag">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRFSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_87v6QCtqEeeZI6rMTYV60w"/>
+ <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwLogical/HwDevice/HwI_O"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MfaRFit1EeeZI6rMTYV60w" name="tageFrequency" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Real"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_MfaRGSt1EeeZI6rMTYV60w" name="Network" nsURI="http:///IoTML/Hardware/Network.ecore" nsPrefix="IoTML.Hardware.Network">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRGit1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_JQEXICthEeepEtCwqDnj2w"/>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaRGyt1EeeZI6rMTYV60w" name="ConnectedDevice">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRHCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_OpOwACtoEeeLDNWa-Yk0bg"/>
+ <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwLogical/HwCommunication/HwCommunicationResource"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaRHit1EeeZI6rMTYV60w" name="Gateway">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRHyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_O9fv0CtoEeeLDNWa-Yk0bg"/>
+ <eSuperTypes xmi:type="ecore:EClass" href="#_MfaRGyt1EeeZI6rMTYV60w"/>
+ <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwLogical/HwComputing/HwComputingResource"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaRIit1EeeZI6rMTYV60w" name="Server">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRIyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_PQZdsCtoEeeLDNWa-Yk0bg"/>
+ <eSuperTypes xmi:type="ecore:EClass" href="#_MfaRGyt1EeeZI6rMTYV60w"/>
+ <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwLogical/HwComputing/HwComputingResource"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_MfaRJit1EeeZI6rMTYV60w" name="Core" nsURI="http:///IoTML/Hardware/Core.ecore" nsPrefix="IoTML.Hardware.Core">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRJyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_Ko050CthEeepEtCwqDnj2w"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRKCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRKSt1EeeZI6rMTYV60w" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaRKit1EeeZI6rMTYV60w" name="AllocateResource">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRKyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Gb9JYCtkEeeLDNWa-Yk0bg"/>
+ <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MfaRLCt1EeeZI6rMTYV60w" name="AllocateResource_C1">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRLSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRLit1EeeZI6rMTYV60w" key="body" value="self.base_Abstraction.client.oclIsKindOf(DeviceBroker) and self.base_Abstraction.supplier.oclIsKindOf(...)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaRMCt1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRMSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRMit1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaRNCt1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRNSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRNit1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MfaRNyt1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaROCt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaROSt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaROyt1EeeZI6rMTYV60w" name="HasService">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRPCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eyhroCtkEeeLDNWa-Yk0bg"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MfaRPSt1EeeZI6rMTYV60w" name="HasDevice_C1">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRPit1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRPyt1EeeZI6rMTYV60w" key="body" value="self.base_Association.ownedEnd->one(p | p.oclIsKindOf(PhisicalEntity) and self.base_Association.ownedEnd->size() = 1"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaRQSt1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRQit1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRQyt1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaRRSt1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRRit1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRRyt1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MfaRSCt1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaRSSt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaRSit1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MfaRSyt1EeeZI6rMTYV60w" name="HasDevice_C2">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRTCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRTSt1EeeZI6rMTYV60w" key="body" value="self.baseAssociation.memberEnd->one(p | p.oclIskIndOf(HwDevice) and p.aggregationKind = UML::AggregationKind:shared)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaRTyt1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRUCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRUSt1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaRUyt1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRVCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRVSt1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MfaRVit1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaRVyt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaRWCt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaRWSt1EeeZI6rMTYV60w" name="base_Association" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Association"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_MfaRWyt1EeeZI6rMTYV60w" name="Hybrid" nsURI="http:///IoTML/Hybrid.ecore" nsPrefix="IoTML.Hybrid">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRXCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_iuTggCtrEeeZI6rMTYV60w"/>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaRXSt1EeeZI6rMTYV60w" name="PhysicalEntity">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRXit1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_PEDG8CtsEeeZI6rMTYV60w"/>
+ <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwGeneral/HwResource"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_MfaRYCt1EeeZI6rMTYV60w" name="Software" nsURI="http:///IoTML/Software.ecore" nsPrefix="IoTML.Software">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRYSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_WWmukCtsEeeZI6rMTYV60w"/>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_MfaRYit1EeeZI6rMTYV60w" name="Artefact" nsURI="http:///IoTML/Software/Artefact.ecore" nsPrefix="IoTML.Software.Artefact">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRYyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_VGlbsCttEeeZI6rMTYV60w"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRZCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRZSt1EeeZI6rMTYV60w" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaRZit1EeeZI6rMTYV60w" name="PropertyAccess">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRZyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_mZu-gCttEeeZI6rMTYV60w"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MfaRaCt1EeeZI6rMTYV60w" name="PropertyAccess_C1">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRaSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRait1EeeZI6rMTYV60w" key="body" value="self.accessedProperty.type.oclIsKindOf(VirtualEntity)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaRbCt1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRbSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRbit1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaRcCt1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRcSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRcit1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MfaRcyt1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaRdCt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaRdSt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MfaRdit1EeeZI6rMTYV60w" name="PropertyAccess_C2">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRdyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaReCt1EeeZI6rMTYV60w" key="body" value="self.base_Association.ownedEnd->one(p | p.type.oclIsKindOf(VirtualEntity)) and self.base_Association.ownedEnd->one(p | p.type.oclIsKindOf(PhysicalEntity))"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaReit1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaReyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRfCt1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaRfit1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRfyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRgCt1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MfaRgSt1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaRgit1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaRgyt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MfaRhCt1EeeZI6rMTYV60w" name="propertyAccess_C3">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRhSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRhit1EeeZI6rMTYV60w" key="body" value="self.base_Association.navigableOwnedEnd->one(p | p.type.oclIsKindOf(PhysicalEntity))"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaRiCt1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRiSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRiit1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaRjCt1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRjSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRjit1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MfaRjyt1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaRkCt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaRkSt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaRkit1EeeZI6rMTYV60w" name="base_Association" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Association"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaRlCt1EeeZI6rMTYV60w" name="accessedProperty" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaRlit1EeeZI6rMTYV60w" name="DigitalArtefact">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRlyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_gpMGwCtuEeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaRmCt1EeeZI6rMTYV60w" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaRmit1EeeZI6rMTYV60w" name="VirtualEntity" eSuperTypes="_MfaRlit1EeeZI6rMTYV60w">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRmyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_mxPqICtuEeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaRnCt1EeeZI6rMTYV60w" name="phisicalEntitySpecification" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//InstanceSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaRnit1EeeZI6rMTYV60w" name="physicalEntity" ordered="false" eType="_MfaRXSt1EeeZI6rMTYV60w"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaRoSt1EeeZI6rMTYV60w" name="ProvideService">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRoit1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_cUpS8CtvEeeZI6rMTYV60w"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MfaRoyt1EeeZI6rMTYV60w" name="ProvideService_C2">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRpCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRpSt1EeeZI6rMTYV60w" key="body" value="self.base_Association.memberEnd->one(p | p.type.oclIsKindOf(Service) and p.owningAssociation = null and and p.aggregationKind = UML::AggregationKind::shared)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaRpyt1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRqCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRqSt1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaRqyt1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRrCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRrSt1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MfaRrit1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaRryt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaRsCt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MfaRsSt1EeeZI6rMTYV60w" name="ProvideService_C1">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRsit1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRsyt1EeeZI6rMTYV60w" key="body" value="self.base_Association.ownedEnd->one(p | p.type.oclIsKindOf(VirtualEntity))"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaRtSt1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRtit1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRtyt1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaRuSt1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRuit1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRuyt1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MfaRvCt1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaRvSt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaRvit1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaRvyt1EeeZI6rMTYV60w" name="base_Association" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Association"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaRwSt1EeeZI6rMTYV60w" name="ProvideResource">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRwit1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_emjrMCtvEeeZI6rMTYV60w"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MfaRwyt1EeeZI6rMTYV60w" name="ProvideResource_C1">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRxCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRxSt1EeeZI6rMTYV60w" key="body" value="self.base_Association.ownedEnd->one(p | p.type.oclIsKindOf(ServiceDescription))"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaRxyt1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRyCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRySt1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaRyyt1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaRzCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaRzSt1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MfaRzit1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaRzyt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaR0Ct1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MfaR0St1EeeZI6rMTYV60w" name="ProvideResource_C2">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaR0it1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaR0yt1EeeZI6rMTYV60w" key="body" value="self.base_Association.memberEnd->one(p | p.type.oclIsKindOf(ResourceDescription) and p.owningAssociation = null and and p.aggregationKind = UML::AggregationKind::shared)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaR1St1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaR1it1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaR1yt1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaR2St1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaR2it1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaR2yt1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MfaR3Ct1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaR3St1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaR3it1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaR3yt1EeeZI6rMTYV60w" name="base_Association" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Association"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaR4St1EeeZI6rMTYV60w" name="ServiceDescription">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaR4it1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_WG8lICtwEeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaR4yt1EeeZI6rMTYV60w" name="base_Interface" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaR5St1EeeZI6rMTYV60w" name="resourceGetSet" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaR5yt1EeeZI6rMTYV60w" name="Service" eSuperTypes="_MfaRlit1EeeZI6rMTYV60w">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaR6Ct1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ENBgwCtxEeeZI6rMTYV60w"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MfaR6St1EeeZI6rMTYV60w" name="Service_C1">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaR6it1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaR6yt1EeeZI6rMTYV60w" key="body" value="not self.base_Class.classifierBehavior.oclIsUndefined() and self.base_Class.isActive = true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaR7St1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaR7it1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaR7yt1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MfaR8St1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaR8it1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MfaR8yt1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MfaR9Ct1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaR9St1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MfaR9it1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_MfaR-Ct1EeeZI6rMTYV60w" name="Core" nsURI="http:///IoTML/Software/Core.ecore" nsPrefix="IoTML.Software.Core">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaR-St1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_aILwgCtxEeeZI6rMTYV60w"/>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_MfaR-it1EeeZI6rMTYV60w" name="Structure" nsURI="http:///IoTML/Software/Core/Structure.ecore" nsPrefix="IoTML.Software.Core.Structure">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaR-yt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_hrtzYCtxEeeZI6rMTYV60w"/>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaR_Ct1EeeZI6rMTYV60w" name="MetaValueSpecification">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaR_St1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_rm64QCtxEeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaR_it1EeeZI6rMTYV60w" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaSACt1EeeZI6rMTYV60w" name="type" ordered="false" derived="true">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MfaSAit1EeeZI6rMTYV60w" name="description" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaSBCt1EeeZI6rMTYV60w" name="DetailedValueSpecification">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaSBSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Fw88MCtyEeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaSBit1EeeZI6rMTYV60w" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaSCCt1EeeZI6rMTYV60w" name="metaSpecification" ordered="false" upperBound="-1" eType="_MfaR_Ct1EeeZI6rMTYV60w" containment="true"/>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_MfaSCit1EeeZI6rMTYV60w" name="Resource" nsURI="http:///IoTML/Software/Resource.ecore" nsPrefix="IoTML.Software.Resource">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaSCyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_skdpICtyEeeZI6rMTYV60w"/>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaSDCt1EeeZI6rMTYV60w" name="NetworkResource">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaSDSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qMEY8CtzEeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaSDit1EeeZI6rMTYV60w" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MfaSECt1EeeZI6rMTYV60w" name="OnDeviceResource">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MfaSESt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_veD3ACtzEeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaSEit1EeeZI6rMTYV60w" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaSFCt1EeeZI6rMTYV60w" name="deviceBroker" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//SRM/SW_Brokering/DeviceBroker"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MfaSFit1EeeZI6rMTYV60w" name="memoryBroker" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//SRM/SW_Brokering/MemoryBroker"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_D4Rb8St1EeeZI6rMTYV60w" name="IoTML" nsURI="http:///schemas/IoTML/_D4QN0Ct1EeeZI6rMTYV60w/0" nsPrefix="IoTML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4Rb8it1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4Rb8yt1EeeZI6rMTYV60w" key="originalName" value="IoT-ML"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4Rb9Ct1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.1.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwLogical/HwDevice"/>
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//blocks"/>
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwLogical/HwCommunication"/>
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwLogical/HwComputing"/>
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc"/>
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwGeneral"/>
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//SRM/SW_Brokering"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4TRICt1EeeZI6rMTYV60w" source="PapyrusVersion">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4TRISt1EeeZI6rMTYV60w" key="Version" value="0.0.1"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4TRIit1EeeZI6rMTYV60w" key="Comment" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4TRIyt1EeeZI6rMTYV60w" key="Copyright" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4TRJCt1EeeZI6rMTYV60w" key="Date" value="2017-04-27"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4TRJSt1EeeZI6rMTYV60w" key="Author" value=""/>
+ </eAnnotations>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_D4Rb9St1EeeZI6rMTYV60w" name="Animate" nsURI="http:///IoTML/Animate.ecore" nsPrefix="IoTML.Animate">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4Rb9it1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_qEMJ8CtgEeepEtCwqDnj2w"/>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4Rb9yt1EeeZI6rMTYV60w" name="HumanUser">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4Rb-Ct1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_9sK2ICtgEeepEtCwqDnj2w"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4Rb-St1EeeZI6rMTYV60w" name="base_Actor" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Actor"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_D4Rb-yt1EeeZI6rMTYV60w" name="Hardware" nsURI="http:///IoTML/Hardware.ecore" nsPrefix="IoTML.Hardware">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4Rb_Ct1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_FSypQCthEeepEtCwqDnj2w"/>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_D4Rb_St1EeeZI6rMTYV60w" name="Actuator" nsURI="http:///IoTML/Hardware/Actuator.ecore" nsPrefix="IoTML.Hardware.Actuator">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4Rb_it1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_GsMsMCthEeepEtCwqDnj2w"/>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4Rb_yt1EeeZI6rMTYV60w" name="HwCommonActuator">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4RcACt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ymw1sCtlEeeLDNWa-Yk0bg"/>
+ <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwLogical/HwDevice/HWActuator"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_D4RcASt1EeeZI6rMTYV60w" name="energyKind" ordered="false" eType="_D4RcCCt1EeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_D4RcAyt1EeeZI6rMTYV60w" name="movementKind" ordered="false" eType="_D4RcDyt1EeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_D4RcBSt1EeeZI6rMTYV60w" name="isPowered" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_D4RcCCt1EeeZI6rMTYV60w" name="EnergyKind">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4RcCSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_EU2BACtmEeeLDNWa-Yk0bg"/>
+ <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_D4RcCit1EeeZI6rMTYV60w" name="Electrical"/>
+ <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_D4RcCyt1EeeZI6rMTYV60w" name="Mechanical" value="1"/>
+ <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_D4RcDCt1EeeZI6rMTYV60w" name="Pneumatical" value="2"/>
+ <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_D4RcDSt1EeeZI6rMTYV60w" name="Hydraulic" value="3"/>
+ <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_D4RcDit1EeeZI6rMTYV60w" name="None" value="4"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_D4RcDyt1EeeZI6rMTYV60w" name="MovementKind">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4RcECt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_cErTYCtmEeeLDNWa-Yk0bg"/>
+ <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_D4RcESt1EeeZI6rMTYV60w" name="Linear"/>
+ <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_D4RcEit1EeeZI6rMTYV60w" name="Rotational" value="1"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_D4RcEyt1EeeZI6rMTYV60w" name="Sensor" nsURI="http:///IoTML/Hardware/Sensor.ecore" nsPrefix="IoTML.Hardware.Sensor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4RcFCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_INCz4CthEeepEtCwqDnj2w"/>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4RcFSt1EeeZI6rMTYV60w" name="HwCommonSensor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4RcFit1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TN_fMCtpEeeLDNWa-Yk0bg"/>
+ <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwLogical/HwDevice/HWSensor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4RcFyt1EeeZI6rMTYV60w" name="inputValueType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//blocks/ValueType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4RcGSt1EeeZI6rMTYV60w" name="outputValueType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//blocks/ValueType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4RcGyt1EeeZI6rMTYV60w" name="hwcommonsensor" ordered="false" lowerBound="1" eType="_D4RcFSt1EeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4RcHSt1EeeZI6rMTYV60w" name="transferFunction" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Behavior"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4RcICt1EeeZI6rMTYV60w" name="HwRFIDReaderSensor" eSuperTypes="_D4RcFSt1EeeZI6rMTYV60w">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4RcISt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_s94vYCtqEeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4RcIit1EeeZI6rMTYV60w" name="tag" ordered="false" upperBound="-1" eType="_D4RcJSt1EeeZI6rMTYV60w"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4RcJSt1EeeZI6rMTYV60w" name="HwTag">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4RcJit1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_87v6QCtqEeeZI6rMTYV60w"/>
+ <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwLogical/HwDevice/HwI_O"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_D4RcJyt1EeeZI6rMTYV60w" name="tageFrequency" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Real"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_D4RcKit1EeeZI6rMTYV60w" name="Network" nsURI="http:///IoTML/Hardware/Network.ecore" nsPrefix="IoTML.Hardware.Network">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4RcKyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_JQEXICthEeepEtCwqDnj2w"/>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4RcLCt1EeeZI6rMTYV60w" name="ConnectedDevice">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4RcLSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_OpOwACtoEeeLDNWa-Yk0bg"/>
+ <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwLogical/HwCommunication/HwCommunicationResource"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4RcLyt1EeeZI6rMTYV60w" name="Gateway">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4RcMCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_O9fv0CtoEeeLDNWa-Yk0bg"/>
+ <eSuperTypes xmi:type="ecore:EClass" href="#_D4RcLCt1EeeZI6rMTYV60w"/>
+ <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwLogical/HwComputing/HwComputingResource"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4RcMyt1EeeZI6rMTYV60w" name="Server">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4RcNCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_PQZdsCtoEeeLDNWa-Yk0bg"/>
+ <eSuperTypes xmi:type="ecore:EClass" href="#_D4RcLCt1EeeZI6rMTYV60w"/>
+ <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwLogical/HwComputing/HwComputingResource"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_D4RcNyt1EeeZI6rMTYV60w" name="Core" nsURI="http:///IoTML/Hardware/Core.ecore" nsPrefix="IoTML.Hardware.Core">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4RcOCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_Ko050CthEeepEtCwqDnj2w"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4RcOSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4RcOit1EeeZI6rMTYV60w" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4RcOyt1EeeZI6rMTYV60w" name="AllocateResource">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4RcPCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Gb9JYCtkEeeLDNWa-Yk0bg"/>
+ <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc/Allocate"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_D4RcPSt1EeeZI6rMTYV60w" name="AllocateResource_C1">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4RcPit1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4RcPyt1EeeZI6rMTYV60w" key="body" value="self.base_Abstraction.client.oclIsKindOf(DeviceBroker) and self.base_Abstraction.supplier.oclIsKindOf(...)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4RcQSt1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4RcQit1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4RcQyt1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4RcRSt1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4RcRit1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4RcRyt1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_D4RcSCt1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4RcSSt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4RcSit1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4RcTCt1EeeZI6rMTYV60w" name="HasService">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4RcTSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eyhroCtkEeeLDNWa-Yk0bg"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_D4RcTit1EeeZI6rMTYV60w" name="HasDevice_C1">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4RcTyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4RcUCt1EeeZI6rMTYV60w" key="body" value="self.base_Association.ownedEnd->one(p | p.oclIsKindOf(PhisicalEntity) and self.base_Association.ownedEnd->size() = 1"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4SDASt1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDAit1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDAyt1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4SDBSt1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDBit1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDByt1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_D4SDCCt1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4SDCSt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4SDCit1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_D4SDCyt1EeeZI6rMTYV60w" name="HasDevice_C2">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDDCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDDSt1EeeZI6rMTYV60w" key="body" value="self.baseAssociation.memberEnd->one(p | p.oclIskIndOf(HwDevice) and p.aggregationKind = UML::AggregationKind:shared)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4SDDyt1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDECt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDESt1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4SDEyt1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDFCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDFSt1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_D4SDFit1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4SDFyt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4SDGCt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4SDGSt1EeeZI6rMTYV60w" name="base_Association" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Association"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_D4SDGyt1EeeZI6rMTYV60w" name="Hybrid" nsURI="http:///IoTML/Hybrid.ecore" nsPrefix="IoTML.Hybrid">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDHCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_iuTggCtrEeeZI6rMTYV60w"/>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4SDHSt1EeeZI6rMTYV60w" name="PhysicalEntity">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDHit1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_PEDG8CtsEeeZI6rMTYV60w"/>
+ <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//HRM/HwGeneral/HwResource"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_D4SDICt1EeeZI6rMTYV60w" name="Software" nsURI="http:///IoTML/Software.ecore" nsPrefix="IoTML.Software">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDISt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_WWmukCtsEeeZI6rMTYV60w"/>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_D4SDIit1EeeZI6rMTYV60w" name="Artefact" nsURI="http:///IoTML/Software/Artefact.ecore" nsPrefix="IoTML.Software.Artefact">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDIyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_VGlbsCttEeeZI6rMTYV60w"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDJCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDJSt1EeeZI6rMTYV60w" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4SDJit1EeeZI6rMTYV60w" name="PropertyAccess">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDJyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_mZu-gCttEeeZI6rMTYV60w"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_D4SDKCt1EeeZI6rMTYV60w" name="PropertyAccess_C1">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDKSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDKit1EeeZI6rMTYV60w" key="body" value="self.accessedProperty.type.oclIsKindOf(VirtualEntity)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4SDLCt1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDLSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDLit1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4SDMCt1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDMSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDMit1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_D4SDMyt1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4SDNCt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4SDNSt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_D4SDNit1EeeZI6rMTYV60w" name="PropertyAccess_C2">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDNyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDOCt1EeeZI6rMTYV60w" key="body" value="self.base_Association.ownedEnd->one(p | p.type.oclIsKindOf(VirtualEntity)) and self.base_Association.ownedEnd->one(p | p.type.oclIsKindOf(PhysicalEntity))"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4SDOit1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDOyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDPCt1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4SDPit1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDPyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDQCt1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_D4SDQSt1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4SDQit1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4SDQyt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_D4SDRCt1EeeZI6rMTYV60w" name="propertyAccess_C3">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDRSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDRit1EeeZI6rMTYV60w" key="body" value="self.base_Association.navigableOwnedEnd->one(p | p.type.oclIsKindOf(PhysicalEntity))"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4SDSCt1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDSSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDSit1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4SDTCt1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDTSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDTit1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_D4SDTyt1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4SDUCt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4SDUSt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4SDUit1EeeZI6rMTYV60w" name="base_Association" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Association"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4SDVCt1EeeZI6rMTYV60w" name="accessedProperty" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4SDVit1EeeZI6rMTYV60w" name="DigitalArtefact">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDVyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_gpMGwCtuEeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4SDWCt1EeeZI6rMTYV60w" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4SDWit1EeeZI6rMTYV60w" name="VirtualEntity" eSuperTypes="_D4SDVit1EeeZI6rMTYV60w">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDWyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_mxPqICtuEeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4SDXCt1EeeZI6rMTYV60w" name="phisicalEntitySpecification" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//InstanceSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4SDXit1EeeZI6rMTYV60w" name="physicalEntity" ordered="false" eType="_D4SDHSt1EeeZI6rMTYV60w"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4SDYSt1EeeZI6rMTYV60w" name="ProvideService">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDYit1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_cUpS8CtvEeeZI6rMTYV60w"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_D4SDYyt1EeeZI6rMTYV60w" name="ProvideService_C2">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDZCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDZSt1EeeZI6rMTYV60w" key="body" value="self.base_Association.memberEnd->one(p | p.type.oclIsKindOf(Service) and p.owningAssociation = null and and p.aggregationKind = UML::AggregationKind::shared)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4SDZyt1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDaCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDaSt1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4SDayt1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDbCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDbSt1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_D4SDbit1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4SDbyt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4SDcCt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_D4SDcSt1EeeZI6rMTYV60w" name="ProvideService_C1">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDcit1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDcyt1EeeZI6rMTYV60w" key="body" value="self.base_Association.ownedEnd->one(p | p.type.oclIsKindOf(VirtualEntity))"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4SDdSt1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDdit1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDdyt1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4SDeSt1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDeit1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDeyt1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_D4SDfCt1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4SDfSt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4SDfit1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4SDfyt1EeeZI6rMTYV60w" name="base_Association" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Association"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4SDgSt1EeeZI6rMTYV60w" name="ProvideResource">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDgit1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_emjrMCtvEeeZI6rMTYV60w"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_D4SDgyt1EeeZI6rMTYV60w" name="ProvideResource_C1">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDhCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDhSt1EeeZI6rMTYV60w" key="body" value="self.base_Association.ownedEnd->one(p | p.type.oclIsKindOf(ServiceDescription))"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4SDhyt1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDiCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDiSt1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4SDiyt1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDjCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDjSt1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_D4SDjit1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4SDjyt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4SDkCt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_D4SDkSt1EeeZI6rMTYV60w" name="ProvideResource_C2">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDkit1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDkyt1EeeZI6rMTYV60w" key="body" value="self.base_Association.memberEnd->one(p | p.type.oclIsKindOf(ResourceDescription) and p.owningAssociation = null and and p.aggregationKind = UML::AggregationKind::shared)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4SDlSt1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDlit1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDlyt1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4SDmSt1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDmit1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDmyt1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_D4SDnCt1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4SDnSt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4SDnit1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4SDnyt1EeeZI6rMTYV60w" name="base_Association" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Association"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4SDoSt1EeeZI6rMTYV60w" name="ServiceDescription">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDoit1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_WG8lICtwEeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4SDoyt1EeeZI6rMTYV60w" name="base_Interface" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4SDpSt1EeeZI6rMTYV60w" name="resourceGetSet" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4SDpyt1EeeZI6rMTYV60w" name="Service" eSuperTypes="_D4SDVit1EeeZI6rMTYV60w">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDqCt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ENBgwCtxEeeZI6rMTYV60w"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_D4SDqSt1EeeZI6rMTYV60w" name="Service_C1">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDqit1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDqyt1EeeZI6rMTYV60w" key="body" value="not self.base_Class.classifierBehavior.oclIsUndefined() and self.base_Class.isActive = true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4SDrSt1EeeZI6rMTYV60w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDrit1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDryt1EeeZI6rMTYV60w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_D4SDsSt1EeeZI6rMTYV60w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDsit1EeeZI6rMTYV60w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D4SDsyt1EeeZI6rMTYV60w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_D4SDtCt1EeeZI6rMTYV60w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4SDtSt1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_D4SDtit1EeeZI6rMTYV60w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_D4SDuCt1EeeZI6rMTYV60w" name="Core" nsURI="http:///IoTML/Software/Core.ecore" nsPrefix="IoTML.Software.Core">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDuSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_aILwgCtxEeeZI6rMTYV60w"/>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_D4SDuit1EeeZI6rMTYV60w" name="Structure" nsURI="http:///IoTML/Software/Core/Structure.ecore" nsPrefix="IoTML.Software.Core.Structure">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDuyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_hrtzYCtxEeeZI6rMTYV60w"/>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4SDvCt1EeeZI6rMTYV60w" name="MetaValueSpecification">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDvSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_rm64QCtxEeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4SDvit1EeeZI6rMTYV60w" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4SDwCt1EeeZI6rMTYV60w" name="type" ordered="false" derived="true">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_D4SDwit1EeeZI6rMTYV60w" name="description" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4SDxCt1EeeZI6rMTYV60w" name="DetailedValueSpecification">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDxSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Fw88MCtyEeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4SDxit1EeeZI6rMTYV60w" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4SDyCt1EeeZI6rMTYV60w" name="metaSpecification" ordered="false" upperBound="-1" eType="_D4SDvCt1EeeZI6rMTYV60w" containment="true"/>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_D4SDyit1EeeZI6rMTYV60w" name="Resource" nsURI="http:///IoTML/Software/Resource.ecore" nsPrefix="IoTML.Software.Resource">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDyyt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_skdpICtyEeeZI6rMTYV60w"/>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4SDzCt1EeeZI6rMTYV60w" name="NetworkResource">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SDzSt1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qMEY8CtzEeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4SDzit1EeeZI6rMTYV60w" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_D4SD0Ct1EeeZI6rMTYV60w" name="OnDeviceResource">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4SD0St1EeeZI6rMTYV60w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_veD3ACtzEeeZI6rMTYV60w"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4SD0it1EeeZI6rMTYV60w" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4SD1Ct1EeeZI6rMTYV60w" name="deviceBroker" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//SRM/SW_Brokering/DeviceBroker"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_D4SD1it1EeeZI6rMTYV60w" name="memoryBroker" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/MARTE/1#//SRM/SW_Brokering/MemoryBroker"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+ </contents>
+ </eAnnotations>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_gRWW4CtgEeepEtCwqDnj2w">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_gRYzICtgEeepEtCwqDnj2w">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_7KJ2QCtpEeeZI6rMTYV60w">
+ <importedPackage xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_qEMJ8CtgEeepEtCwqDnj2w" name="Animate">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_9sK2ICtgEeepEtCwqDnj2w" name="HumanUser">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_BR4_oCthEeepEtCwqDnj2w" name="base_Actor" association="_BR0uMCthEeepEtCwqDnj2w">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Actor"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_BR0uMCthEeepEtCwqDnj2w" name="E_HumanUser_Actor1" memberEnd="_BR4YkCthEeepEtCwqDnj2w _BR4_oCthEeepEtCwqDnj2w">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_BR4YkCthEeepEtCwqDnj2w" name="extension_HumanUser" type="_9sK2ICtgEeepEtCwqDnj2w" aggregation="composite" association="_BR0uMCthEeepEtCwqDnj2w"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_FSypQCthEeepEtCwqDnj2w" name="Hardware">
+ <packagedElement xmi:type="uml:Package" xmi:id="_GsMsMCthEeepEtCwqDnj2w" name="Actuator">
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_GJm_sCtlEeeLDNWa-Yk0bg">
+ <importedElement xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_PHH9sDL2Ed2HYNz2hI9A2g"/>
+ </elementImport>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_ymw1sCtlEeeLDNWa-Yk0bg" name="HwCommonActuator">
+ <generalization xmi:type="uml:Generalization" xmi:id="_2NfEwCtlEeeLDNWa-Yk0bg">
+ <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_PHH9sDL2Ed2HYNz2hI9A2g"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_SUvqYCtmEeeLDNWa-Yk0bg" name="energyKind" type="_EU2BACtmEeeLDNWa-Yk0bg" association="_SUpjwCtmEeeLDNWa-Yk0bg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_X49g4CtmEeeLDNWa-Yk0bg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_X5UGMCtmEeeLDNWa-Yk0bg" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_iyYhgCtmEeeLDNWa-Yk0bg" name="movementKind" type="_cErTYCtmEeeLDNWa-Yk0bg" association="_iyXTYCtmEeeLDNWa-Yk0bg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lf53sCtmEeeLDNWa-Yk0bg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lgJvUCtmEeeLDNWa-Yk0bg" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_oLZ0oCtmEeeLDNWa-Yk0bg" name="isPowered">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_EU2BACtmEeeLDNWa-Yk0bg" name="EnergyKind">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Gbj14CtmEeeLDNWa-Yk0bg" name="Electrical"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Gvk-ECtmEeeLDNWa-Yk0bg" name="Mechanical"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_HC4UkCtmEeeLDNWa-Yk0bg" name="Pneumatical"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_H6D0MCtmEeeLDNWa-Yk0bg" name="Hydraulic"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_INrTwCtmEeeLDNWa-Yk0bg" name="None"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_SUpjwCtmEeeLDNWa-Yk0bg" memberEnd="_SUvqYCtmEeeLDNWa-Yk0bg _SUwRcCtmEeeLDNWa-Yk0bg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SUtOICtmEeeLDNWa-Yk0bg" source="org.eclipse.papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SUt1MCtmEeeLDNWa-Yk0bg" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_SUwRcCtmEeeLDNWa-Yk0bg" name="hwcommonactuator" type="_ymw1sCtlEeeLDNWa-Yk0bg" association="_SUpjwCtmEeeLDNWa-Yk0bg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_cErTYCtmEeeLDNWa-Yk0bg" name="MovementKind">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_fpuHcCtmEeeLDNWa-Yk0bg" name="Linear"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_guUYACtmEeeLDNWa-Yk0bg" name="Rotational"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_iyXTYCtmEeeLDNWa-Yk0bg" memberEnd="_iyYhgCtmEeeLDNWa-Yk0bg _iyYhgStmEeeLDNWa-Yk0bg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iyX6cCtmEeeLDNWa-Yk0bg" source="org.eclipse.papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iyX6cStmEeeLDNWa-Yk0bg" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_iyYhgStmEeeLDNWa-Yk0bg" name="hwcommonactuator" type="_ymw1sCtlEeeLDNWa-Yk0bg" association="_iyXTYCtmEeeLDNWa-Yk0bg"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_INCz4CthEeepEtCwqDnj2w" name="Sensor">
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_2-IXMCtoEeeLDNWa-Yk0bg">
+ <importedElement xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_SuQccDL2Ed2HYNz2hI9A2g"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_6o1uYCtoEeeLDNWa-Yk0bg">
+ <importedElement xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_PzqFcBKREdyCSNtdGzMSGg"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_MZiTYCtqEeeZI6rMTYV60w">
+ <importedElement xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks.stereotype_packagedElement_ValueType"/>
+ </elementImport>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_TN_fMCtpEeeLDNWa-Yk0bg" name="HwCommonSensor">
+ <generalization xmi:type="uml:Generalization" xmi:id="_Z-woYCtpEeeLDNWa-Yk0bg">
+ <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_SuQccDL2Ed2HYNz2hI9A2g"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_hxd6QCtqEeeZI6rMTYV60w" name="inputValueType">
+ <type xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks.stereotype_packagedElement_ValueType"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m727gCtqEeeZI6rMTYV60w"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m8DIwCtqEeeZI6rMTYV60w" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_iXFIwCtqEeeZI6rMTYV60w" name="outputValueType">
+ <type xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks.stereotype_packagedElement_ValueType"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qBU3oCtqEeeZI6rMTYV60w"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qBa-QCtqEeeZI6rMTYV60w" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_rk4qMCtsEeeZI6rMTYV60w" name="hwcommonsensor" type="_TN_fMCtpEeeLDNWa-Yk0bg" association="_rk3cECtsEeeZI6rMTYV60w"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_uxw14CtsEeeZI6rMTYV60w" name="transferFunction">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Behavior"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_21QyQCtsEeeZI6rMTYV60w"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_21VDsCtsEeeZI6rMTYV60w" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_s94vYCtqEeeZI6rMTYV60w" name="HwRFIDReaderSensor">
+ <generalization xmi:type="uml:Generalization" xmi:id="_5to_gCtqEeeZI6rMTYV60w" general="_TN_fMCtpEeeLDNWa-Yk0bg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Dxx98CtrEeeZI6rMTYV60w" name="tag" type="_87v6QCtqEeeZI6rMTYV60w" association="_DxvhsCtrEeeZI6rMTYV60w">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_F_SXUCtrEeeZI6rMTYV60w"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F_fysCtrEeeZI6rMTYV60w" value="*"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_87v6QCtqEeeZI6rMTYV60w" name="HwTag">
+ <generalization xmi:type="uml:Generalization" xmi:id="_A_AUUCtrEeeZI6rMTYV60w">
+ <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_PzqFcBKREdyCSNtdGzMSGg"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_PPHj8CtrEeeZI6rMTYV60w" name="tageFrequency">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c5DkYCtrEeeZI6rMTYV60w"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c5GnsCtrEeeZI6rMTYV60w" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_DxvhsCtrEeeZI6rMTYV60w" memberEnd="_Dxx98CtrEeeZI6rMTYV60w _DxylACtrEeeZI6rMTYV60w">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DxxW4CtrEeeZI6rMTYV60w" source="org.eclipse.papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DxxW4StrEeeZI6rMTYV60w" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_DxylACtrEeeZI6rMTYV60w" name="reader" type="_s94vYCtqEeeZI6rMTYV60w" association="_DxvhsCtrEeeZI6rMTYV60w">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Mp08sCtrEeeZI6rMTYV60w"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MqVTACtrEeeZI6rMTYV60w" value="*"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_rk3cECtsEeeZI6rMTYV60w" memberEnd="_rk4qMCtsEeeZI6rMTYV60w _rk4qMStsEeeZI6rMTYV60w">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rk4DICtsEeeZI6rMTYV60w" source="org.eclipse.papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rk4DIStsEeeZI6rMTYV60w" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_rk4qMStsEeeZI6rMTYV60w" name="hwcommonsensor" type="_TN_fMCtpEeeLDNWa-Yk0bg" association="_rk3cECtsEeeZI6rMTYV60w"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_JQEXICthEeepEtCwqDnj2w" name="Network">
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_VSRWACtnEeeLDNWa-Yk0bg" alias="">
+ <importedElement xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_NrpywBJzEdygQ5HMNSpiZw"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_Zxbo8CtnEeeLDNWa-Yk0bg">
+ <importedElement xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_Q4QQoBJ-EdyT_7R0WVpWAw"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_eIpg0CtnEeeLDNWa-Yk0bg">
+ <importedElement xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_tE4T4BJ9EdyT_7R0WVpWAw"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_ipdZkCtnEeeLDNWa-Yk0bg">
+ <importedElement xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_-ZhPABJ-EdyT_7R0WVpWAw"/>
+ </elementImport>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_OpOwACtoEeeLDNWa-Yk0bg" name="ConnectedDevice">
+ <generalization xmi:type="uml:Generalization" xmi:id="_fyyR8CtoEeeLDNWa-Yk0bg">
+ <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_tE4T4BJ9EdyT_7R0WVpWAw"/>
+ </generalization>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_O9fv0CtoEeeLDNWa-Yk0bg" name="Gateway">
+ <generalization xmi:type="uml:Generalization" xmi:id="_YScF8CtoEeeLDNWa-Yk0bg" general="_OpOwACtoEeeLDNWa-Yk0bg"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_n883ACtoEeeLDNWa-Yk0bg">
+ <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_NrpywBJzEdygQ5HMNSpiZw"/>
+ </generalization>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_PQZdsCtoEeeLDNWa-Yk0bg" name="Server">
+ <generalization xmi:type="uml:Generalization" xmi:id="_ZB6bECtoEeeLDNWa-Yk0bg" general="_OpOwACtoEeeLDNWa-Yk0bg"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_oggQACtoEeeLDNWa-Yk0bg">
+ <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_NrpywBJzEdygQ5HMNSpiZw"/>
+ </generalization>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_Ko050CthEeepEtCwqDnj2w" name="Core">
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_JXnesCtjEeeLDNWa-Yk0bg">
+ <importedElement xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_kzoXABHbEdyWC5IKDhzksw"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_MQnsICtjEeeLDNWa-Yk0bg" alias="">
+ <importedElement xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_VxKdYBHbEdyWC5IKDhzksw"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_QaQbACtjEeeLDNWa-Yk0bg">
+ <importedElement xmi:type="uml:Enumeration" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_9MtaUECmEd6UTJZnztgOLw"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_4YKT8CtiEeeLDNWa-Yk0bg" alias="">
+ <importedElement xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_Ljw9kBKREdyCSNtdGzMSGg"/>
+ </elementImport>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Gb9JYCtkEeeLDNWa-Yk0bg" name="AllocateResource">
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_O699ECtkEeeLDNWa-Yk0bg" name="AllocateResource_C1">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_Wh6gUCtkEeeLDNWa-Yk0bg">
+ <language>OCL</language>
+ <body>self.base_Abstraction.client.oclIsKindOf(DeviceBroker) and self.base_Abstraction.supplier.oclIsKindOf(...)</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_lg6PMCtkEeeLDNWa-Yk0bg">
+ <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_kzoXABHbEdyWC5IKDhzksw"/>
+ </generalization>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_eyhroCtkEeeLDNWa-Yk0bg" name="HasService">
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_nSIVMCtkEeeLDNWa-Yk0bg" name="HasDevice_C1">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_00WkECtkEeeLDNWa-Yk0bg">
+ <language>OCL</language>
+ <body>self.base_Association.ownedEnd->one(p | p.oclIsKindOf(PhisicalEntity) and self.base_Association.ownedEnd->size() = 1</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_n6FGACtkEeeLDNWa-Yk0bg" name="HasDevice_C2">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_37kMoCtkEeeLDNWa-Yk0bg">
+ <language>OCL</language>
+ <body>self.baseAssociation.memberEnd->one(p | p.oclIskIndOf(HwDevice) and p.aggregationKind = UML::AggregationKind:shared)</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_kVQ7cCtkEeeLDNWa-Yk0bg" name="base_Association" association="_kVPGQCtkEeeLDNWa-Yk0bg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_kVPGQCtkEeeLDNWa-Yk0bg" name="E_HasService_Association1" memberEnd="_kVPtUCtkEeeLDNWa-Yk0bg _kVQ7cCtkEeeLDNWa-Yk0bg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_kVPtUCtkEeeLDNWa-Yk0bg" name="extension_HasService" type="_eyhroCtkEeeLDNWa-Yk0bg" aggregation="composite" association="_kVPGQCtkEeeLDNWa-Yk0bg"/>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_iuTggCtrEeeZI6rMTYV60w" name="Hybrid">
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_1S3n4CtrEeeZI6rMTYV60w" alias="">
+ <importedElement xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_LDER0BJxEdygQ5HMNSpiZw"/>
+ </elementImport>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_PEDG8CtsEeeZI6rMTYV60w" name="PhysicalEntity">
+ <generalization xmi:type="uml:Generalization" xmi:id="_T-b9UCtsEeeZI6rMTYV60w">
+ <general xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_LDER0BJxEdygQ5HMNSpiZw"/>
+ </generalization>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_WWmukCtsEeeZI6rMTYV60w" name="Software">
+ <packagedElement xmi:type="uml:Package" xmi:id="_VGlbsCttEeeZI6rMTYV60w" name="Artefact">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_mZu-gCttEeeZI6rMTYV60w" name="PropertyAccess">
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_-vUpUCttEeeZI6rMTYV60w" name="PropertyAccess_C1">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_QbFgcCtuEeeZI6rMTYV60w">
+ <language>OCL</language>
+ <body>self.accessedProperty.type.oclIsKindOf(VirtualEntity)</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="__PuAoCttEeeZI6rMTYV60w" name="PropertyAccess_C2">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_UKP50CtuEeeZI6rMTYV60w">
+ <language>OCL</language>
+ <body>self.base_Association.ownedEnd->one(p | p.type.oclIsKindOf(VirtualEntity)) and self.base_Association.ownedEnd->one(p | p.type.oclIsKindOf(PhysicalEntity))</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="__1PvkCttEeeZI6rMTYV60w" name="propertyAccess_C3">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_XcyooCtuEeeZI6rMTYV60w">
+ <language>OCL</language>
+ <body>self.base_Association.navigableOwnedEnd->one(p | p.type.oclIsKindOf(PhysicalEntity))</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_sIIEsSttEeeZI6rMTYV60w" name="base_Association" association="_sIFocCttEeeZI6rMTYV60w">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ujD2ECttEeeZI6rMTYV60w" name="accessedProperty">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_96J74CttEeeZI6rMTYV60w"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_96ONUCttEeeZI6rMTYV60w" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_sIFocCttEeeZI6rMTYV60w" name="E_PropertyAccess_Association1" memberEnd="_sIIEsCttEeeZI6rMTYV60w _sIIEsSttEeeZI6rMTYV60w">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_sIIEsCttEeeZI6rMTYV60w" name="extension_PropertyAccess" type="_mZu-gCttEeeZI6rMTYV60w" aggregation="composite" association="_sIFocCttEeeZI6rMTYV60w"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_gpMGwCtuEeeZI6rMTYV60w" name="DigitalArtefact">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_l4v74StuEeeZI6rMTYV60w" name="base_Class" association="_l4utwCtuEeeZI6rMTYV60w">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_l4utwCtuEeeZI6rMTYV60w" name="E_DigitalArtefact_Class1" memberEnd="_l4v74CtuEeeZI6rMTYV60w _l4v74StuEeeZI6rMTYV60w">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_l4v74CtuEeeZI6rMTYV60w" name="extension_DigitalArtefact" type="_gpMGwCtuEeeZI6rMTYV60w" aggregation="composite" association="_l4utwCtuEeeZI6rMTYV60w"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_mxPqICtuEeeZI6rMTYV60w" name="VirtualEntity">
+ <generalization xmi:type="uml:Generalization" xmi:id="_vgstkCtuEeeZI6rMTYV60w" general="_gpMGwCtuEeeZI6rMTYV60w"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_y3iGgCtuEeeZI6rMTYV60w" name="phisicalEntitySpecification">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#InstanceSpecification"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D4ZmgCtvEeeZI6rMTYV60w"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D4cp0CtvEeeZI6rMTYV60w" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_MsOzoitvEeeZI6rMTYV60w" name="physicalEntity" type="_PEDG8CtsEeeZI6rMTYV60w" association="_MsOMkCtvEeeZI6rMTYV60w">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_P7m5sCtvEeeZI6rMTYV60w"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_P7zG8CtvEeeZI6rMTYV60w" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_MsOMkCtvEeeZI6rMTYV60w" memberEnd="_MsOzoitvEeeZI6rMTYV60w _MsOzoytvEeeZI6rMTYV60w">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MsOzoCtvEeeZI6rMTYV60w" source="org.eclipse.papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MsOzoStvEeeZI6rMTYV60w" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_MsOzoytvEeeZI6rMTYV60w" name="virtualentity" type="_mxPqICtuEeeZI6rMTYV60w" association="_MsOMkCtvEeeZI6rMTYV60w">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SYl5gCtvEeeZI6rMTYV60w" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SY73wCtvEeeZI6rMTYV60w" value="*"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_cUpS8CtvEeeZI6rMTYV60w" name="ProvideService">
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_-oWzwCtvEeeZI6rMTYV60w" name="ProvideService_C2">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_Qpp2ACtwEeeZI6rMTYV60w">
+ <language>OCL</language>
+ <body>self.base_Association.memberEnd->one(p | p.type.oclIsKindOf(Service) and p.owningAssociation = null and and p.aggregationKind = UML::AggregationKind::shared)</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="__S_sMCtvEeeZI6rMTYV60w" name="ProvideService_C1">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_NOFuECtwEeeZI6rMTYV60w">
+ <language>OCL</language>
+ <body>self.base_Association.ownedEnd->one(p | p.type.oclIsKindOf(VirtualEntity))</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_odJ84CtvEeeZI6rMTYV60w" name="base_Association" association="_odIuwCtvEeeZI6rMTYV60w">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_emjrMCtvEeeZI6rMTYV60w" name="ProvideResource">
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_slVTMCtvEeeZI6rMTYV60w" name="ProvideResource_C1">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_3ukRcCtvEeeZI6rMTYV60w">
+ <language>OCL</language>
+ <body>self.base_Association.ownedEnd->one(p | p.type.oclIsKindOf(ServiceDescription))</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_tlTicCtvEeeZI6rMTYV60w" name="ProvideResource_C2">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_9bvPoCtvEeeZI6rMTYV60w">
+ <language>OCL</language>
+ <body>self.base_Association.memberEnd->one(p | p.type.oclIsKindOf(ResourceDescription) and p.owningAssociation = null and and p.aggregationKind = UML::AggregationKind::shared)</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_pGmigCtvEeeZI6rMTYV60w" name="base_Association" association="_pGlUYCtvEeeZI6rMTYV60w">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_odIuwCtvEeeZI6rMTYV60w" name="E_ProvideService_Association1" memberEnd="_odJV0CtvEeeZI6rMTYV60w _odJ84CtvEeeZI6rMTYV60w">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_odJV0CtvEeeZI6rMTYV60w" name="extension_ProvideService" type="_cUpS8CtvEeeZI6rMTYV60w" aggregation="composite" association="_odIuwCtvEeeZI6rMTYV60w"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_pGlUYCtvEeeZI6rMTYV60w" name="E_ProvideResource_Association1" memberEnd="_pGl7cCtvEeeZI6rMTYV60w _pGmigCtvEeeZI6rMTYV60w">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_pGl7cCtvEeeZI6rMTYV60w" name="extension_ProvideResource" type="_emjrMCtvEeeZI6rMTYV60w" aggregation="composite" association="_pGlUYCtvEeeZI6rMTYV60w"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_WG8lICtwEeeZI6rMTYV60w" name="ServiceDescription">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_gnmgcStwEeeZI6rMTYV60w" name="base_Interface" association="_gnl5YCtwEeeZI6rMTYV60w">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_jcr3MCtwEeeZI6rMTYV60w" name="resourceGetSet">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pJH1kCtwEeeZI6rMTYV60w"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pJMHACtwEeeZI6rMTYV60w" value="*"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_gnl5YCtwEeeZI6rMTYV60w" name="E_ServiceDescription_Interface1" memberEnd="_gnmgcCtwEeeZI6rMTYV60w _gnmgcStwEeeZI6rMTYV60w">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_gnmgcCtwEeeZI6rMTYV60w" name="extension_ServiceDescription" type="_WG8lICtwEeeZI6rMTYV60w" aggregation="composite" association="_gnl5YCtwEeeZI6rMTYV60w"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_ENBgwCtxEeeZI6rMTYV60w" name="Service">
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_K07B0CtxEeeZI6rMTYV60w" name="Service_C1">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_TlLWgCtxEeeZI6rMTYV60w">
+ <language>OCL</language>
+ <body>not self.base_Class.classifierBehavior.oclIsUndefined() and self.base_Class.isActive = true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_H-SL4CtxEeeZI6rMTYV60w" general="_gpMGwCtuEeeZI6rMTYV60w"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_aILwgCtxEeeZI6rMTYV60w" name="Core">
+ <packagedElement xmi:type="uml:Package" xmi:id="_hrtzYCtxEeeZI6rMTYV60w" name="Structure">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_rm64QCtxEeeZI6rMTYV60w" name="MetaValueSpecification">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_1JhP4CtxEeeZI6rMTYV60w" name="base_ValueSpecification" association="_1JgBwCtxEeeZI6rMTYV60w">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ValueSpecification"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_2HkMgCtxEeeZI6rMTYV60w" name="type" isDerived="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Type"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__PdlICtxEeeZI6rMTYV60w"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__PidoCtxEeeZI6rMTYV60w" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Bbpv4CtyEeeZI6rMTYV60w" name="description">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EVH3YCtyEeeZI6rMTYV60w"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EVMI0CtyEeeZI6rMTYV60w" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_1JgBwCtxEeeZI6rMTYV60w" name="E_MetaValueSpecification_ValueSpecification1" memberEnd="_1Jgo0CtxEeeZI6rMTYV60w _1JhP4CtxEeeZI6rMTYV60w">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_1Jgo0CtxEeeZI6rMTYV60w" name="extension_MetaValueSpecification" type="_rm64QCtxEeeZI6rMTYV60w" aggregation="composite" association="_1JgBwCtxEeeZI6rMTYV60w"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Fw88MCtyEeeZI6rMTYV60w" name="DetailedValueSpecification">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_JO7e8StyEeeZI6rMTYV60w" name="base_ValueSpecification" association="_JO6Q0CtyEeeZI6rMTYV60w">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ValueSpecification"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_OMkdoityEeeZI6rMTYV60w" name="metaSpecification" type="_rm64QCtxEeeZI6rMTYV60w" aggregation="composite" association="_OMj2kCtyEeeZI6rMTYV60w">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cWMqwCtyEeeZI6rMTYV60w"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cWha4CtyEeeZI6rMTYV60w" value="*"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_JO6Q0CtyEeeZI6rMTYV60w" name="E_DetailedValueSpecification_ValueSpecification1" memberEnd="_JO7e8CtyEeeZI6rMTYV60w _JO7e8StyEeeZI6rMTYV60w">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_JO7e8CtyEeeZI6rMTYV60w" name="extension_DetailedValueSpecification" type="_Fw88MCtyEeeZI6rMTYV60w" aggregation="composite" association="_JO6Q0CtyEeeZI6rMTYV60w"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_OMj2kCtyEeeZI6rMTYV60w" memberEnd="_OMkdoityEeeZI6rMTYV60w _OMlEsCtyEeeZI6rMTYV60w" navigableOwnedEnd="_OMlEsCtyEeeZI6rMTYV60w">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OMkdoCtyEeeZI6rMTYV60w" source="org.eclipse.papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OMkdoStyEeeZI6rMTYV60w" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_OMlEsCtyEeeZI6rMTYV60w" name="preciseSpecification" type="_Fw88MCtyEeeZI6rMTYV60w" association="_OMj2kCtyEeeZI6rMTYV60w"/>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_skdpICtyEeeZI6rMTYV60w" name="Resource">
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_13Nm4CtyEeeZI6rMTYV60w" alias="">
+ <importedElement xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_IXI-cBJuEdyNBsnA2HLmgg"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_-xvR4CtyEeeZI6rMTYV60w">
+ <importedElement xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ovMq4BJuEdyNBsnA2HLmgg"/>
+ </elementImport>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qMEY8CtzEeeZI6rMTYV60w" name="NetworkResource">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_uxr5MStzEeeZI6rMTYV60w" name="base_Class" association="_uxrSICtzEeeZI6rMTYV60w">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_uxrSICtzEeeZI6rMTYV60w" name="E_NetworkResource_Class1" memberEnd="_uxr5MCtzEeeZI6rMTYV60w _uxr5MStzEeeZI6rMTYV60w">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_uxr5MCtzEeeZI6rMTYV60w" name="extension_NetworkResource" type="_qMEY8CtzEeeZI6rMTYV60w" aggregation="composite" association="_uxrSICtzEeeZI6rMTYV60w"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_veD3ACtzEeeZI6rMTYV60w" name="OnDeviceResource">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_2VELEStzEeeZI6rMTYV60w" name="base_Class" association="_2VDkACtzEeeZI6rMTYV60w">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_3d40UCtzEeeZI6rMTYV60w" name="deviceBroker">
+ <type xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_IXI-cBJuEdyNBsnA2HLmgg"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CEnicCt0EeeZI6rMTYV60w"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CEzIoCt0EeeZI6rMTYV60w" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_4KpMoCtzEeeZI6rMTYV60w" name="memoryBroker">
+ <type xmi:type="uml:Stereotype" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ovMq4BJuEdyNBsnA2HLmgg"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DyZS4Ct0EeeZI6rMTYV60w"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DyeLYCt0EeeZI6rMTYV60w" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_2VDkACtzEeeZI6rMTYV60w" name="E_OnDeviceResource_Class1" memberEnd="_2VELECtzEeeZI6rMTYV60w _2VELEStzEeeZI6rMTYV60w">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_2VELECtzEeeZI6rMTYV60w" name="extension_OnDeviceResource" type="_veD3ACtzEeeZI6rMTYV60w" aggregation="composite" association="_2VDkACtzEeeZI6rMTYV60w"/>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+</uml:Profile>
diff --git a/org.eclipse.papyrus.iotml.profile/model/IoTML.ecore b/org.eclipse.papyrus.iotml.profile/model/IoTML.ecore
new file mode 100644
index 0000000..61bbcac
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/model/IoTML.ecore
@@ -0,0 +1,352 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="IoTML" nsURI="http:///IoTML.ecore" nsPrefix="IoTML">
+ <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details key="originalName" value="IoT-ML"/>
+ </eAnnotations>
+ <eSubpackages name="Animate" nsURI="http:///IoTML/Animate.ecore" nsPrefix="IoTML.Animate">
+ <eClassifiers xsi:type="ecore:EClass" name="HumanUser">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Actor" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../org.eclipse.uml2.uml/model/UML.ecore#//Actor"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="Hardware" nsURI="http:///IoTML/Hardware.ecore" nsPrefix="IoTML.Hardware">
+ <eSubpackages name="Actuator" nsURI="http:///IoTML/Hardware/Actuator.ecore" nsPrefix="IoTML.Hardware.Actuator">
+ <eClassifiers xsi:type="ecore:EClass" name="HwCommonActuator" eSuperTypes="../org.eclipse.papyrus.marte.static.profile/resources/MARTE.ecore#//MARTE_DesignModel/HRM/HwLogical/HwDevice/HWActuator">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="energyKind" ordered="false"
+ eType="#//Hardware/Actuator/EnergyKind"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="movementKind" ordered="false"
+ eType="#//Hardware/Actuator/MovementKind"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isPowered" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="EnergyKind">
+ <eLiterals name="Electrical"/>
+ <eLiterals name="Mechanical" value="1"/>
+ <eLiterals name="Pneumatical" value="2"/>
+ <eLiterals name="Hydraulic" value="3"/>
+ <eLiterals name="None" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="MovementKind">
+ <eLiterals name="Linear"/>
+ <eLiterals name="Rotational" value="1"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="Sensor" nsURI="http:///IoTML/Hardware/Sensor.ecore" nsPrefix="IoTML.Hardware.Sensor">
+ <eClassifiers xsi:type="ecore:EClass" name="HwCommonSensor" eSuperTypes="../org.eclipse.papyrus.marte.static.profile/resources/MARTE.ecore#//MARTE_DesignModel/HRM/HwLogical/HwDevice/HWSensor">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputValueType" ordered="false"
+ eType="ecore:EClass ../org.eclipse.papyrus.sysml14/resources/profile/sysml.ecore#//blocks/ValueType"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="outputValueType" ordered="false"
+ eType="ecore:EClass ../org.eclipse.papyrus.sysml14/resources/profile/sysml.ecore#//blocks/ValueType"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="hwcommonsensor" ordered="false"
+ lowerBound="1" eType="#//Hardware/Sensor/HwCommonSensor"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transferFunction" ordered="false"
+ eType="ecore:EClass ../org.eclipse.uml2.uml/model/UML.ecore#//Behavior"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="HwRFIDReaderSensor" eSuperTypes="#//Hardware/Sensor/HwCommonSensor">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="tag" ordered="false"
+ upperBound="-1" eType="#//Hardware/Sensor/HwTag"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="HwTag" eSuperTypes="../org.eclipse.papyrus.marte.static.profile/resources/MARTE.ecore#//MARTE_DesignModel/HRM/HwLogical/HwDevice/HwI_O">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="tageFrequency" ordered="false"
+ eType="ecore:EDataType ../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="Network" nsURI="http:///IoTML/Hardware/Network.ecore" nsPrefix="IoTML.Hardware.Network">
+ <eClassifiers xsi:type="ecore:EClass" name="ConnectedDevice" eSuperTypes="../org.eclipse.papyrus.marte.static.profile/resources/MARTE.ecore#//MARTE_DesignModel/HRM/HwLogical/HwCommunication/HwCommunicationResource"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Gateway" eSuperTypes="../org.eclipse.papyrus.marte.static.profile/resources/MARTE.ecore#//MARTE_DesignModel/HRM/HwLogical/HwComputing/HwComputingResource #//Hardware/Network/ConnectedDevice"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Server" eSuperTypes="../org.eclipse.papyrus.marte.static.profile/resources/MARTE.ecore#//MARTE_DesignModel/HRM/HwLogical/HwComputing/HwComputingResource #//Hardware/Network/ConnectedDevice"/>
+ </eSubpackages>
+ <eSubpackages name="Core" nsURI="http:///IoTML/Hardware/Core.ecore" nsPrefix="IoTML.Hardware.Core">
+ <eClassifiers xsi:type="ecore:EClass" name="AllocateResource" eSuperTypes="../org.eclipse.papyrus.marte.static.profile/resources/MARTE.ecore#//MARTE_Foundations/Alloc/Allocate">
+ <eOperations name="AllocateResource_C1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.base_Abstraction.client.oclIsKindOf(DeviceBroker) and self.base_Abstraction.supplier.oclIsKindOf(...)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="HasService">
+ <eOperations name="HasDevice_C1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.base_Association.ownedEnd->one(p | p.oclIsKindOf(PhisicalEntity) and self.base_Association.ownedEnd->size() = 1"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations name="HasDevice_C2" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.baseAssociation.memberEnd->one(p | p.oclIskIndOf(HwDevice) and p.aggregationKind = UML::AggregationKind:shared)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Association" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../org.eclipse.uml2.uml/model/UML.ecore#//Association"/>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+ <eSubpackages name="Hybrid" nsURI="http:///IoTML/Hybrid.ecore" nsPrefix="IoTML.Hybrid">
+ <eClassifiers xsi:type="ecore:EClass" name="PhysicalEntity" eSuperTypes="../org.eclipse.papyrus.marte.static.profile/resources/MARTE.ecore#//MARTE_DesignModel/HRM/HwGeneral/HwResource"/>
+ </eSubpackages>
+ <eSubpackages name="Software" nsURI="http:///IoTML/Software.ecore" nsPrefix="IoTML.Software">
+ <eSubpackages name="Artefact" nsURI="http:///IoTML/Software/Artefact.ecore" nsPrefix="IoTML.Software.Artefact">
+ <eClassifiers xsi:type="ecore:EClass" name="PropertyAccess">
+ <eOperations name="PropertyAccess_C1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.accessedProperty.type.oclIsKindOf(VirtualEntity)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations name="PropertyAccess_C2" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.base_Association.ownedEnd->one(p | p.type.oclIsKindOf(VirtualEntity)) and self.base_Association.ownedEnd->one(p | p.type.oclIsKindOf(PhysicalEntity))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations name="propertyAccess_C3" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.base_Association.navigableOwnedEnd->one(p | p.type.oclIsKindOf(PhysicalEntity))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Association" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../org.eclipse.uml2.uml/model/UML.ecore#//Association"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="accessedProperty" ordered="false"
+ eType="ecore:EClass ../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DigitalArtefact">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="VirtualEntity" eSuperTypes="#//Software/Artefact/DigitalArtefact">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="phisicalEntitySpecification"
+ ordered="false" eType="ecore:EClass ../org.eclipse.uml2.uml/model/UML.ecore#//InstanceSpecification"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="physicalEntity" ordered="false"
+ eType="#//Hybrid/PhysicalEntity"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProvideService">
+ <eOperations name="ProvideService_C2" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.base_Association.memberEnd->one(p | p.type.oclIsKindOf(Service) and p.owningAssociation = null and and p.aggregationKind = UML::AggregationKind::shared)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations name="ProvideService_C1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.base_Association.ownedEnd->one(p | p.type.oclIsKindOf(VirtualEntity))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Association" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../org.eclipse.uml2.uml/model/UML.ecore#//Association"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProvideResource">
+ <eOperations name="ProvideResource_C1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.base_Association.ownedEnd->one(p | p.type.oclIsKindOf(ServiceDescription))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations name="ProvideResource_C2" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.base_Association.memberEnd->one(p | p.type.oclIsKindOf(ResourceDescription) and p.owningAssociation = null and and p.aggregationKind = UML::AggregationKind::shared)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Association" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../org.eclipse.uml2.uml/model/UML.ecore#//Association"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ServiceDescription">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Interface" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../org.eclipse.uml2.uml/model/UML.ecore#//Interface"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="resourceGetSet" ordered="false"
+ upperBound="-1" eType="ecore:EClass ../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Service" eSuperTypes="#//Software/Artefact/DigitalArtefact">
+ <eOperations name="Service_C1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="not self.base_Class.classifierBehavior.oclIsUndefined() and self.base_Class.isActive = true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="Core" nsURI="http:///IoTML/Software/Core.ecore" nsPrefix="IoTML.Software.Core">
+ <eSubpackages name="Structure" nsURI="http:///IoTML/Software/Core/Structure.ecore"
+ nsPrefix="IoTML.Software.Core.Structure">
+ <eClassifiers xsi:type="ecore:EClass" name="MetaValueSpecification">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_ValueSpecification"
+ ordered="false" lowerBound="1" eType="ecore:EClass ../org.eclipse.uml2.uml/model/UML.ecore#//ValueSpecification"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false"
+ eType="ecore:EClass ../org.eclipse.uml2.uml/model/UML.ecore#//Type"
+ volatile="true" transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" ordered="false"
+ eType="ecore:EDataType ../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DetailedValueSpecification">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_ValueSpecification"
+ ordered="false" lowerBound="1" eType="ecore:EClass ../org.eclipse.uml2.uml/model/UML.ecore#//ValueSpecification"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaSpecification"
+ ordered="false" upperBound="-1" eType="#//Software/Core/Structure/MetaValueSpecification"
+ containment="true"/>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+ <eSubpackages name="Resource" nsURI="http:///IoTML/Software/Resource.ecore" nsPrefix="IoTML.Software.Resource">
+ <eClassifiers xsi:type="ecore:EClass" name="NetworkResource">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OnDeviceResource">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="deviceBroker" ordered="false"
+ eType="ecore:EClass ../org.eclipse.papyrus.marte.static.profile/resources/MARTE.ecore#//MARTE_DesignModel/SRM/SW_Brokering/DeviceBroker"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="memoryBroker" ordered="false"
+ eType="ecore:EClass ../org.eclipse.papyrus.marte.static.profile/resources/MARTE.ecore#//MARTE_DesignModel/SRM/SW_Brokering/MemoryBroker"/>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/org.eclipse.papyrus.iotml.profile/model/model-style.css b/org.eclipse.papyrus.iotml.profile/model/model-style.css
new file mode 100644
index 0000000..d267c53
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/model/model-style.css
@@ -0,0 +1,87 @@
+/* Apply to all elements */
+*{
+ fillColor: white;
+ fontName: Arial;
+ elementIcon:false;
+ gradient:none;
+ fontHeight: 7;
+}
+
+/* Structure related style */
+
+Model {
+ bold: true;
+ fillColor: white;
+ gradient: white;
+}
+
+Package{
+ bold: true;
+ qualifiedNameDepth:full;
+}
+
+Class{
+ bold: true;
+}
+
+Class > Compartment[kind="attributes"] {
+ visible:true;
+}
+
+Class > Compartment[kind="nestedclassifiers"] {
+ visible:false;
+}
+
+[appliedStereotypes~="Metaclass"]{
+ bold: true;
+ fillColor: lightgrey;
+}
+
+Property{
+ bold: false;
+ maskLabel:name,
+ type,
+ multiplicity,
+ visibility,
+ defaultValue;
+}
+
+Comment{
+ fillColor: beige;
+}
+
+Operation{
+ maskLabel: name,
+ return multiplicity,
+ return type,
+ parametersdirection,
+ parametersname,
+ parametersmultiplicity,
+ parameterstype,
+ visibility;
+ fontName: Arial;
+}
+
+Constraint{
+ fillColor: beige;
+}
+
+Extension, Association, Generalization, Dependency, Connector, Abstraction, PackageImport, ElementImport, PackageMerge, Usage{
+ routing: Rectilinear;
+}
+
+Abstraction{
+ lineColor: #9bc7cc;
+}
+
+DataType{
+ bold: true;
+}
+
+Enumeration{
+ bold: true;
+}
+
+EnumerationLiteral{
+ bold: false;
+}
diff --git a/org.eclipse.papyrus.iotml.profile/plugin.properties b/org.eclipse.papyrus.iotml.profile/plugin.properties
new file mode 100644
index 0000000..59f89b7
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/plugin.properties
@@ -0,0 +1,4 @@
+#
+
+pluginName = IoT-ML Model
+providerName = www.example.org
diff --git a/org.eclipse.papyrus.iotml.profile/plugin.xml b/org.eclipse.papyrus.iotml.profile/plugin.xml
new file mode 100644
index 0000000..33b293c
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/plugin.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated IoT-ML.profile -->
+ <package
+ uri="http:///IoTML/Animate.ecore"
+ class="IoTML.Animate.AnimatePackage"
+ genModel="model/IoT-ML.profile.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated IoT-ML.profile -->
+ <package
+ uri="http:///IoTML/Hardware/Actuator.ecore"
+ class="IoTML.Hardware.Actuator.ActuatorPackage"
+ genModel="model/IoT-ML.profile.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated IoT-ML.profile -->
+ <package
+ uri="http:///IoTML/Hardware/Sensor.ecore"
+ class="IoTML.Hardware.Sensor.SensorPackage"
+ genModel="model/IoT-ML.profile.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated IoT-ML.profile -->
+ <package
+ uri="http:///IoTML/Hardware/Network.ecore"
+ class="IoTML.Hardware.Network.NetworkPackage"
+ genModel="model/IoT-ML.profile.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated IoT-ML.profile -->
+ <package
+ uri="http:///IoTML/Hardware/Core.ecore"
+ class="IoTML.Hardware.Core.CorePackage"
+ genModel="model/IoT-ML.profile.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated IoT-ML.profile -->
+ <package
+ uri="http:///IoTML/Hybrid.ecore"
+ class="IoTML.Hybrid.HybridPackage"
+ genModel="model/IoT-ML.profile.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated IoT-ML.profile -->
+ <package
+ uri="http:///IoTML/Software/Artefact.ecore"
+ class="IoTML.Software.Artefact.ArtefactPackage"
+ genModel="model/IoT-ML.profile.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated IoT-ML.profile -->
+ <package
+ uri="http:///IoTML/Software/Core/Structure.ecore"
+ class="IoTML.Software.Core.Structure.StructurePackage"
+ genModel="model/IoT-ML.profile.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated IoT-ML.profile -->
+ <package
+ uri="http:///IoTML/Software/Resource.ecore"
+ class="IoTML.Software.Resource.ResourcePackage"
+ genModel="model/IoT-ML.profile.genmodel"/>
+ </extension>
+ <extension
+ point="org.eclipse.emf.ecore.uri_mapping">
+ <mapping
+ source="pathmap://IOTML_PROFILE/"
+ target="platform:/plugin/org.eclipse.papyrus.iotml.profile/model/">
+ </mapping>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.uml.extensionpoints.UMLProfile">
+ <profile
+ description="UML pofile for the IoT"
+ name="IoTML"
+ path="pathmap://IOTML_PROFILE/IoT-ML.profile.uml"
+ provider="Eclipse Modeling Project">
+ </profile>
+ </extension>
+
+</plugin>
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/AnimateFactory.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/AnimateFactory.java
new file mode 100644
index 0000000..687b86d
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/AnimateFactory.java
@@ -0,0 +1,42 @@
+/**
+ */
+package IoTML.Animate;
+
+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 IoTML.Animate.AnimatePackage
+ * @generated
+ */
+public interface AnimateFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ AnimateFactory eINSTANCE = IoTML.Animate.impl.AnimateFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Human User</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Human User</em>'.
+ * @generated
+ */
+ HumanUser createHumanUser();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ AnimatePackage getAnimatePackage();
+
+} //AnimateFactory
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/AnimatePackage.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/AnimatePackage.java
new file mode 100644
index 0000000..3b6c9b2
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/AnimatePackage.java
@@ -0,0 +1,149 @@
+/**
+ */
+package IoTML.Animate;
+
+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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see IoTML.Animate.AnimateFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface AnimatePackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Animate";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http:///IoTML/Animate.ecore";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "IoTML.Animate";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ AnimatePackage eINSTANCE = IoTML.Animate.impl.AnimatePackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link IoTML.Animate.impl.HumanUserImpl <em>Human User</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Animate.impl.HumanUserImpl
+ * @see IoTML.Animate.impl.AnimatePackageImpl#getHumanUser()
+ * @generated
+ */
+ int HUMAN_USER = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Actor</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HUMAN_USER__BASE_ACTOR = 0;
+
+ /**
+ * The number of structural features of the '<em>Human User</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HUMAN_USER_FEATURE_COUNT = 1;
+
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Animate.HumanUser <em>Human User</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Human User</em>'.
+ * @see IoTML.Animate.HumanUser
+ * @generated
+ */
+ EClass getHumanUser();
+
+ /**
+ * Returns the meta object for the reference '{@link IoTML.Animate.HumanUser#getBase_Actor <em>Base Actor</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Actor</em>'.
+ * @see IoTML.Animate.HumanUser#getBase_Actor()
+ * @see #getHumanUser()
+ * @generated
+ */
+ EReference getHumanUser_Base_Actor();
+
+ /**
+ * 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
+ */
+ AnimateFactory getAnimateFactory();
+
+ /**
+ * <!-- 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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link IoTML.Animate.impl.HumanUserImpl <em>Human User</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Animate.impl.HumanUserImpl
+ * @see IoTML.Animate.impl.AnimatePackageImpl#getHumanUser()
+ * @generated
+ */
+ EClass HUMAN_USER = eINSTANCE.getHumanUser();
+
+ /**
+ * The meta object literal for the '<em><b>Base Actor</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HUMAN_USER__BASE_ACTOR = eINSTANCE.getHumanUser_Base_Actor();
+
+ }
+
+} //AnimatePackage
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/HumanUser.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/HumanUser.java
new file mode 100644
index 0000000..e26526b
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/HumanUser.java
@@ -0,0 +1,52 @@
+/**
+ */
+package IoTML.Animate;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Actor;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Human User</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Animate.HumanUser#getBase_Actor <em>Base Actor</em>}</li>
+ * </ul>
+ *
+ * @see IoTML.Animate.AnimatePackage#getHumanUser()
+ * @model
+ * @generated
+ */
+public interface HumanUser extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Actor</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Actor</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Actor</em>' reference.
+ * @see #setBase_Actor(Actor)
+ * @see IoTML.Animate.AnimatePackage#getHumanUser_Base_Actor()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Actor getBase_Actor();
+
+ /**
+ * Sets the value of the '{@link IoTML.Animate.HumanUser#getBase_Actor <em>Base Actor</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Actor</em>' reference.
+ * @see #getBase_Actor()
+ * @generated
+ */
+ void setBase_Actor(Actor value);
+
+} // HumanUser
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/impl/AnimateFactoryImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/impl/AnimateFactoryImpl.java
new file mode 100644
index 0000000..516c5a9
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/impl/AnimateFactoryImpl.java
@@ -0,0 +1,93 @@
+/**
+ */
+package IoTML.Animate.impl;
+
+import IoTML.Animate.*;
+
+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 AnimateFactoryImpl extends EFactoryImpl implements AnimateFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AnimateFactory init() {
+ try {
+ AnimateFactory theAnimateFactory = (AnimateFactory)EPackage.Registry.INSTANCE.getEFactory(AnimatePackage.eNS_URI);
+ if (theAnimateFactory != null) {
+ return theAnimateFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new AnimateFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AnimateFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case AnimatePackage.HUMAN_USER: return createHumanUser();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HumanUser createHumanUser() {
+ HumanUserImpl humanUser = new HumanUserImpl();
+ return humanUser;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AnimatePackage getAnimatePackage() {
+ return (AnimatePackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ public static AnimatePackage getPackage() {
+ return AnimatePackage.eINSTANCE;
+ }
+
+} //AnimateFactoryImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/impl/AnimatePackageImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/impl/AnimatePackageImpl.java
new file mode 100644
index 0000000..aa021fd
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/impl/AnimatePackageImpl.java
@@ -0,0 +1,268 @@
+/**
+ */
+package IoTML.Animate.impl;
+
+import IoTML.Animate.AnimateFactory;
+import IoTML.Animate.AnimatePackage;
+import IoTML.Animate.HumanUser;
+
+import IoTML.Hardware.Actuator.ActuatorPackage;
+
+import IoTML.Hardware.Actuator.impl.ActuatorPackageImpl;
+
+import IoTML.Hardware.Core.CorePackage;
+
+import IoTML.Hardware.Core.impl.CorePackageImpl;
+
+import IoTML.Hardware.Network.NetworkPackage;
+
+import IoTML.Hardware.Network.impl.NetworkPackageImpl;
+
+import IoTML.Hardware.Sensor.SensorPackage;
+
+import IoTML.Hardware.Sensor.impl.SensorPackageImpl;
+
+import IoTML.Hybrid.HybridPackage;
+
+import IoTML.Hybrid.impl.HybridPackageImpl;
+
+import IoTML.Software.Artefact.ArtefactPackage;
+
+import IoTML.Software.Artefact.impl.ArtefactPackageImpl;
+
+import IoTML.Software.Core.Structure.StructurePackage;
+
+import IoTML.Software.Core.Structure.impl.StructurePackageImpl;
+
+import IoTML.Software.Resource.ResourcePackage;
+
+import IoTML.Software.Resource.impl.ResourcePackageImpl;
+
+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;
+
+import org.eclipse.papyrus.MARTE.MARTEPackage;
+
+import org.eclipse.papyrus.MARTE_Library.BasicNFP_Types.BasicNFP_TypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.GRM_BasicTypes.GRM_BasicTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_DataTypes.MARTE_DataTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_PrimitivesTypes.MARTE_PrimitivesTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MeasurementUnits.MeasurementUnitsPackage;
+
+import org.eclipse.papyrus.MARTE_Library.RS_Library.RS_LibraryPackage;
+
+import org.eclipse.papyrus.MARTE_Library.TimeLibrary.TimeLibraryPackage;
+
+import org.eclipse.papyrus.MARTE_Library.TimeTypesLibrary.TimeTypesLibraryPackage;
+
+import org.eclipse.papyrus.sysml14.sysmlPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AnimatePackageImpl extends EPackageImpl implements AnimatePackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass humanUserEClass = 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 IoTML.Animate.AnimatePackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private AnimatePackageImpl() {
+ super(eNS_URI, AnimateFactory.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 AnimatePackage#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 AnimatePackage init() {
+ if (isInited) return (AnimatePackage)EPackage.Registry.INSTANCE.getEPackage(AnimatePackage.eNS_URI);
+
+ // Obtain or create and register package
+ AnimatePackageImpl theAnimatePackage = (AnimatePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof AnimatePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new AnimatePackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ MARTEPackage.eINSTANCE.eClass();
+ MeasurementUnitsPackage.eINSTANCE.eClass();
+ GRM_BasicTypesPackage.eINSTANCE.eClass();
+ MARTE_DataTypesPackage.eINSTANCE.eClass();
+ BasicNFP_TypesPackage.eINSTANCE.eClass();
+ TimeTypesLibraryPackage.eINSTANCE.eClass();
+ TimeLibraryPackage.eINSTANCE.eClass();
+ RS_LibraryPackage.eINSTANCE.eClass();
+ MARTE_PrimitivesTypesPackage.eINSTANCE.eClass();
+ sysmlPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ ActuatorPackageImpl theActuatorPackage = (ActuatorPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ActuatorPackage.eNS_URI) instanceof ActuatorPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ActuatorPackage.eNS_URI) : ActuatorPackage.eINSTANCE);
+ SensorPackageImpl theSensorPackage = (SensorPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SensorPackage.eNS_URI) instanceof SensorPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SensorPackage.eNS_URI) : SensorPackage.eINSTANCE);
+ NetworkPackageImpl theNetworkPackage = (NetworkPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(NetworkPackage.eNS_URI) instanceof NetworkPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(NetworkPackage.eNS_URI) : NetworkPackage.eINSTANCE);
+ CorePackageImpl theCorePackage = (CorePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI) instanceof CorePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI) : CorePackage.eINSTANCE);
+ HybridPackageImpl theHybridPackage = (HybridPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(HybridPackage.eNS_URI) instanceof HybridPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(HybridPackage.eNS_URI) : HybridPackage.eINSTANCE);
+ ArtefactPackageImpl theArtefactPackage = (ArtefactPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ArtefactPackage.eNS_URI) instanceof ArtefactPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ArtefactPackage.eNS_URI) : ArtefactPackage.eINSTANCE);
+ StructurePackageImpl theStructurePackage = (StructurePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(StructurePackage.eNS_URI) instanceof StructurePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(StructurePackage.eNS_URI) : StructurePackage.eINSTANCE);
+ ResourcePackageImpl theResourcePackage = (ResourcePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ResourcePackage.eNS_URI) instanceof ResourcePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ResourcePackage.eNS_URI) : ResourcePackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theAnimatePackage.createPackageContents();
+ theActuatorPackage.createPackageContents();
+ theSensorPackage.createPackageContents();
+ theNetworkPackage.createPackageContents();
+ theCorePackage.createPackageContents();
+ theHybridPackage.createPackageContents();
+ theArtefactPackage.createPackageContents();
+ theStructurePackage.createPackageContents();
+ theResourcePackage.createPackageContents();
+
+ // Initialize created meta-data
+ theAnimatePackage.initializePackageContents();
+ theActuatorPackage.initializePackageContents();
+ theSensorPackage.initializePackageContents();
+ theNetworkPackage.initializePackageContents();
+ theCorePackage.initializePackageContents();
+ theHybridPackage.initializePackageContents();
+ theArtefactPackage.initializePackageContents();
+ theStructurePackage.initializePackageContents();
+ theResourcePackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theAnimatePackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(AnimatePackage.eNS_URI, theAnimatePackage);
+ return theAnimatePackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHumanUser() {
+ return humanUserEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHumanUser_Base_Actor() {
+ return (EReference)humanUserEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AnimateFactory getAnimateFactory() {
+ return (AnimateFactory)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
+ humanUserEClass = createEClass(HUMAN_USER);
+ createEReference(humanUserEClass, HUMAN_USER__BASE_ACTOR);
+ }
+
+ /**
+ * <!-- 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);
+
+ // Obtain other dependent packages
+ UMLPackage theUMLPackage = (UMLPackage)EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(humanUserEClass, HumanUser.class, "HumanUser", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getHumanUser_Base_Actor(), theUMLPackage.getActor(), null, "base_Actor", null, 1, 1, HumanUser.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //AnimatePackageImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/impl/HumanUserImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/impl/HumanUserImpl.java
new file mode 100644
index 0000000..7cdf585
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/impl/HumanUserImpl.java
@@ -0,0 +1,153 @@
+/**
+ */
+package IoTML.Animate.impl;
+
+import IoTML.Animate.AnimatePackage;
+import IoTML.Animate.HumanUser;
+
+import org.eclipse.emf.common.notify.Notification;
+
+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.uml2.uml.Actor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Human User</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Animate.impl.HumanUserImpl#getBase_Actor <em>Base Actor</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class HumanUserImpl extends MinimalEObjectImpl.Container implements HumanUser {
+ /**
+ * The cached value of the '{@link #getBase_Actor() <em>Base Actor</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Actor()
+ * @generated
+ * @ordered
+ */
+ protected Actor base_Actor;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected HumanUserImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return AnimatePackage.Literals.HUMAN_USER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Actor getBase_Actor() {
+ if (base_Actor != null && base_Actor.eIsProxy()) {
+ InternalEObject oldBase_Actor = (InternalEObject)base_Actor;
+ base_Actor = (Actor)eResolveProxy(oldBase_Actor);
+ if (base_Actor != oldBase_Actor) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, AnimatePackage.HUMAN_USER__BASE_ACTOR, oldBase_Actor, base_Actor));
+ }
+ }
+ return base_Actor;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Actor basicGetBase_Actor() {
+ return base_Actor;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Actor(Actor newBase_Actor) {
+ Actor oldBase_Actor = base_Actor;
+ base_Actor = newBase_Actor;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, AnimatePackage.HUMAN_USER__BASE_ACTOR, oldBase_Actor, base_Actor));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case AnimatePackage.HUMAN_USER__BASE_ACTOR:
+ if (resolve) return getBase_Actor();
+ return basicGetBase_Actor();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case AnimatePackage.HUMAN_USER__BASE_ACTOR:
+ setBase_Actor((Actor)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case AnimatePackage.HUMAN_USER__BASE_ACTOR:
+ setBase_Actor((Actor)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case AnimatePackage.HUMAN_USER__BASE_ACTOR:
+ return base_Actor != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //HumanUserImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/util/AnimateAdapterFactory.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/util/AnimateAdapterFactory.java
new file mode 100644
index 0000000..70c7a41
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/util/AnimateAdapterFactory.java
@@ -0,0 +1,116 @@
+/**
+ */
+package IoTML.Animate.util;
+
+import IoTML.Animate.*;
+
+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 IoTML.Animate.AnimatePackage
+ * @generated
+ */
+public class AnimateAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static AnimatePackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AnimateAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = AnimatePackage.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
+ */
+ 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 AnimateSwitch modelSwitch =
+ new AnimateSwitch() {
+ public Object caseHumanUser(HumanUser object) {
+ return createHumanUserAdapter();
+ }
+ public Object 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
+ */
+ public Adapter createAdapter(Notifier target) {
+ return (Adapter)modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Animate.HumanUser <em>Human User</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 IoTML.Animate.HumanUser
+ * @generated
+ */
+ public Adapter createHumanUserAdapter() {
+ 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;
+ }
+
+} //AnimateAdapterFactory
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/util/AnimateSwitch.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/util/AnimateSwitch.java
new file mode 100644
index 0000000..3ffaa6d
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Animate/util/AnimateSwitch.java
@@ -0,0 +1,126 @@
+/**
+ */
+package IoTML.Animate.util;
+
+import IoTML.Animate.*;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- 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 IoTML.Animate.AnimatePackage
+ * @generated
+ */
+public class AnimateSwitch {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static AnimatePackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AnimateSwitch() {
+ if (modelPackage == null) {
+ modelPackage = AnimatePackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * 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
+ */
+ public Object doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch((EClass)eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case AnimatePackage.HUMAN_USER: {
+ HumanUser humanUser = (HumanUser)theEObject;
+ Object result = caseHumanUser(humanUser);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Human User</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>Human User</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseHumanUser(HumanUser 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
+ */
+ public Object defaultCase(EObject object) {
+ return null;
+ }
+
+} //AnimateSwitch
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/ActuatorFactory.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/ActuatorFactory.java
new file mode 100644
index 0000000..917e9f0
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/ActuatorFactory.java
@@ -0,0 +1,42 @@
+/**
+ */
+package IoTML.Hardware.Actuator;
+
+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 IoTML.Hardware.Actuator.ActuatorPackage
+ * @generated
+ */
+public interface ActuatorFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ActuatorFactory eINSTANCE = IoTML.Hardware.Actuator.impl.ActuatorFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Hw Common Actuator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Hw Common Actuator</em>'.
+ * @generated
+ */
+ HwCommonActuator createHwCommonActuator();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ ActuatorPackage getActuatorPackage();
+
+} //ActuatorFactory
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/ActuatorPackage.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/ActuatorPackage.java
new file mode 100644
index 0000000..2cf30e4
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/ActuatorPackage.java
@@ -0,0 +1,412 @@
+/**
+ */
+package IoTML.Hardware.Actuator;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwDevicePackage;
+
+/**
+ * <!-- 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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Actuator.ActuatorFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface ActuatorPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Actuator";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http:///IoTML/Hardware/Actuator.ecore";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "IoTML.Hardware.Actuator";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ActuatorPackage eINSTANCE = IoTML.Hardware.Actuator.impl.ActuatorPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link IoTML.Hardware.Actuator.impl.HwCommonActuatorImpl <em>Hw Common Actuator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Actuator.impl.HwCommonActuatorImpl
+ * @see IoTML.Hardware.Actuator.impl.ActuatorPackageImpl#getHwCommonActuator()
+ * @generated
+ */
+ int HW_COMMON_ACTUATOR = 0;
+
+ /**
+ * The feature id for the '<em><b>Res Mult</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_ACTUATOR__RES_MULT = HwDevicePackage.HW_ACTUATOR__RES_MULT;
+
+ /**
+ * The feature id for the '<em><b>Is Protected</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_ACTUATOR__IS_PROTECTED = HwDevicePackage.HW_ACTUATOR__IS_PROTECTED;
+
+ /**
+ * The feature id for the '<em><b>Is Active</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_ACTUATOR__IS_ACTIVE = HwDevicePackage.HW_ACTUATOR__IS_ACTIVE;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_ACTUATOR__BASE_PROPERTY = HwDevicePackage.HW_ACTUATOR__BASE_PROPERTY;
+
+ /**
+ * The feature id for the '<em><b>Base Instance Specification</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_ACTUATOR__BASE_INSTANCE_SPECIFICATION = HwDevicePackage.HW_ACTUATOR__BASE_INSTANCE_SPECIFICATION;
+
+ /**
+ * The feature id for the '<em><b>Base Classifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_ACTUATOR__BASE_CLASSIFIER = HwDevicePackage.HW_ACTUATOR__BASE_CLASSIFIER;
+
+ /**
+ * The feature id for the '<em><b>Base Lifeline</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_ACTUATOR__BASE_LIFELINE = HwDevicePackage.HW_ACTUATOR__BASE_LIFELINE;
+
+ /**
+ * The feature id for the '<em><b>Base Connectable Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_ACTUATOR__BASE_CONNECTABLE_ELEMENT = HwDevicePackage.HW_ACTUATOR__BASE_CONNECTABLE_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_ACTUATOR__DESCRIPTION = HwDevicePackage.HW_ACTUATOR__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>PHW Services</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_ACTUATOR__PHW_SERVICES = HwDevicePackage.HW_ACTUATOR__PHW_SERVICES;
+
+ /**
+ * The feature id for the '<em><b>RHW Services</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_ACTUATOR__RHW_SERVICES = HwDevicePackage.HW_ACTUATOR__RHW_SERVICES;
+
+ /**
+ * The feature id for the '<em><b>Owned HW</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_ACTUATOR__OWNED_HW = HwDevicePackage.HW_ACTUATOR__OWNED_HW;
+
+ /**
+ * The feature id for the '<em><b>End Points</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_ACTUATOR__END_POINTS = HwDevicePackage.HW_ACTUATOR__END_POINTS;
+
+ /**
+ * The feature id for the '<em><b>Frequency</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_ACTUATOR__FREQUENCY = HwDevicePackage.HW_ACTUATOR__FREQUENCY;
+
+ /**
+ * The feature id for the '<em><b>Speed Factor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_ACTUATOR__SPEED_FACTOR = HwDevicePackage.HW_ACTUATOR__SPEED_FACTOR;
+
+ /**
+ * The feature id for the '<em><b>Main Scheduler</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_ACTUATOR__MAIN_SCHEDULER = HwDevicePackage.HW_ACTUATOR__MAIN_SCHEDULER;
+
+ /**
+ * The feature id for the '<em><b>Energy Kind</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_ACTUATOR__ENERGY_KIND = HwDevicePackage.HW_ACTUATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Movement Kind</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_ACTUATOR__MOVEMENT_KIND = HwDevicePackage.HW_ACTUATOR_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Is Powered</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_ACTUATOR__IS_POWERED = HwDevicePackage.HW_ACTUATOR_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Hw Common Actuator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_ACTUATOR_FEATURE_COUNT = HwDevicePackage.HW_ACTUATOR_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link IoTML.Hardware.Actuator.EnergyKind <em>Energy Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Actuator.EnergyKind
+ * @see IoTML.Hardware.Actuator.impl.ActuatorPackageImpl#getEnergyKind()
+ * @generated
+ */
+ int ENERGY_KIND = 1;
+
+ /**
+ * The meta object id for the '{@link IoTML.Hardware.Actuator.MovementKind <em>Movement Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Actuator.MovementKind
+ * @see IoTML.Hardware.Actuator.impl.ActuatorPackageImpl#getMovementKind()
+ * @generated
+ */
+ int MOVEMENT_KIND = 2;
+
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Hardware.Actuator.HwCommonActuator <em>Hw Common Actuator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Hw Common Actuator</em>'.
+ * @see IoTML.Hardware.Actuator.HwCommonActuator
+ * @generated
+ */
+ EClass getHwCommonActuator();
+
+ /**
+ * Returns the meta object for the attribute '{@link IoTML.Hardware.Actuator.HwCommonActuator#getEnergyKind <em>Energy Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Energy Kind</em>'.
+ * @see IoTML.Hardware.Actuator.HwCommonActuator#getEnergyKind()
+ * @see #getHwCommonActuator()
+ * @generated
+ */
+ EAttribute getHwCommonActuator_EnergyKind();
+
+ /**
+ * Returns the meta object for the attribute '{@link IoTML.Hardware.Actuator.HwCommonActuator#getMovementKind <em>Movement Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Movement Kind</em>'.
+ * @see IoTML.Hardware.Actuator.HwCommonActuator#getMovementKind()
+ * @see #getHwCommonActuator()
+ * @generated
+ */
+ EAttribute getHwCommonActuator_MovementKind();
+
+ /**
+ * Returns the meta object for the attribute '{@link IoTML.Hardware.Actuator.HwCommonActuator#isPowered <em>Is Powered</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Is Powered</em>'.
+ * @see IoTML.Hardware.Actuator.HwCommonActuator#isPowered()
+ * @see #getHwCommonActuator()
+ * @generated
+ */
+ EAttribute getHwCommonActuator_IsPowered();
+
+ /**
+ * Returns the meta object for enum '{@link IoTML.Hardware.Actuator.EnergyKind <em>Energy Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Energy Kind</em>'.
+ * @see IoTML.Hardware.Actuator.EnergyKind
+ * @generated
+ */
+ EEnum getEnergyKind();
+
+ /**
+ * Returns the meta object for enum '{@link IoTML.Hardware.Actuator.MovementKind <em>Movement Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Movement Kind</em>'.
+ * @see IoTML.Hardware.Actuator.MovementKind
+ * @generated
+ */
+ EEnum getMovementKind();
+
+ /**
+ * 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
+ */
+ ActuatorFactory getActuatorFactory();
+
+ /**
+ * <!-- 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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link IoTML.Hardware.Actuator.impl.HwCommonActuatorImpl <em>Hw Common Actuator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Actuator.impl.HwCommonActuatorImpl
+ * @see IoTML.Hardware.Actuator.impl.ActuatorPackageImpl#getHwCommonActuator()
+ * @generated
+ */
+ EClass HW_COMMON_ACTUATOR = eINSTANCE.getHwCommonActuator();
+
+ /**
+ * The meta object literal for the '<em><b>Energy Kind</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute HW_COMMON_ACTUATOR__ENERGY_KIND = eINSTANCE.getHwCommonActuator_EnergyKind();
+
+ /**
+ * The meta object literal for the '<em><b>Movement Kind</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute HW_COMMON_ACTUATOR__MOVEMENT_KIND = eINSTANCE.getHwCommonActuator_MovementKind();
+
+ /**
+ * The meta object literal for the '<em><b>Is Powered</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute HW_COMMON_ACTUATOR__IS_POWERED = eINSTANCE.getHwCommonActuator_IsPowered();
+
+ /**
+ * The meta object literal for the '{@link IoTML.Hardware.Actuator.EnergyKind <em>Energy Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Actuator.EnergyKind
+ * @see IoTML.Hardware.Actuator.impl.ActuatorPackageImpl#getEnergyKind()
+ * @generated
+ */
+ EEnum ENERGY_KIND = eINSTANCE.getEnergyKind();
+
+ /**
+ * The meta object literal for the '{@link IoTML.Hardware.Actuator.MovementKind <em>Movement Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Actuator.MovementKind
+ * @see IoTML.Hardware.Actuator.impl.ActuatorPackageImpl#getMovementKind()
+ * @generated
+ */
+ EEnum MOVEMENT_KIND = eINSTANCE.getMovementKind();
+
+ }
+
+} //ActuatorPackage
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/EnergyKind.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/EnergyKind.java
new file mode 100644
index 0000000..15f3269
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/EnergyKind.java
@@ -0,0 +1,234 @@
+/**
+ */
+package IoTML.Hardware.Actuator;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Energy Kind</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Actuator.ActuatorPackage#getEnergyKind()
+ * @model
+ * @generated
+ */
+public final class EnergyKind extends AbstractEnumerator {
+ /**
+ * The '<em><b>Electrical</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Electrical</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ELECTRICAL_LITERAL
+ * @model name="Electrical"
+ * @generated
+ * @ordered
+ */
+ public static final int ELECTRICAL = 0;
+
+ /**
+ * The '<em><b>Mechanical</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Mechanical</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MECHANICAL_LITERAL
+ * @model name="Mechanical"
+ * @generated
+ * @ordered
+ */
+ public static final int MECHANICAL = 1;
+
+ /**
+ * The '<em><b>Pneumatical</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Pneumatical</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PNEUMATICAL_LITERAL
+ * @model name="Pneumatical"
+ * @generated
+ * @ordered
+ */
+ public static final int PNEUMATICAL = 2;
+
+ /**
+ * The '<em><b>Hydraulic</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Hydraulic</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HYDRAULIC_LITERAL
+ * @model name="Hydraulic"
+ * @generated
+ * @ordered
+ */
+ public static final int HYDRAULIC = 3;
+
+ /**
+ * The '<em><b>None</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>None</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NONE_LITERAL
+ * @model name="None"
+ * @generated
+ * @ordered
+ */
+ public static final int NONE = 4;
+
+ /**
+ * The '<em><b>Electrical</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ELECTRICAL
+ * @generated
+ * @ordered
+ */
+ public static final EnergyKind ELECTRICAL_LITERAL = new EnergyKind(ELECTRICAL, "Electrical", "Electrical");
+
+ /**
+ * The '<em><b>Mechanical</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MECHANICAL
+ * @generated
+ * @ordered
+ */
+ public static final EnergyKind MECHANICAL_LITERAL = new EnergyKind(MECHANICAL, "Mechanical", "Mechanical");
+
+ /**
+ * The '<em><b>Pneumatical</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PNEUMATICAL
+ * @generated
+ * @ordered
+ */
+ public static final EnergyKind PNEUMATICAL_LITERAL = new EnergyKind(PNEUMATICAL, "Pneumatical", "Pneumatical");
+
+ /**
+ * The '<em><b>Hydraulic</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HYDRAULIC
+ * @generated
+ * @ordered
+ */
+ public static final EnergyKind HYDRAULIC_LITERAL = new EnergyKind(HYDRAULIC, "Hydraulic", "Hydraulic");
+
+ /**
+ * The '<em><b>None</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NONE
+ * @generated
+ * @ordered
+ */
+ public static final EnergyKind NONE_LITERAL = new EnergyKind(NONE, "None", "None");
+
+ /**
+ * An array of all the '<em><b>Energy Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final EnergyKind[] VALUES_ARRAY =
+ new EnergyKind[] {
+ ELECTRICAL_LITERAL,
+ MECHANICAL_LITERAL,
+ PNEUMATICAL_LITERAL,
+ HYDRAULIC_LITERAL,
+ NONE_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Energy Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Energy Kind</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static EnergyKind get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ EnergyKind result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Energy Kind</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static EnergyKind getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ EnergyKind result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Energy Kind</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static EnergyKind get(int value) {
+ switch (value) {
+ case ELECTRICAL: return ELECTRICAL_LITERAL;
+ case MECHANICAL: return MECHANICAL_LITERAL;
+ case PNEUMATICAL: return PNEUMATICAL_LITERAL;
+ case HYDRAULIC: return HYDRAULIC_LITERAL;
+ case NONE: return NONE_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EnergyKind(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //EnergyKind
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/HwCommonActuator.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/HwCommonActuator.java
new file mode 100644
index 0000000..739808a
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/HwCommonActuator.java
@@ -0,0 +1,110 @@
+/**
+ */
+package IoTML.Hardware.Actuator;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HWActuator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Hw Common Actuator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Hardware.Actuator.HwCommonActuator#getEnergyKind <em>Energy Kind</em>}</li>
+ * <li>{@link IoTML.Hardware.Actuator.HwCommonActuator#getMovementKind <em>Movement Kind</em>}</li>
+ * <li>{@link IoTML.Hardware.Actuator.HwCommonActuator#isPowered <em>Is Powered</em>}</li>
+ * </ul>
+ *
+ * @see IoTML.Hardware.Actuator.ActuatorPackage#getHwCommonActuator()
+ * @model
+ * @generated
+ */
+public interface HwCommonActuator extends HWActuator {
+ /**
+ * Returns the value of the '<em><b>Energy Kind</b></em>' attribute.
+ * The literals are from the enumeration {@link IoTML.Hardware.Actuator.EnergyKind}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Energy Kind</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Energy Kind</em>' attribute.
+ * @see IoTML.Hardware.Actuator.EnergyKind
+ * @see #setEnergyKind(EnergyKind)
+ * @see IoTML.Hardware.Actuator.ActuatorPackage#getHwCommonActuator_EnergyKind()
+ * @model ordered="false"
+ * @generated
+ */
+ EnergyKind getEnergyKind();
+
+ /**
+ * Sets the value of the '{@link IoTML.Hardware.Actuator.HwCommonActuator#getEnergyKind <em>Energy Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Energy Kind</em>' attribute.
+ * @see IoTML.Hardware.Actuator.EnergyKind
+ * @see #getEnergyKind()
+ * @generated
+ */
+ void setEnergyKind(EnergyKind value);
+
+ /**
+ * Returns the value of the '<em><b>Movement Kind</b></em>' attribute.
+ * The literals are from the enumeration {@link IoTML.Hardware.Actuator.MovementKind}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Movement Kind</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Movement Kind</em>' attribute.
+ * @see IoTML.Hardware.Actuator.MovementKind
+ * @see #setMovementKind(MovementKind)
+ * @see IoTML.Hardware.Actuator.ActuatorPackage#getHwCommonActuator_MovementKind()
+ * @model ordered="false"
+ * @generated
+ */
+ MovementKind getMovementKind();
+
+ /**
+ * Sets the value of the '{@link IoTML.Hardware.Actuator.HwCommonActuator#getMovementKind <em>Movement Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Movement Kind</em>' attribute.
+ * @see IoTML.Hardware.Actuator.MovementKind
+ * @see #getMovementKind()
+ * @generated
+ */
+ void setMovementKind(MovementKind value);
+
+ /**
+ * Returns the value of the '<em><b>Is Powered</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Powered</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Is Powered</em>' attribute.
+ * @see #setIsPowered(boolean)
+ * @see IoTML.Hardware.Actuator.ActuatorPackage#getHwCommonActuator_IsPowered()
+ * @model dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false"
+ * @generated
+ */
+ boolean isPowered();
+
+ /**
+ * Sets the value of the '{@link IoTML.Hardware.Actuator.HwCommonActuator#isPowered <em>Is Powered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Is Powered</em>' attribute.
+ * @see #isPowered()
+ * @generated
+ */
+ void setIsPowered(boolean value);
+
+} // HwCommonActuator
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/MovementKind.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/MovementKind.java
new file mode 100644
index 0000000..e56c8e2
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/MovementKind.java
@@ -0,0 +1,153 @@
+/**
+ */
+package IoTML.Hardware.Actuator;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Movement Kind</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Actuator.ActuatorPackage#getMovementKind()
+ * @model
+ * @generated
+ */
+public final class MovementKind extends AbstractEnumerator {
+ /**
+ * The '<em><b>Linear</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Linear</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LINEAR_LITERAL
+ * @model name="Linear"
+ * @generated
+ * @ordered
+ */
+ public static final int LINEAR = 0;
+
+ /**
+ * The '<em><b>Rotational</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Rotational</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ROTATIONAL_LITERAL
+ * @model name="Rotational"
+ * @generated
+ * @ordered
+ */
+ public static final int ROTATIONAL = 1;
+
+ /**
+ * The '<em><b>Linear</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LINEAR
+ * @generated
+ * @ordered
+ */
+ public static final MovementKind LINEAR_LITERAL = new MovementKind(LINEAR, "Linear", "Linear");
+
+ /**
+ * The '<em><b>Rotational</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ROTATIONAL
+ * @generated
+ * @ordered
+ */
+ public static final MovementKind ROTATIONAL_LITERAL = new MovementKind(ROTATIONAL, "Rotational", "Rotational");
+
+ /**
+ * An array of all the '<em><b>Movement Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final MovementKind[] VALUES_ARRAY =
+ new MovementKind[] {
+ LINEAR_LITERAL,
+ ROTATIONAL_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Movement Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Movement Kind</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static MovementKind get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ MovementKind result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Movement Kind</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static MovementKind getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ MovementKind result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Movement Kind</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static MovementKind get(int value) {
+ switch (value) {
+ case LINEAR: return LINEAR_LITERAL;
+ case ROTATIONAL: return ROTATIONAL_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private MovementKind(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //MovementKind
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/impl/ActuatorFactoryImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/impl/ActuatorFactoryImpl.java
new file mode 100644
index 0000000..9f967e4
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/impl/ActuatorFactoryImpl.java
@@ -0,0 +1,166 @@
+/**
+ */
+package IoTML.Hardware.Actuator.impl;
+
+import IoTML.Hardware.Actuator.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+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 ActuatorFactoryImpl extends EFactoryImpl implements ActuatorFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ActuatorFactory init() {
+ try {
+ ActuatorFactory theActuatorFactory = (ActuatorFactory)EPackage.Registry.INSTANCE.getEFactory(ActuatorPackage.eNS_URI);
+ if (theActuatorFactory != null) {
+ return theActuatorFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new ActuatorFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActuatorFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case ActuatorPackage.HW_COMMON_ACTUATOR: return createHwCommonActuator();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case ActuatorPackage.ENERGY_KIND:
+ return createEnergyKindFromString(eDataType, initialValue);
+ case ActuatorPackage.MOVEMENT_KIND:
+ return createMovementKindFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case ActuatorPackage.ENERGY_KIND:
+ return convertEnergyKindToString(eDataType, instanceValue);
+ case ActuatorPackage.MOVEMENT_KIND:
+ return convertMovementKindToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HwCommonActuator createHwCommonActuator() {
+ HwCommonActuatorImpl hwCommonActuator = new HwCommonActuatorImpl();
+ return hwCommonActuator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EnergyKind createEnergyKindFromString(EDataType eDataType, String initialValue) {
+ EnergyKind result = EnergyKind.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertEnergyKindToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MovementKind createMovementKindFromString(EDataType eDataType, String initialValue) {
+ MovementKind result = MovementKind.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertMovementKindToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActuatorPackage getActuatorPackage() {
+ return (ActuatorPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ public static ActuatorPackage getPackage() {
+ return ActuatorPackage.eINSTANCE;
+ }
+
+} //ActuatorFactoryImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/impl/ActuatorPackageImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/impl/ActuatorPackageImpl.java
new file mode 100644
index 0000000..7690df9
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/impl/ActuatorPackageImpl.java
@@ -0,0 +1,345 @@
+/**
+ */
+package IoTML.Hardware.Actuator.impl;
+
+import IoTML.Animate.AnimatePackage;
+
+import IoTML.Animate.impl.AnimatePackageImpl;
+
+import IoTML.Hardware.Actuator.ActuatorFactory;
+import IoTML.Hardware.Actuator.ActuatorPackage;
+import IoTML.Hardware.Actuator.EnergyKind;
+import IoTML.Hardware.Actuator.HwCommonActuator;
+import IoTML.Hardware.Actuator.MovementKind;
+
+import IoTML.Hardware.Core.CorePackage;
+
+import IoTML.Hardware.Core.impl.CorePackageImpl;
+
+import IoTML.Hardware.Network.NetworkPackage;
+
+import IoTML.Hardware.Network.impl.NetworkPackageImpl;
+
+import IoTML.Hardware.Sensor.SensorPackage;
+
+import IoTML.Hardware.Sensor.impl.SensorPackageImpl;
+
+import IoTML.Hybrid.HybridPackage;
+
+import IoTML.Hybrid.impl.HybridPackageImpl;
+
+import IoTML.Software.Artefact.ArtefactPackage;
+
+import IoTML.Software.Artefact.impl.ArtefactPackageImpl;
+
+import IoTML.Software.Core.Structure.StructurePackage;
+
+import IoTML.Software.Core.Structure.impl.StructurePackageImpl;
+
+import IoTML.Software.Resource.ResourcePackage;
+
+import IoTML.Software.Resource.impl.ResourcePackageImpl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTEPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwDevicePackage;
+
+import org.eclipse.papyrus.MARTE_Library.BasicNFP_Types.BasicNFP_TypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.GRM_BasicTypes.GRM_BasicTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_DataTypes.MARTE_DataTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_PrimitivesTypes.MARTE_PrimitivesTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MeasurementUnits.MeasurementUnitsPackage;
+
+import org.eclipse.papyrus.MARTE_Library.RS_Library.RS_LibraryPackage;
+
+import org.eclipse.papyrus.MARTE_Library.TimeLibrary.TimeLibraryPackage;
+
+import org.eclipse.papyrus.MARTE_Library.TimeTypesLibrary.TimeTypesLibraryPackage;
+
+import org.eclipse.papyrus.sysml14.sysmlPackage;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ActuatorPackageImpl extends EPackageImpl implements ActuatorPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hwCommonActuatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum energyKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum movementKindEEnum = 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 IoTML.Hardware.Actuator.ActuatorPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private ActuatorPackageImpl() {
+ super(eNS_URI, ActuatorFactory.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 ActuatorPackage#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 ActuatorPackage init() {
+ if (isInited) return (ActuatorPackage)EPackage.Registry.INSTANCE.getEPackage(ActuatorPackage.eNS_URI);
+
+ // Obtain or create and register package
+ ActuatorPackageImpl theActuatorPackage = (ActuatorPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ActuatorPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ActuatorPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ MARTEPackage.eINSTANCE.eClass();
+ MeasurementUnitsPackage.eINSTANCE.eClass();
+ GRM_BasicTypesPackage.eINSTANCE.eClass();
+ MARTE_DataTypesPackage.eINSTANCE.eClass();
+ BasicNFP_TypesPackage.eINSTANCE.eClass();
+ TimeTypesLibraryPackage.eINSTANCE.eClass();
+ TimeLibraryPackage.eINSTANCE.eClass();
+ RS_LibraryPackage.eINSTANCE.eClass();
+ MARTE_PrimitivesTypesPackage.eINSTANCE.eClass();
+ sysmlPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ AnimatePackageImpl theAnimatePackage = (AnimatePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(AnimatePackage.eNS_URI) instanceof AnimatePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(AnimatePackage.eNS_URI) : AnimatePackage.eINSTANCE);
+ SensorPackageImpl theSensorPackage = (SensorPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SensorPackage.eNS_URI) instanceof SensorPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SensorPackage.eNS_URI) : SensorPackage.eINSTANCE);
+ NetworkPackageImpl theNetworkPackage = (NetworkPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(NetworkPackage.eNS_URI) instanceof NetworkPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(NetworkPackage.eNS_URI) : NetworkPackage.eINSTANCE);
+ CorePackageImpl theCorePackage = (CorePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI) instanceof CorePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI) : CorePackage.eINSTANCE);
+ HybridPackageImpl theHybridPackage = (HybridPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(HybridPackage.eNS_URI) instanceof HybridPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(HybridPackage.eNS_URI) : HybridPackage.eINSTANCE);
+ ArtefactPackageImpl theArtefactPackage = (ArtefactPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ArtefactPackage.eNS_URI) instanceof ArtefactPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ArtefactPackage.eNS_URI) : ArtefactPackage.eINSTANCE);
+ StructurePackageImpl theStructurePackage = (StructurePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(StructurePackage.eNS_URI) instanceof StructurePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(StructurePackage.eNS_URI) : StructurePackage.eINSTANCE);
+ ResourcePackageImpl theResourcePackage = (ResourcePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ResourcePackage.eNS_URI) instanceof ResourcePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ResourcePackage.eNS_URI) : ResourcePackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theActuatorPackage.createPackageContents();
+ theAnimatePackage.createPackageContents();
+ theSensorPackage.createPackageContents();
+ theNetworkPackage.createPackageContents();
+ theCorePackage.createPackageContents();
+ theHybridPackage.createPackageContents();
+ theArtefactPackage.createPackageContents();
+ theStructurePackage.createPackageContents();
+ theResourcePackage.createPackageContents();
+
+ // Initialize created meta-data
+ theActuatorPackage.initializePackageContents();
+ theAnimatePackage.initializePackageContents();
+ theSensorPackage.initializePackageContents();
+ theNetworkPackage.initializePackageContents();
+ theCorePackage.initializePackageContents();
+ theHybridPackage.initializePackageContents();
+ theArtefactPackage.initializePackageContents();
+ theStructurePackage.initializePackageContents();
+ theResourcePackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theActuatorPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(ActuatorPackage.eNS_URI, theActuatorPackage);
+ return theActuatorPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHwCommonActuator() {
+ return hwCommonActuatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getHwCommonActuator_EnergyKind() {
+ return (EAttribute)hwCommonActuatorEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getHwCommonActuator_MovementKind() {
+ return (EAttribute)hwCommonActuatorEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getHwCommonActuator_IsPowered() {
+ return (EAttribute)hwCommonActuatorEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getEnergyKind() {
+ return energyKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getMovementKind() {
+ return movementKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActuatorFactory getActuatorFactory() {
+ return (ActuatorFactory)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
+ hwCommonActuatorEClass = createEClass(HW_COMMON_ACTUATOR);
+ createEAttribute(hwCommonActuatorEClass, HW_COMMON_ACTUATOR__ENERGY_KIND);
+ createEAttribute(hwCommonActuatorEClass, HW_COMMON_ACTUATOR__MOVEMENT_KIND);
+ createEAttribute(hwCommonActuatorEClass, HW_COMMON_ACTUATOR__IS_POWERED);
+
+ // Create enums
+ energyKindEEnum = createEEnum(ENERGY_KIND);
+ movementKindEEnum = createEEnum(MOVEMENT_KIND);
+ }
+
+ /**
+ * <!-- 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);
+
+ // Obtain other dependent packages
+ HwDevicePackage theHwDevicePackage = (HwDevicePackage)EPackage.Registry.INSTANCE.getEPackage(HwDevicePackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Add supertypes to classes
+ hwCommonActuatorEClass.getESuperTypes().add(theHwDevicePackage.getHWActuator());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(hwCommonActuatorEClass, HwCommonActuator.class, "HwCommonActuator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getHwCommonActuator_EnergyKind(), this.getEnergyKind(), "energyKind", null, 0, 1, HwCommonActuator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getHwCommonActuator_MovementKind(), this.getMovementKind(), "movementKind", null, 0, 1, HwCommonActuator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getHwCommonActuator_IsPowered(), theTypesPackage.getBoolean(), "isPowered", null, 1, 1, HwCommonActuator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(energyKindEEnum, EnergyKind.class, "EnergyKind");
+ addEEnumLiteral(energyKindEEnum, EnergyKind.ELECTRICAL_LITERAL);
+ addEEnumLiteral(energyKindEEnum, EnergyKind.MECHANICAL_LITERAL);
+ addEEnumLiteral(energyKindEEnum, EnergyKind.PNEUMATICAL_LITERAL);
+ addEEnumLiteral(energyKindEEnum, EnergyKind.HYDRAULIC_LITERAL);
+ addEEnumLiteral(energyKindEEnum, EnergyKind.NONE_LITERAL);
+
+ initEEnum(movementKindEEnum, MovementKind.class, "MovementKind");
+ addEEnumLiteral(movementKindEEnum, MovementKind.LINEAR_LITERAL);
+ addEEnumLiteral(movementKindEEnum, MovementKind.ROTATIONAL_LITERAL);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //ActuatorPackageImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/impl/HwCommonActuatorImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/impl/HwCommonActuatorImpl.java
new file mode 100644
index 0000000..5d273aa
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/impl/HwCommonActuatorImpl.java
@@ -0,0 +1,268 @@
+/**
+ */
+package IoTML.Hardware.Actuator.impl;
+
+import IoTML.Hardware.Actuator.ActuatorPackage;
+import IoTML.Hardware.Actuator.EnergyKind;
+import IoTML.Hardware.Actuator.HwCommonActuator;
+import IoTML.Hardware.Actuator.MovementKind;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.impl.HWActuatorImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Hw Common Actuator</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Hardware.Actuator.impl.HwCommonActuatorImpl#getEnergyKind <em>Energy Kind</em>}</li>
+ * <li>{@link IoTML.Hardware.Actuator.impl.HwCommonActuatorImpl#getMovementKind <em>Movement Kind</em>}</li>
+ * <li>{@link IoTML.Hardware.Actuator.impl.HwCommonActuatorImpl#isPowered <em>Is Powered</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class HwCommonActuatorImpl extends HWActuatorImpl implements HwCommonActuator {
+ /**
+ * The default value of the '{@link #getEnergyKind() <em>Energy Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEnergyKind()
+ * @generated
+ * @ordered
+ */
+ protected static final EnergyKind ENERGY_KIND_EDEFAULT = EnergyKind.ELECTRICAL_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getEnergyKind() <em>Energy Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEnergyKind()
+ * @generated
+ * @ordered
+ */
+ protected EnergyKind energyKind = ENERGY_KIND_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getMovementKind() <em>Movement Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMovementKind()
+ * @generated
+ * @ordered
+ */
+ protected static final MovementKind MOVEMENT_KIND_EDEFAULT = MovementKind.LINEAR_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getMovementKind() <em>Movement Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMovementKind()
+ * @generated
+ * @ordered
+ */
+ protected MovementKind movementKind = MOVEMENT_KIND_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isPowered() <em>Is Powered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPowered()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_POWERED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isPowered() <em>Is Powered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPowered()
+ * @generated
+ * @ordered
+ */
+ protected boolean isPowered = IS_POWERED_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected HwCommonActuatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ActuatorPackage.Literals.HW_COMMON_ACTUATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EnergyKind getEnergyKind() {
+ return energyKind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEnergyKind(EnergyKind newEnergyKind) {
+ EnergyKind oldEnergyKind = energyKind;
+ energyKind = newEnergyKind == null ? ENERGY_KIND_EDEFAULT : newEnergyKind;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ActuatorPackage.HW_COMMON_ACTUATOR__ENERGY_KIND, oldEnergyKind, energyKind));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MovementKind getMovementKind() {
+ return movementKind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMovementKind(MovementKind newMovementKind) {
+ MovementKind oldMovementKind = movementKind;
+ movementKind = newMovementKind == null ? MOVEMENT_KIND_EDEFAULT : newMovementKind;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ActuatorPackage.HW_COMMON_ACTUATOR__MOVEMENT_KIND, oldMovementKind, movementKind));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isPowered() {
+ return isPowered;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIsPowered(boolean newIsPowered) {
+ boolean oldIsPowered = isPowered;
+ isPowered = newIsPowered;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ActuatorPackage.HW_COMMON_ACTUATOR__IS_POWERED, oldIsPowered, isPowered));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ActuatorPackage.HW_COMMON_ACTUATOR__ENERGY_KIND:
+ return getEnergyKind();
+ case ActuatorPackage.HW_COMMON_ACTUATOR__MOVEMENT_KIND:
+ return getMovementKind();
+ case ActuatorPackage.HW_COMMON_ACTUATOR__IS_POWERED:
+ return isPowered() ? Boolean.TRUE : Boolean.FALSE;
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ActuatorPackage.HW_COMMON_ACTUATOR__ENERGY_KIND:
+ setEnergyKind((EnergyKind)newValue);
+ return;
+ case ActuatorPackage.HW_COMMON_ACTUATOR__MOVEMENT_KIND:
+ setMovementKind((MovementKind)newValue);
+ return;
+ case ActuatorPackage.HW_COMMON_ACTUATOR__IS_POWERED:
+ setIsPowered(((Boolean)newValue).booleanValue());
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ActuatorPackage.HW_COMMON_ACTUATOR__ENERGY_KIND:
+ setEnergyKind(ENERGY_KIND_EDEFAULT);
+ return;
+ case ActuatorPackage.HW_COMMON_ACTUATOR__MOVEMENT_KIND:
+ setMovementKind(MOVEMENT_KIND_EDEFAULT);
+ return;
+ case ActuatorPackage.HW_COMMON_ACTUATOR__IS_POWERED:
+ setIsPowered(IS_POWERED_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ActuatorPackage.HW_COMMON_ACTUATOR__ENERGY_KIND:
+ return energyKind != ENERGY_KIND_EDEFAULT;
+ case ActuatorPackage.HW_COMMON_ACTUATOR__MOVEMENT_KIND:
+ return movementKind != MOVEMENT_KIND_EDEFAULT;
+ case ActuatorPackage.HW_COMMON_ACTUATOR__IS_POWERED:
+ return isPowered != IS_POWERED_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (energyKind: ");
+ result.append(energyKind);
+ result.append(", movementKind: ");
+ result.append(movementKind);
+ result.append(", isPowered: ");
+ result.append(isPowered);
+ result.append(')');
+ return result.toString();
+ }
+
+} //HwCommonActuatorImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/util/ActuatorAdapterFactory.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/util/ActuatorAdapterFactory.java
new file mode 100644
index 0000000..d07560c
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/util/ActuatorAdapterFactory.java
@@ -0,0 +1,245 @@
+/**
+ */
+package IoTML.Hardware.Actuator.util;
+
+import IoTML.Hardware.Actuator.*;
+
+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;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.HwResource;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HWActuator;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwDevice;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwI_O;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.DeviceResource;
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.ProcessingResource;
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.Resource;
+
+/**
+ * <!-- 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 IoTML.Hardware.Actuator.ActuatorPackage
+ * @generated
+ */
+public class ActuatorAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ActuatorPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActuatorAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = ActuatorPackage.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
+ */
+ 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 ActuatorSwitch modelSwitch =
+ new ActuatorSwitch() {
+ public Object caseHwCommonActuator(HwCommonActuator object) {
+ return createHwCommonActuatorAdapter();
+ }
+ public Object caseResource(Resource object) {
+ return createResourceAdapter();
+ }
+ public Object caseHwResource(HwResource object) {
+ return createHwResourceAdapter();
+ }
+ public Object caseProcessingResource(ProcessingResource object) {
+ return createProcessingResourceAdapter();
+ }
+ public Object caseDeviceResource(DeviceResource object) {
+ return createDeviceResourceAdapter();
+ }
+ public Object caseHwDevice(HwDevice object) {
+ return createHwDeviceAdapter();
+ }
+ public Object caseHwI_O(HwI_O object) {
+ return createHwI_OAdapter();
+ }
+ public Object caseHWActuator(HWActuator object) {
+ return createHWActuatorAdapter();
+ }
+ public Object 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
+ */
+ public Adapter createAdapter(Notifier target) {
+ return (Adapter)modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Hardware.Actuator.HwCommonActuator <em>Hw Common Actuator</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 IoTML.Hardware.Actuator.HwCommonActuator
+ * @generated
+ */
+ public Adapter createHwCommonActuatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.Resource <em>Resource</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 org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.Resource
+ * @generated
+ */
+ public Adapter createResourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.HwResource <em>Hw Resource</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 org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.HwResource
+ * @generated
+ */
+ public Adapter createHwResourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.ProcessingResource <em>Processing Resource</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 org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.ProcessingResource
+ * @generated
+ */
+ public Adapter createProcessingResourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.DeviceResource <em>Device Resource</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 org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.DeviceResource
+ * @generated
+ */
+ public Adapter createDeviceResourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwDevice <em>Hw Device</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 org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwDevice
+ * @generated
+ */
+ public Adapter createHwDeviceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwI_O <em>Hw IO</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 org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwI_O
+ * @generated
+ */
+ public Adapter createHwI_OAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HWActuator <em>HW Actuator</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 org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HWActuator
+ * @generated
+ */
+ public Adapter createHWActuatorAdapter() {
+ 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;
+ }
+
+} //ActuatorAdapterFactory
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/util/ActuatorSwitch.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/util/ActuatorSwitch.java
new file mode 100644
index 0000000..c3b607a
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Actuator/util/ActuatorSwitch.java
@@ -0,0 +1,248 @@
+/**
+ */
+package IoTML.Hardware.Actuator.util;
+
+import IoTML.Hardware.Actuator.*;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.HwResource;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HWActuator;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwDevice;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwI_O;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.DeviceResource;
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.ProcessingResource;
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.Resource;
+
+/**
+ * <!-- 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 IoTML.Hardware.Actuator.ActuatorPackage
+ * @generated
+ */
+public class ActuatorSwitch {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ActuatorPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActuatorSwitch() {
+ if (modelPackage == null) {
+ modelPackage = ActuatorPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * 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
+ */
+ public Object doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch((EClass)eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case ActuatorPackage.HW_COMMON_ACTUATOR: {
+ HwCommonActuator hwCommonActuator = (HwCommonActuator)theEObject;
+ Object result = caseHwCommonActuator(hwCommonActuator);
+ if (result == null) result = caseHWActuator(hwCommonActuator);
+ if (result == null) result = caseHwI_O(hwCommonActuator);
+ if (result == null) result = caseHwDevice(hwCommonActuator);
+ if (result == null) result = caseHwResource(hwCommonActuator);
+ if (result == null) result = caseDeviceResource(hwCommonActuator);
+ if (result == null) result = caseProcessingResource(hwCommonActuator);
+ if (result == null) result = caseResource(hwCommonActuator);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hw Common Actuator</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>Hw Common Actuator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseHwCommonActuator(HwCommonActuator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Resource</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>Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseResource(Resource object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hw Resource</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>Hw Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseHwResource(HwResource object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Processing Resource</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>Processing Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseProcessingResource(ProcessingResource object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Device Resource</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>Device Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDeviceResource(DeviceResource object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hw Device</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>Hw Device</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseHwDevice(HwDevice object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hw IO</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>Hw IO</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseHwI_O(HwI_O object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>HW Actuator</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>HW Actuator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseHWActuator(HWActuator 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
+ */
+ public Object defaultCase(EObject object) {
+ return null;
+ }
+
+} //ActuatorSwitch
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/AllocateResource.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/AllocateResource.java
new file mode 100644
index 0000000..eea3bf7
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/AllocateResource.java
@@ -0,0 +1,35 @@
+/**
+ */
+package IoTML.Hardware.Core;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.Alloc.Allocate;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Allocate Resource</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see IoTML.Hardware.Core.CorePackage#getAllocateResource()
+ * @model
+ * @generated
+ */
+public interface AllocateResource extends Allocate {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Abstraction.client.oclIsKindOf(DeviceBroker) and self.base_Abstraction.supplier.oclIsKindOf(...)
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ boolean AllocateResource_C1(DiagnosticChain diagnostics, Map context);
+
+} // AllocateResource
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/CoreFactory.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/CoreFactory.java
new file mode 100644
index 0000000..3bfaac0
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/CoreFactory.java
@@ -0,0 +1,51 @@
+/**
+ */
+package IoTML.Hardware.Core;
+
+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 IoTML.Hardware.Core.CorePackage
+ * @generated
+ */
+public interface CoreFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ CoreFactory eINSTANCE = IoTML.Hardware.Core.impl.CoreFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Allocate Resource</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Allocate Resource</em>'.
+ * @generated
+ */
+ AllocateResource createAllocateResource();
+
+ /**
+ * Returns a new object of class '<em>Has Service</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Has Service</em>'.
+ * @generated
+ */
+ HasService createHasService();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ CorePackage getCorePackage();
+
+} //CoreFactory
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/CorePackage.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/CorePackage.java
new file mode 100644
index 0000000..2da6cf2
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/CorePackage.java
@@ -0,0 +1,226 @@
+/**
+ */
+package IoTML.Hardware.Core;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.Alloc.AllocPackage;
+
+/**
+ * <!-- 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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Core.CoreFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface CorePackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Core";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http:///IoTML/Hardware/Core.ecore";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "IoTML.Hardware.Core";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ CorePackage eINSTANCE = IoTML.Hardware.Core.impl.CorePackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link IoTML.Hardware.Core.impl.AllocateResourceImpl <em>Allocate Resource</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Core.impl.AllocateResourceImpl
+ * @see IoTML.Hardware.Core.impl.CorePackageImpl#getAllocateResource()
+ * @generated
+ */
+ int ALLOCATE_RESOURCE = 0;
+
+ /**
+ * The feature id for the '<em><b>Kind</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATE_RESOURCE__KIND = AllocPackage.ALLOCATE__KIND;
+
+ /**
+ * The feature id for the '<em><b>Nature</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATE_RESOURCE__NATURE = AllocPackage.ALLOCATE__NATURE;
+
+ /**
+ * The feature id for the '<em><b>Base Abstraction</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATE_RESOURCE__BASE_ABSTRACTION = AllocPackage.ALLOCATE__BASE_ABSTRACTION;
+
+ /**
+ * The feature id for the '<em><b>Implied Constraint</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATE_RESOURCE__IMPLIED_CONSTRAINT = AllocPackage.ALLOCATE__IMPLIED_CONSTRAINT;
+
+ /**
+ * The number of structural features of the '<em>Allocate Resource</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALLOCATE_RESOURCE_FEATURE_COUNT = AllocPackage.ALLOCATE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link IoTML.Hardware.Core.impl.HasServiceImpl <em>Has Service</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Core.impl.HasServiceImpl
+ * @see IoTML.Hardware.Core.impl.CorePackageImpl#getHasService()
+ * @generated
+ */
+ int HAS_SERVICE = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Association</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_SERVICE__BASE_ASSOCIATION = 0;
+
+ /**
+ * The number of structural features of the '<em>Has Service</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HAS_SERVICE_FEATURE_COUNT = 1;
+
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Hardware.Core.AllocateResource <em>Allocate Resource</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Allocate Resource</em>'.
+ * @see IoTML.Hardware.Core.AllocateResource
+ * @generated
+ */
+ EClass getAllocateResource();
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Hardware.Core.HasService <em>Has Service</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Has Service</em>'.
+ * @see IoTML.Hardware.Core.HasService
+ * @generated
+ */
+ EClass getHasService();
+
+ /**
+ * Returns the meta object for the reference '{@link IoTML.Hardware.Core.HasService#getBase_Association <em>Base Association</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Association</em>'.
+ * @see IoTML.Hardware.Core.HasService#getBase_Association()
+ * @see #getHasService()
+ * @generated
+ */
+ EReference getHasService_Base_Association();
+
+ /**
+ * 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
+ */
+ CoreFactory getCoreFactory();
+
+ /**
+ * <!-- 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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link IoTML.Hardware.Core.impl.AllocateResourceImpl <em>Allocate Resource</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Core.impl.AllocateResourceImpl
+ * @see IoTML.Hardware.Core.impl.CorePackageImpl#getAllocateResource()
+ * @generated
+ */
+ EClass ALLOCATE_RESOURCE = eINSTANCE.getAllocateResource();
+
+ /**
+ * The meta object literal for the '{@link IoTML.Hardware.Core.impl.HasServiceImpl <em>Has Service</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Core.impl.HasServiceImpl
+ * @see IoTML.Hardware.Core.impl.CorePackageImpl#getHasService()
+ * @generated
+ */
+ EClass HAS_SERVICE = eINSTANCE.getHasService();
+
+ /**
+ * The meta object literal for the '<em><b>Base Association</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HAS_SERVICE__BASE_ASSOCIATION = eINSTANCE.getHasService_Base_Association();
+
+ }
+
+} //CorePackage
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/HasService.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/HasService.java
new file mode 100644
index 0000000..bd8901c
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/HasService.java
@@ -0,0 +1,82 @@
+/**
+ */
+package IoTML.Hardware.Core;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Association;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Has Service</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Hardware.Core.HasService#getBase_Association <em>Base Association</em>}</li>
+ * </ul>
+ *
+ * @see IoTML.Hardware.Core.CorePackage#getHasService()
+ * @model
+ * @generated
+ */
+public interface HasService extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Association</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Association</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Association</em>' reference.
+ * @see #setBase_Association(Association)
+ * @see IoTML.Hardware.Core.CorePackage#getHasService_Base_Association()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Association getBase_Association();
+
+ /**
+ * Sets the value of the '{@link IoTML.Hardware.Core.HasService#getBase_Association <em>Base Association</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Association</em>' reference.
+ * @see #getBase_Association()
+ * @generated
+ */
+ void setBase_Association(Association value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Association.ownedEnd->one(p | p.oclIsKindOf(PhisicalEntity) and self.base_Association.ownedEnd->size() = 1
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ boolean HasDevice_C1(DiagnosticChain diagnostics, Map context);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.baseAssociation.memberEnd->one(p | p.oclIskIndOf(HwDevice) and p.aggregationKind = UML::AggregationKind:shared)
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ boolean HasDevice_C2(DiagnosticChain diagnostics, Map context);
+
+} // HasService
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/impl/AllocateResourceImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/impl/AllocateResourceImpl.java
new file mode 100644
index 0000000..8b2f13f
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/impl/AllocateResourceImpl.java
@@ -0,0 +1,75 @@
+/**
+ */
+package IoTML.Hardware.Core.impl;
+
+import IoTML.Hardware.Core.AllocateResource;
+import IoTML.Hardware.Core.CorePackage;
+
+import IoTML.Hardware.Core.util.CoreValidator;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.emf.ecore.util.EObjectValidator;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.Alloc.impl.AllocateImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Allocate Resource</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AllocateResourceImpl extends AllocateImpl implements AllocateResource {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AllocateResourceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return CorePackage.Literals.ALLOCATE_RESOURCE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean AllocateResource_C1(DiagnosticChain diagnostics, Map context) {
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics.add
+ (new BasicDiagnostic
+ (Diagnostic.ERROR,
+ CoreValidator.DIAGNOSTIC_SOURCE,
+ CoreValidator.ALLOCATE_RESOURCE__ALLOCATE_RESOURCE_C1,
+ EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "AllocateResource_C1", EObjectValidator.getObjectLabel(this, context) }),
+ new Object [] { this }));
+ }
+ return false;
+ }
+ return true;
+ }
+
+} //AllocateResourceImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/impl/CoreFactoryImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/impl/CoreFactoryImpl.java
new file mode 100644
index 0000000..1db78dd
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/impl/CoreFactoryImpl.java
@@ -0,0 +1,104 @@
+/**
+ */
+package IoTML.Hardware.Core.impl;
+
+import IoTML.Hardware.Core.*;
+
+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 CoreFactoryImpl extends EFactoryImpl implements CoreFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CoreFactory init() {
+ try {
+ CoreFactory theCoreFactory = (CoreFactory)EPackage.Registry.INSTANCE.getEFactory(CorePackage.eNS_URI);
+ if (theCoreFactory != null) {
+ return theCoreFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new CoreFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CoreFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case CorePackage.ALLOCATE_RESOURCE: return createAllocateResource();
+ case CorePackage.HAS_SERVICE: return createHasService();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AllocateResource createAllocateResource() {
+ AllocateResourceImpl allocateResource = new AllocateResourceImpl();
+ return allocateResource;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HasService createHasService() {
+ HasServiceImpl hasService = new HasServiceImpl();
+ return hasService;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CorePackage getCorePackage() {
+ return (CorePackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ public static CorePackage getPackage() {
+ return CorePackage.eINSTANCE;
+ }
+
+} //CoreFactoryImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/impl/CorePackageImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/impl/CorePackageImpl.java
new file mode 100644
index 0000000..52e81e0
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/impl/CorePackageImpl.java
@@ -0,0 +1,318 @@
+/**
+ */
+package IoTML.Hardware.Core.impl;
+
+import IoTML.Animate.AnimatePackage;
+
+import IoTML.Animate.impl.AnimatePackageImpl;
+
+import IoTML.Hardware.Actuator.ActuatorPackage;
+
+import IoTML.Hardware.Actuator.impl.ActuatorPackageImpl;
+
+import IoTML.Hardware.Core.AllocateResource;
+import IoTML.Hardware.Core.CoreFactory;
+import IoTML.Hardware.Core.CorePackage;
+import IoTML.Hardware.Core.HasService;
+
+import IoTML.Hardware.Core.util.CoreValidator;
+
+import IoTML.Hardware.Network.NetworkPackage;
+
+import IoTML.Hardware.Network.impl.NetworkPackageImpl;
+
+import IoTML.Hardware.Sensor.SensorPackage;
+
+import IoTML.Hardware.Sensor.impl.SensorPackageImpl;
+
+import IoTML.Hybrid.HybridPackage;
+
+import IoTML.Hybrid.impl.HybridPackageImpl;
+
+import IoTML.Software.Artefact.ArtefactPackage;
+
+import IoTML.Software.Artefact.impl.ArtefactPackageImpl;
+
+import IoTML.Software.Core.Structure.StructurePackage;
+
+import IoTML.Software.Core.Structure.impl.StructurePackageImpl;
+
+import IoTML.Software.Resource.ResourcePackage;
+
+import IoTML.Software.Resource.impl.ResourcePackageImpl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EValidator;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTEPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.Alloc.AllocPackage;
+
+import org.eclipse.papyrus.MARTE_Library.BasicNFP_Types.BasicNFP_TypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.GRM_BasicTypes.GRM_BasicTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_DataTypes.MARTE_DataTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_PrimitivesTypes.MARTE_PrimitivesTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MeasurementUnits.MeasurementUnitsPackage;
+
+import org.eclipse.papyrus.MARTE_Library.RS_Library.RS_LibraryPackage;
+
+import org.eclipse.papyrus.MARTE_Library.TimeLibrary.TimeLibraryPackage;
+
+import org.eclipse.papyrus.MARTE_Library.TimeTypesLibrary.TimeTypesLibraryPackage;
+
+import org.eclipse.papyrus.sysml14.sysmlPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CorePackageImpl extends EPackageImpl implements CorePackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass allocateResourceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hasServiceEClass = 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 IoTML.Hardware.Core.CorePackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private CorePackageImpl() {
+ super(eNS_URI, CoreFactory.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 CorePackage#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 CorePackage init() {
+ if (isInited) return (CorePackage)EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI);
+
+ // Obtain or create and register package
+ CorePackageImpl theCorePackage = (CorePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof CorePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new CorePackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ MARTEPackage.eINSTANCE.eClass();
+ MeasurementUnitsPackage.eINSTANCE.eClass();
+ GRM_BasicTypesPackage.eINSTANCE.eClass();
+ MARTE_DataTypesPackage.eINSTANCE.eClass();
+ BasicNFP_TypesPackage.eINSTANCE.eClass();
+ TimeTypesLibraryPackage.eINSTANCE.eClass();
+ TimeLibraryPackage.eINSTANCE.eClass();
+ RS_LibraryPackage.eINSTANCE.eClass();
+ MARTE_PrimitivesTypesPackage.eINSTANCE.eClass();
+ sysmlPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ AnimatePackageImpl theAnimatePackage = (AnimatePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(AnimatePackage.eNS_URI) instanceof AnimatePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(AnimatePackage.eNS_URI) : AnimatePackage.eINSTANCE);
+ ActuatorPackageImpl theActuatorPackage = (ActuatorPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ActuatorPackage.eNS_URI) instanceof ActuatorPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ActuatorPackage.eNS_URI) : ActuatorPackage.eINSTANCE);
+ SensorPackageImpl theSensorPackage = (SensorPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SensorPackage.eNS_URI) instanceof SensorPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SensorPackage.eNS_URI) : SensorPackage.eINSTANCE);
+ NetworkPackageImpl theNetworkPackage = (NetworkPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(NetworkPackage.eNS_URI) instanceof NetworkPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(NetworkPackage.eNS_URI) : NetworkPackage.eINSTANCE);
+ HybridPackageImpl theHybridPackage = (HybridPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(HybridPackage.eNS_URI) instanceof HybridPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(HybridPackage.eNS_URI) : HybridPackage.eINSTANCE);
+ ArtefactPackageImpl theArtefactPackage = (ArtefactPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ArtefactPackage.eNS_URI) instanceof ArtefactPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ArtefactPackage.eNS_URI) : ArtefactPackage.eINSTANCE);
+ StructurePackageImpl theStructurePackage = (StructurePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(StructurePackage.eNS_URI) instanceof StructurePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(StructurePackage.eNS_URI) : StructurePackage.eINSTANCE);
+ ResourcePackageImpl theResourcePackage = (ResourcePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ResourcePackage.eNS_URI) instanceof ResourcePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ResourcePackage.eNS_URI) : ResourcePackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theCorePackage.createPackageContents();
+ theAnimatePackage.createPackageContents();
+ theActuatorPackage.createPackageContents();
+ theSensorPackage.createPackageContents();
+ theNetworkPackage.createPackageContents();
+ theHybridPackage.createPackageContents();
+ theArtefactPackage.createPackageContents();
+ theStructurePackage.createPackageContents();
+ theResourcePackage.createPackageContents();
+
+ // Initialize created meta-data
+ theCorePackage.initializePackageContents();
+ theAnimatePackage.initializePackageContents();
+ theActuatorPackage.initializePackageContents();
+ theSensorPackage.initializePackageContents();
+ theNetworkPackage.initializePackageContents();
+ theHybridPackage.initializePackageContents();
+ theArtefactPackage.initializePackageContents();
+ theStructurePackage.initializePackageContents();
+ theResourcePackage.initializePackageContents();
+
+ // Register package validator
+ EValidator.Registry.INSTANCE.put
+ (theCorePackage,
+ new EValidator.Descriptor() {
+ public EValidator getEValidator() {
+ return CoreValidator.INSTANCE;
+ }
+ });
+
+ // Mark meta-data to indicate it can't be changed
+ theCorePackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(CorePackage.eNS_URI, theCorePackage);
+ return theCorePackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAllocateResource() {
+ return allocateResourceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHasService() {
+ return hasServiceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHasService_Base_Association() {
+ return (EReference)hasServiceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CoreFactory getCoreFactory() {
+ return (CoreFactory)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
+ allocateResourceEClass = createEClass(ALLOCATE_RESOURCE);
+
+ hasServiceEClass = createEClass(HAS_SERVICE);
+ createEReference(hasServiceEClass, HAS_SERVICE__BASE_ASSOCIATION);
+ }
+
+ /**
+ * <!-- 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);
+
+ // Obtain other dependent packages
+ AllocPackage theAllocPackage = (AllocPackage)EPackage.Registry.INSTANCE.getEPackage(AllocPackage.eNS_URI);
+ UMLPackage theUMLPackage = (UMLPackage)EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
+
+ // Add supertypes to classes
+ allocateResourceEClass.getESuperTypes().add(theAllocPackage.getAllocate());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(allocateResourceEClass, AllocateResource.class, "AllocateResource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ EOperation op = addEOperation(allocateResourceEClass, ecorePackage.getEBoolean(), "AllocateResource_C1", 0, 1);
+ addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1);
+ addEParameter(op, ecorePackage.getEMap(), "context", 0, 1);
+
+ initEClass(hasServiceEClass, HasService.class, "HasService", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getHasService_Base_Association(), theUMLPackage.getAssociation(), null, "base_Association", null, 1, 1, HasService.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ op = addEOperation(hasServiceEClass, ecorePackage.getEBoolean(), "HasDevice_C1", 0, 1);
+ addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1);
+ addEParameter(op, ecorePackage.getEMap(), "context", 0, 1);
+
+ op = addEOperation(hasServiceEClass, ecorePackage.getEBoolean(), "HasDevice_C2", 0, 1);
+ addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1);
+ addEParameter(op, ecorePackage.getEMap(), "context", 0, 1);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //CorePackageImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/impl/HasServiceImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/impl/HasServiceImpl.java
new file mode 100644
index 0000000..bee7986
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/impl/HasServiceImpl.java
@@ -0,0 +1,215 @@
+/**
+ */
+package IoTML.Hardware.Core.impl;
+
+import IoTML.Hardware.Core.CorePackage;
+import IoTML.Hardware.Core.HasService;
+
+import IoTML.Hardware.Core.util.CoreValidator;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+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.plugin.EcorePlugin;
+
+import org.eclipse.emf.ecore.util.EObjectValidator;
+
+import org.eclipse.uml2.uml.Association;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Has Service</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Hardware.Core.impl.HasServiceImpl#getBase_Association <em>Base Association</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class HasServiceImpl extends MinimalEObjectImpl.Container implements HasService {
+ /**
+ * The cached value of the '{@link #getBase_Association() <em>Base Association</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Association()
+ * @generated
+ * @ordered
+ */
+ protected Association base_Association;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected HasServiceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return CorePackage.Literals.HAS_SERVICE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Association getBase_Association() {
+ if (base_Association != null && base_Association.eIsProxy()) {
+ InternalEObject oldBase_Association = (InternalEObject)base_Association;
+ base_Association = (Association)eResolveProxy(oldBase_Association);
+ if (base_Association != oldBase_Association) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, CorePackage.HAS_SERVICE__BASE_ASSOCIATION, oldBase_Association, base_Association));
+ }
+ }
+ return base_Association;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Association basicGetBase_Association() {
+ return base_Association;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Association(Association newBase_Association) {
+ Association oldBase_Association = base_Association;
+ base_Association = newBase_Association;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.HAS_SERVICE__BASE_ASSOCIATION, oldBase_Association, base_Association));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean HasDevice_C1(DiagnosticChain diagnostics, Map context) {
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics.add
+ (new BasicDiagnostic
+ (Diagnostic.ERROR,
+ CoreValidator.DIAGNOSTIC_SOURCE,
+ CoreValidator.HAS_SERVICE__HAS_DEVICE_C1,
+ EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "HasDevice_C1", EObjectValidator.getObjectLabel(this, context) }),
+ new Object [] { this }));
+ }
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean HasDevice_C2(DiagnosticChain diagnostics, Map context) {
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics.add
+ (new BasicDiagnostic
+ (Diagnostic.ERROR,
+ CoreValidator.DIAGNOSTIC_SOURCE,
+ CoreValidator.HAS_SERVICE__HAS_DEVICE_C2,
+ EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "HasDevice_C2", EObjectValidator.getObjectLabel(this, context) }),
+ new Object [] { this }));
+ }
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CorePackage.HAS_SERVICE__BASE_ASSOCIATION:
+ if (resolve) return getBase_Association();
+ return basicGetBase_Association();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CorePackage.HAS_SERVICE__BASE_ASSOCIATION:
+ setBase_Association((Association)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CorePackage.HAS_SERVICE__BASE_ASSOCIATION:
+ setBase_Association((Association)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CorePackage.HAS_SERVICE__BASE_ASSOCIATION:
+ return base_Association != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //HasServiceImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/util/CoreAdapterFactory.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/util/CoreAdapterFactory.java
new file mode 100644
index 0000000..70853a2
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/util/CoreAdapterFactory.java
@@ -0,0 +1,152 @@
+/**
+ */
+package IoTML.Hardware.Core.util;
+
+import IoTML.Hardware.Core.*;
+
+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;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.Alloc.Allocate;
+
+/**
+ * <!-- 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 IoTML.Hardware.Core.CorePackage
+ * @generated
+ */
+public class CoreAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static CorePackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CoreAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = CorePackage.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
+ */
+ 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 CoreSwitch modelSwitch =
+ new CoreSwitch() {
+ public Object caseAllocateResource(AllocateResource object) {
+ return createAllocateResourceAdapter();
+ }
+ public Object caseHasService(HasService object) {
+ return createHasServiceAdapter();
+ }
+ public Object caseAllocate(Allocate object) {
+ return createAllocateAdapter();
+ }
+ public Object 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
+ */
+ public Adapter createAdapter(Notifier target) {
+ return (Adapter)modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Hardware.Core.AllocateResource <em>Allocate Resource</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 IoTML.Hardware.Core.AllocateResource
+ * @generated
+ */
+ public Adapter createAllocateResourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Hardware.Core.HasService <em>Has Service</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 IoTML.Hardware.Core.HasService
+ * @generated
+ */
+ public Adapter createHasServiceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_Foundations.Alloc.Allocate <em>Allocate</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 org.eclipse.papyrus.MARTE.MARTE_Foundations.Alloc.Allocate
+ * @generated
+ */
+ public Adapter createAllocateAdapter() {
+ 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;
+ }
+
+} //CoreAdapterFactory
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/util/CoreSwitch.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/util/CoreSwitch.java
new file mode 100644
index 0000000..b2e7003
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/util/CoreSwitch.java
@@ -0,0 +1,165 @@
+/**
+ */
+package IoTML.Hardware.Core.util;
+
+import IoTML.Hardware.Core.*;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.Alloc.Allocate;
+
+/**
+ * <!-- 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 IoTML.Hardware.Core.CorePackage
+ * @generated
+ */
+public class CoreSwitch {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static CorePackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CoreSwitch() {
+ if (modelPackage == null) {
+ modelPackage = CorePackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * 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
+ */
+ public Object doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch((EClass)eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case CorePackage.ALLOCATE_RESOURCE: {
+ AllocateResource allocateResource = (AllocateResource)theEObject;
+ Object result = caseAllocateResource(allocateResource);
+ if (result == null) result = caseAllocate(allocateResource);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CorePackage.HAS_SERVICE: {
+ HasService hasService = (HasService)theEObject;
+ Object result = caseHasService(hasService);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Allocate Resource</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>Allocate Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseAllocateResource(AllocateResource object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Has Service</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>Has Service</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseHasService(HasService object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Allocate</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>Allocate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseAllocate(Allocate 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
+ */
+ public Object defaultCase(EObject object) {
+ return null;
+ }
+
+} //CoreSwitch
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/util/CoreValidator.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/util/CoreValidator.java
new file mode 100644
index 0000000..066454e
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Core/util/CoreValidator.java
@@ -0,0 +1,179 @@
+/**
+ */
+package IoTML.Hardware.Core.util;
+
+import IoTML.Hardware.Core.*;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.EObjectValidator;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Validator</b> for the model.
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Core.CorePackage
+ * @generated
+ */
+public class CoreValidator extends EObjectValidator {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final CoreValidator INSTANCE = new CoreValidator();
+
+ /**
+ * A constant for the {@link org.eclipse.emf.common.util.Diagnostic#getSource() source} of diagnostic {@link org.eclipse.emf.common.util.Diagnostic#getCode() codes} from this package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.common.util.Diagnostic#getSource()
+ * @see org.eclipse.emf.common.util.Diagnostic#getCode()
+ * @generated
+ */
+ public static final String DIAGNOSTIC_SOURCE = "IoTML.Hardware.Core";
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Allocate Resource C1' of 'Allocate Resource'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int ALLOCATE_RESOURCE__ALLOCATE_RESOURCE_C1 = 1;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Has Device C1' of 'Has Service'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int HAS_SERVICE__HAS_DEVICE_C1 = 2;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Has Device C2' of 'Has Service'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int HAS_SERVICE__HAS_DEVICE_C2 = 3;
+
+ /**
+ * A constant with a fixed name that can be used as the base value for additional hand written constants.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 3;
+
+ /**
+ * A constant with a fixed name that can be used as the base value for additional hand written constants in a derived class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static final int DIAGNOSTIC_CODE_COUNT = GENERATED_DIAGNOSTIC_CODE_COUNT;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CoreValidator() {
+ super();
+ }
+
+ /**
+ * Returns the package of this validator switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EPackage getEPackage() {
+ return CorePackage.eINSTANCE;
+ }
+
+ /**
+ * Calls <code>validateXXX</code> for the corresponding classifier of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean validate(int classifierID, Object value, DiagnosticChain diagnostics, Map context) {
+ switch (classifierID) {
+ case CorePackage.ALLOCATE_RESOURCE:
+ return validateAllocateResource((AllocateResource)value, diagnostics, context);
+ case CorePackage.HAS_SERVICE:
+ return validateHasService((HasService)value, diagnostics, context);
+ default:
+ return true;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateAllocateResource(AllocateResource allocateResource, DiagnosticChain diagnostics, Map context) {
+ boolean result = validate_EveryMultiplicityConforms(allocateResource, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(allocateResource, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(allocateResource, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(allocateResource, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(allocateResource, diagnostics, context);
+ if (result || diagnostics != null) result &= validateAllocateResource_AllocateResource_C1(allocateResource, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the AllocateResource_C1 constraint of '<em>Allocate Resource</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateAllocateResource_AllocateResource_C1(AllocateResource allocateResource, DiagnosticChain diagnostics, Map context) {
+ return allocateResource.AllocateResource_C1(diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateHasService(HasService hasService, DiagnosticChain diagnostics, Map context) {
+ boolean result = validate_EveryMultiplicityConforms(hasService, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(hasService, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(hasService, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(hasService, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(hasService, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHasService_HasDevice_C1(hasService, diagnostics, context);
+ if (result || diagnostics != null) result &= validateHasService_HasDevice_C2(hasService, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the HasDevice_C1 constraint of '<em>Has Service</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateHasService_HasDevice_C1(HasService hasService, DiagnosticChain diagnostics, Map context) {
+ return hasService.HasDevice_C1(diagnostics, context);
+ }
+
+ /**
+ * Validates the HasDevice_C2 constraint of '<em>Has Service</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateHasService_HasDevice_C2(HasService hasService, DiagnosticChain diagnostics, Map context) {
+ return hasService.HasDevice_C2(diagnostics, context);
+ }
+
+} //CoreValidator
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/ConnectedDevice.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/ConnectedDevice.java
new file mode 100644
index 0000000..ab119e7
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/ConnectedDevice.java
@@ -0,0 +1,18 @@
+/**
+ */
+package IoTML.Hardware.Network;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwCommunication.HwCommunicationResource;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Connected Device</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see IoTML.Hardware.Network.NetworkPackage#getConnectedDevice()
+ * @model
+ * @generated
+ */
+public interface ConnectedDevice extends HwCommunicationResource {
+} // ConnectedDevice
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/Gateway.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/Gateway.java
new file mode 100644
index 0000000..4ce6069
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/Gateway.java
@@ -0,0 +1,18 @@
+/**
+ */
+package IoTML.Hardware.Network;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwComputing.HwComputingResource;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Gateway</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see IoTML.Hardware.Network.NetworkPackage#getGateway()
+ * @model
+ * @generated
+ */
+public interface Gateway extends HwComputingResource, ConnectedDevice {
+} // Gateway
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/NetworkFactory.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/NetworkFactory.java
new file mode 100644
index 0000000..6611f9f
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/NetworkFactory.java
@@ -0,0 +1,60 @@
+/**
+ */
+package IoTML.Hardware.Network;
+
+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 IoTML.Hardware.Network.NetworkPackage
+ * @generated
+ */
+public interface NetworkFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ NetworkFactory eINSTANCE = IoTML.Hardware.Network.impl.NetworkFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Connected Device</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Connected Device</em>'.
+ * @generated
+ */
+ ConnectedDevice createConnectedDevice();
+
+ /**
+ * Returns a new object of class '<em>Gateway</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Gateway</em>'.
+ * @generated
+ */
+ Gateway createGateway();
+
+ /**
+ * Returns a new object of class '<em>Server</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Server</em>'.
+ * @generated
+ */
+ Server createServer();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ NetworkPackage getNetworkPackage();
+
+} //NetworkFactory
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/NetworkPackage.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/NetworkPackage.java
new file mode 100644
index 0000000..de5e88d
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/NetworkPackage.java
@@ -0,0 +1,634 @@
+/**
+ */
+package IoTML.Hardware.Network;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwCommunication.HwCommunicationPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwComputing.HwComputingPackage;
+
+/**
+ * <!-- 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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Network.NetworkFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface NetworkPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Network";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http:///IoTML/Hardware/Network.ecore";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "IoTML.Hardware.Network";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ NetworkPackage eINSTANCE = IoTML.Hardware.Network.impl.NetworkPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link IoTML.Hardware.Network.impl.ConnectedDeviceImpl <em>Connected Device</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Network.impl.ConnectedDeviceImpl
+ * @see IoTML.Hardware.Network.impl.NetworkPackageImpl#getConnectedDevice()
+ * @generated
+ */
+ int CONNECTED_DEVICE = 0;
+
+ /**
+ * The feature id for the '<em><b>Res Mult</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTED_DEVICE__RES_MULT = HwCommunicationPackage.HW_COMMUNICATION_RESOURCE__RES_MULT;
+
+ /**
+ * The feature id for the '<em><b>Is Protected</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTED_DEVICE__IS_PROTECTED = HwCommunicationPackage.HW_COMMUNICATION_RESOURCE__IS_PROTECTED;
+
+ /**
+ * The feature id for the '<em><b>Is Active</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTED_DEVICE__IS_ACTIVE = HwCommunicationPackage.HW_COMMUNICATION_RESOURCE__IS_ACTIVE;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTED_DEVICE__BASE_PROPERTY = HwCommunicationPackage.HW_COMMUNICATION_RESOURCE__BASE_PROPERTY;
+
+ /**
+ * The feature id for the '<em><b>Base Instance Specification</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTED_DEVICE__BASE_INSTANCE_SPECIFICATION = HwCommunicationPackage.HW_COMMUNICATION_RESOURCE__BASE_INSTANCE_SPECIFICATION;
+
+ /**
+ * The feature id for the '<em><b>Base Classifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTED_DEVICE__BASE_CLASSIFIER = HwCommunicationPackage.HW_COMMUNICATION_RESOURCE__BASE_CLASSIFIER;
+
+ /**
+ * The feature id for the '<em><b>Base Lifeline</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTED_DEVICE__BASE_LIFELINE = HwCommunicationPackage.HW_COMMUNICATION_RESOURCE__BASE_LIFELINE;
+
+ /**
+ * The feature id for the '<em><b>Base Connectable Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTED_DEVICE__BASE_CONNECTABLE_ELEMENT = HwCommunicationPackage.HW_COMMUNICATION_RESOURCE__BASE_CONNECTABLE_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTED_DEVICE__DESCRIPTION = HwCommunicationPackage.HW_COMMUNICATION_RESOURCE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>PHW Services</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTED_DEVICE__PHW_SERVICES = HwCommunicationPackage.HW_COMMUNICATION_RESOURCE__PHW_SERVICES;
+
+ /**
+ * The feature id for the '<em><b>RHW Services</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTED_DEVICE__RHW_SERVICES = HwCommunicationPackage.HW_COMMUNICATION_RESOURCE__RHW_SERVICES;
+
+ /**
+ * The feature id for the '<em><b>Owned HW</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTED_DEVICE__OWNED_HW = HwCommunicationPackage.HW_COMMUNICATION_RESOURCE__OWNED_HW;
+
+ /**
+ * The feature id for the '<em><b>End Points</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTED_DEVICE__END_POINTS = HwCommunicationPackage.HW_COMMUNICATION_RESOURCE__END_POINTS;
+
+ /**
+ * The feature id for the '<em><b>Frequency</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTED_DEVICE__FREQUENCY = HwCommunicationPackage.HW_COMMUNICATION_RESOURCE__FREQUENCY;
+
+ /**
+ * The number of structural features of the '<em>Connected Device</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONNECTED_DEVICE_FEATURE_COUNT = HwCommunicationPackage.HW_COMMUNICATION_RESOURCE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link IoTML.Hardware.Network.impl.GatewayImpl <em>Gateway</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Network.impl.GatewayImpl
+ * @see IoTML.Hardware.Network.impl.NetworkPackageImpl#getGateway()
+ * @generated
+ */
+ int GATEWAY = 1;
+
+ /**
+ * The feature id for the '<em><b>Res Mult</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GATEWAY__RES_MULT = HwComputingPackage.HW_COMPUTING_RESOURCE__RES_MULT;
+
+ /**
+ * The feature id for the '<em><b>Is Protected</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GATEWAY__IS_PROTECTED = HwComputingPackage.HW_COMPUTING_RESOURCE__IS_PROTECTED;
+
+ /**
+ * The feature id for the '<em><b>Is Active</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GATEWAY__IS_ACTIVE = HwComputingPackage.HW_COMPUTING_RESOURCE__IS_ACTIVE;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GATEWAY__BASE_PROPERTY = HwComputingPackage.HW_COMPUTING_RESOURCE__BASE_PROPERTY;
+
+ /**
+ * The feature id for the '<em><b>Base Instance Specification</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GATEWAY__BASE_INSTANCE_SPECIFICATION = HwComputingPackage.HW_COMPUTING_RESOURCE__BASE_INSTANCE_SPECIFICATION;
+
+ /**
+ * The feature id for the '<em><b>Base Classifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GATEWAY__BASE_CLASSIFIER = HwComputingPackage.HW_COMPUTING_RESOURCE__BASE_CLASSIFIER;
+
+ /**
+ * The feature id for the '<em><b>Base Lifeline</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GATEWAY__BASE_LIFELINE = HwComputingPackage.HW_COMPUTING_RESOURCE__BASE_LIFELINE;
+
+ /**
+ * The feature id for the '<em><b>Base Connectable Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GATEWAY__BASE_CONNECTABLE_ELEMENT = HwComputingPackage.HW_COMPUTING_RESOURCE__BASE_CONNECTABLE_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GATEWAY__DESCRIPTION = HwComputingPackage.HW_COMPUTING_RESOURCE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>PHW Services</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GATEWAY__PHW_SERVICES = HwComputingPackage.HW_COMPUTING_RESOURCE__PHW_SERVICES;
+
+ /**
+ * The feature id for the '<em><b>RHW Services</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GATEWAY__RHW_SERVICES = HwComputingPackage.HW_COMPUTING_RESOURCE__RHW_SERVICES;
+
+ /**
+ * The feature id for the '<em><b>Owned HW</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GATEWAY__OWNED_HW = HwComputingPackage.HW_COMPUTING_RESOURCE__OWNED_HW;
+
+ /**
+ * The feature id for the '<em><b>End Points</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GATEWAY__END_POINTS = HwComputingPackage.HW_COMPUTING_RESOURCE__END_POINTS;
+
+ /**
+ * The feature id for the '<em><b>Frequency</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GATEWAY__FREQUENCY = HwComputingPackage.HW_COMPUTING_RESOURCE__FREQUENCY;
+
+ /**
+ * The feature id for the '<em><b>Speed Factor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GATEWAY__SPEED_FACTOR = HwComputingPackage.HW_COMPUTING_RESOURCE__SPEED_FACTOR;
+
+ /**
+ * The feature id for the '<em><b>Main Scheduler</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GATEWAY__MAIN_SCHEDULER = HwComputingPackage.HW_COMPUTING_RESOURCE__MAIN_SCHEDULER;
+
+ /**
+ * The feature id for the '<em><b>Op Frequencies</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GATEWAY__OP_FREQUENCIES = HwComputingPackage.HW_COMPUTING_RESOURCE__OP_FREQUENCIES;
+
+ /**
+ * The number of structural features of the '<em>Gateway</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GATEWAY_FEATURE_COUNT = HwComputingPackage.HW_COMPUTING_RESOURCE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link IoTML.Hardware.Network.impl.ServerImpl <em>Server</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Network.impl.ServerImpl
+ * @see IoTML.Hardware.Network.impl.NetworkPackageImpl#getServer()
+ * @generated
+ */
+ int SERVER = 2;
+
+ /**
+ * The feature id for the '<em><b>Res Mult</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER__RES_MULT = HwComputingPackage.HW_COMPUTING_RESOURCE__RES_MULT;
+
+ /**
+ * The feature id for the '<em><b>Is Protected</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER__IS_PROTECTED = HwComputingPackage.HW_COMPUTING_RESOURCE__IS_PROTECTED;
+
+ /**
+ * The feature id for the '<em><b>Is Active</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER__IS_ACTIVE = HwComputingPackage.HW_COMPUTING_RESOURCE__IS_ACTIVE;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER__BASE_PROPERTY = HwComputingPackage.HW_COMPUTING_RESOURCE__BASE_PROPERTY;
+
+ /**
+ * The feature id for the '<em><b>Base Instance Specification</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER__BASE_INSTANCE_SPECIFICATION = HwComputingPackage.HW_COMPUTING_RESOURCE__BASE_INSTANCE_SPECIFICATION;
+
+ /**
+ * The feature id for the '<em><b>Base Classifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER__BASE_CLASSIFIER = HwComputingPackage.HW_COMPUTING_RESOURCE__BASE_CLASSIFIER;
+
+ /**
+ * The feature id for the '<em><b>Base Lifeline</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER__BASE_LIFELINE = HwComputingPackage.HW_COMPUTING_RESOURCE__BASE_LIFELINE;
+
+ /**
+ * The feature id for the '<em><b>Base Connectable Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER__BASE_CONNECTABLE_ELEMENT = HwComputingPackage.HW_COMPUTING_RESOURCE__BASE_CONNECTABLE_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER__DESCRIPTION = HwComputingPackage.HW_COMPUTING_RESOURCE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>PHW Services</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER__PHW_SERVICES = HwComputingPackage.HW_COMPUTING_RESOURCE__PHW_SERVICES;
+
+ /**
+ * The feature id for the '<em><b>RHW Services</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER__RHW_SERVICES = HwComputingPackage.HW_COMPUTING_RESOURCE__RHW_SERVICES;
+
+ /**
+ * The feature id for the '<em><b>Owned HW</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER__OWNED_HW = HwComputingPackage.HW_COMPUTING_RESOURCE__OWNED_HW;
+
+ /**
+ * The feature id for the '<em><b>End Points</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER__END_POINTS = HwComputingPackage.HW_COMPUTING_RESOURCE__END_POINTS;
+
+ /**
+ * The feature id for the '<em><b>Frequency</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER__FREQUENCY = HwComputingPackage.HW_COMPUTING_RESOURCE__FREQUENCY;
+
+ /**
+ * The feature id for the '<em><b>Speed Factor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER__SPEED_FACTOR = HwComputingPackage.HW_COMPUTING_RESOURCE__SPEED_FACTOR;
+
+ /**
+ * The feature id for the '<em><b>Main Scheduler</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER__MAIN_SCHEDULER = HwComputingPackage.HW_COMPUTING_RESOURCE__MAIN_SCHEDULER;
+
+ /**
+ * The feature id for the '<em><b>Op Frequencies</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER__OP_FREQUENCIES = HwComputingPackage.HW_COMPUTING_RESOURCE__OP_FREQUENCIES;
+
+ /**
+ * The number of structural features of the '<em>Server</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER_FEATURE_COUNT = HwComputingPackage.HW_COMPUTING_RESOURCE_FEATURE_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Hardware.Network.ConnectedDevice <em>Connected Device</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Connected Device</em>'.
+ * @see IoTML.Hardware.Network.ConnectedDevice
+ * @generated
+ */
+ EClass getConnectedDevice();
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Hardware.Network.Gateway <em>Gateway</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Gateway</em>'.
+ * @see IoTML.Hardware.Network.Gateway
+ * @generated
+ */
+ EClass getGateway();
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Hardware.Network.Server <em>Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Server</em>'.
+ * @see IoTML.Hardware.Network.Server
+ * @generated
+ */
+ EClass getServer();
+
+ /**
+ * 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
+ */
+ NetworkFactory getNetworkFactory();
+
+ /**
+ * <!-- 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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link IoTML.Hardware.Network.impl.ConnectedDeviceImpl <em>Connected Device</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Network.impl.ConnectedDeviceImpl
+ * @see IoTML.Hardware.Network.impl.NetworkPackageImpl#getConnectedDevice()
+ * @generated
+ */
+ EClass CONNECTED_DEVICE = eINSTANCE.getConnectedDevice();
+
+ /**
+ * The meta object literal for the '{@link IoTML.Hardware.Network.impl.GatewayImpl <em>Gateway</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Network.impl.GatewayImpl
+ * @see IoTML.Hardware.Network.impl.NetworkPackageImpl#getGateway()
+ * @generated
+ */
+ EClass GATEWAY = eINSTANCE.getGateway();
+
+ /**
+ * The meta object literal for the '{@link IoTML.Hardware.Network.impl.ServerImpl <em>Server</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Network.impl.ServerImpl
+ * @see IoTML.Hardware.Network.impl.NetworkPackageImpl#getServer()
+ * @generated
+ */
+ EClass SERVER = eINSTANCE.getServer();
+
+ }
+
+} //NetworkPackage
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/Server.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/Server.java
new file mode 100644
index 0000000..70039e9
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/Server.java
@@ -0,0 +1,18 @@
+/**
+ */
+package IoTML.Hardware.Network;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwComputing.HwComputingResource;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Server</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see IoTML.Hardware.Network.NetworkPackage#getServer()
+ * @model
+ * @generated
+ */
+public interface Server extends HwComputingResource, ConnectedDevice {
+} // Server
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/impl/ConnectedDeviceImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/impl/ConnectedDeviceImpl.java
new file mode 100644
index 0000000..405f33f
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/impl/ConnectedDeviceImpl.java
@@ -0,0 +1,38 @@
+/**
+ */
+package IoTML.Hardware.Network.impl;
+
+import IoTML.Hardware.Network.ConnectedDevice;
+import IoTML.Hardware.Network.NetworkPackage;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwCommunication.impl.HwCommunicationResourceImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Connected Device</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ConnectedDeviceImpl extends HwCommunicationResourceImpl implements ConnectedDevice {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConnectedDeviceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return NetworkPackage.Literals.CONNECTED_DEVICE;
+ }
+
+} //ConnectedDeviceImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/impl/GatewayImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/impl/GatewayImpl.java
new file mode 100644
index 0000000..d46d325
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/impl/GatewayImpl.java
@@ -0,0 +1,38 @@
+/**
+ */
+package IoTML.Hardware.Network.impl;
+
+import IoTML.Hardware.Network.Gateway;
+import IoTML.Hardware.Network.NetworkPackage;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwComputing.impl.HwComputingResourceImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Gateway</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class GatewayImpl extends HwComputingResourceImpl implements Gateway {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GatewayImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return NetworkPackage.Literals.GATEWAY;
+ }
+
+} //GatewayImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/impl/NetworkFactoryImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/impl/NetworkFactoryImpl.java
new file mode 100644
index 0000000..c385356
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/impl/NetworkFactoryImpl.java
@@ -0,0 +1,115 @@
+/**
+ */
+package IoTML.Hardware.Network.impl;
+
+import IoTML.Hardware.Network.*;
+
+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 NetworkFactoryImpl extends EFactoryImpl implements NetworkFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static NetworkFactory init() {
+ try {
+ NetworkFactory theNetworkFactory = (NetworkFactory)EPackage.Registry.INSTANCE.getEFactory(NetworkPackage.eNS_URI);
+ if (theNetworkFactory != null) {
+ return theNetworkFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new NetworkFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NetworkFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case NetworkPackage.CONNECTED_DEVICE: return createConnectedDevice();
+ case NetworkPackage.GATEWAY: return createGateway();
+ case NetworkPackage.SERVER: return createServer();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConnectedDevice createConnectedDevice() {
+ ConnectedDeviceImpl connectedDevice = new ConnectedDeviceImpl();
+ return connectedDevice;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Gateway createGateway() {
+ GatewayImpl gateway = new GatewayImpl();
+ return gateway;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Server createServer() {
+ ServerImpl server = new ServerImpl();
+ return server;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NetworkPackage getNetworkPackage() {
+ return (NetworkPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ public static NetworkPackage getPackage() {
+ return NetworkPackage.eINSTANCE;
+ }
+
+} //NetworkFactoryImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/impl/NetworkPackageImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/impl/NetworkPackageImpl.java
new file mode 100644
index 0000000..07d25b2
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/impl/NetworkPackageImpl.java
@@ -0,0 +1,306 @@
+/**
+ */
+package IoTML.Hardware.Network.impl;
+
+import IoTML.Animate.AnimatePackage;
+
+import IoTML.Animate.impl.AnimatePackageImpl;
+
+import IoTML.Hardware.Actuator.ActuatorPackage;
+
+import IoTML.Hardware.Actuator.impl.ActuatorPackageImpl;
+
+import IoTML.Hardware.Core.CorePackage;
+
+import IoTML.Hardware.Core.impl.CorePackageImpl;
+
+import IoTML.Hardware.Network.ConnectedDevice;
+import IoTML.Hardware.Network.Gateway;
+import IoTML.Hardware.Network.NetworkFactory;
+import IoTML.Hardware.Network.NetworkPackage;
+import IoTML.Hardware.Network.Server;
+
+import IoTML.Hardware.Sensor.SensorPackage;
+
+import IoTML.Hardware.Sensor.impl.SensorPackageImpl;
+
+import IoTML.Hybrid.HybridPackage;
+
+import IoTML.Hybrid.impl.HybridPackageImpl;
+
+import IoTML.Software.Artefact.ArtefactPackage;
+
+import IoTML.Software.Artefact.impl.ArtefactPackageImpl;
+
+import IoTML.Software.Core.Structure.StructurePackage;
+
+import IoTML.Software.Core.Structure.impl.StructurePackageImpl;
+
+import IoTML.Software.Resource.ResourcePackage;
+
+import IoTML.Software.Resource.impl.ResourcePackageImpl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTEPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwCommunication.HwCommunicationPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwComputing.HwComputingPackage;
+
+import org.eclipse.papyrus.MARTE_Library.BasicNFP_Types.BasicNFP_TypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.GRM_BasicTypes.GRM_BasicTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_DataTypes.MARTE_DataTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_PrimitivesTypes.MARTE_PrimitivesTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MeasurementUnits.MeasurementUnitsPackage;
+
+import org.eclipse.papyrus.MARTE_Library.RS_Library.RS_LibraryPackage;
+
+import org.eclipse.papyrus.MARTE_Library.TimeLibrary.TimeLibraryPackage;
+
+import org.eclipse.papyrus.MARTE_Library.TimeTypesLibrary.TimeTypesLibraryPackage;
+
+import org.eclipse.papyrus.sysml14.sysmlPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class NetworkPackageImpl extends EPackageImpl implements NetworkPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass connectedDeviceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass gatewayEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass serverEClass = 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 IoTML.Hardware.Network.NetworkPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private NetworkPackageImpl() {
+ super(eNS_URI, NetworkFactory.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 NetworkPackage#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 NetworkPackage init() {
+ if (isInited) return (NetworkPackage)EPackage.Registry.INSTANCE.getEPackage(NetworkPackage.eNS_URI);
+
+ // Obtain or create and register package
+ NetworkPackageImpl theNetworkPackage = (NetworkPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof NetworkPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new NetworkPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ MARTEPackage.eINSTANCE.eClass();
+ MeasurementUnitsPackage.eINSTANCE.eClass();
+ GRM_BasicTypesPackage.eINSTANCE.eClass();
+ MARTE_DataTypesPackage.eINSTANCE.eClass();
+ BasicNFP_TypesPackage.eINSTANCE.eClass();
+ TimeTypesLibraryPackage.eINSTANCE.eClass();
+ TimeLibraryPackage.eINSTANCE.eClass();
+ RS_LibraryPackage.eINSTANCE.eClass();
+ MARTE_PrimitivesTypesPackage.eINSTANCE.eClass();
+ sysmlPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ AnimatePackageImpl theAnimatePackage = (AnimatePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(AnimatePackage.eNS_URI) instanceof AnimatePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(AnimatePackage.eNS_URI) : AnimatePackage.eINSTANCE);
+ ActuatorPackageImpl theActuatorPackage = (ActuatorPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ActuatorPackage.eNS_URI) instanceof ActuatorPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ActuatorPackage.eNS_URI) : ActuatorPackage.eINSTANCE);
+ SensorPackageImpl theSensorPackage = (SensorPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SensorPackage.eNS_URI) instanceof SensorPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SensorPackage.eNS_URI) : SensorPackage.eINSTANCE);
+ CorePackageImpl theCorePackage = (CorePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI) instanceof CorePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI) : CorePackage.eINSTANCE);
+ HybridPackageImpl theHybridPackage = (HybridPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(HybridPackage.eNS_URI) instanceof HybridPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(HybridPackage.eNS_URI) : HybridPackage.eINSTANCE);
+ ArtefactPackageImpl theArtefactPackage = (ArtefactPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ArtefactPackage.eNS_URI) instanceof ArtefactPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ArtefactPackage.eNS_URI) : ArtefactPackage.eINSTANCE);
+ StructurePackageImpl theStructurePackage = (StructurePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(StructurePackage.eNS_URI) instanceof StructurePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(StructurePackage.eNS_URI) : StructurePackage.eINSTANCE);
+ ResourcePackageImpl theResourcePackage = (ResourcePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ResourcePackage.eNS_URI) instanceof ResourcePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ResourcePackage.eNS_URI) : ResourcePackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theNetworkPackage.createPackageContents();
+ theAnimatePackage.createPackageContents();
+ theActuatorPackage.createPackageContents();
+ theSensorPackage.createPackageContents();
+ theCorePackage.createPackageContents();
+ theHybridPackage.createPackageContents();
+ theArtefactPackage.createPackageContents();
+ theStructurePackage.createPackageContents();
+ theResourcePackage.createPackageContents();
+
+ // Initialize created meta-data
+ theNetworkPackage.initializePackageContents();
+ theAnimatePackage.initializePackageContents();
+ theActuatorPackage.initializePackageContents();
+ theSensorPackage.initializePackageContents();
+ theCorePackage.initializePackageContents();
+ theHybridPackage.initializePackageContents();
+ theArtefactPackage.initializePackageContents();
+ theStructurePackage.initializePackageContents();
+ theResourcePackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theNetworkPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(NetworkPackage.eNS_URI, theNetworkPackage);
+ return theNetworkPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getConnectedDevice() {
+ return connectedDeviceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGateway() {
+ return gatewayEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getServer() {
+ return serverEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NetworkFactory getNetworkFactory() {
+ return (NetworkFactory)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
+ connectedDeviceEClass = createEClass(CONNECTED_DEVICE);
+
+ gatewayEClass = createEClass(GATEWAY);
+
+ serverEClass = createEClass(SERVER);
+ }
+
+ /**
+ * <!-- 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);
+
+ // Obtain other dependent packages
+ HwCommunicationPackage theHwCommunicationPackage = (HwCommunicationPackage)EPackage.Registry.INSTANCE.getEPackage(HwCommunicationPackage.eNS_URI);
+ HwComputingPackage theHwComputingPackage = (HwComputingPackage)EPackage.Registry.INSTANCE.getEPackage(HwComputingPackage.eNS_URI);
+
+ // Add supertypes to classes
+ connectedDeviceEClass.getESuperTypes().add(theHwCommunicationPackage.getHwCommunicationResource());
+ gatewayEClass.getESuperTypes().add(theHwComputingPackage.getHwComputingResource());
+ gatewayEClass.getESuperTypes().add(this.getConnectedDevice());
+ serverEClass.getESuperTypes().add(theHwComputingPackage.getHwComputingResource());
+ serverEClass.getESuperTypes().add(this.getConnectedDevice());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(connectedDeviceEClass, ConnectedDevice.class, "ConnectedDevice", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(gatewayEClass, Gateway.class, "Gateway", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(serverEClass, Server.class, "Server", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //NetworkPackageImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/impl/ServerImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/impl/ServerImpl.java
new file mode 100644
index 0000000..ca0a9d3
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/impl/ServerImpl.java
@@ -0,0 +1,38 @@
+/**
+ */
+package IoTML.Hardware.Network.impl;
+
+import IoTML.Hardware.Network.NetworkPackage;
+import IoTML.Hardware.Network.Server;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwComputing.impl.HwComputingResourceImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Server</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ServerImpl extends HwComputingResourceImpl implements Server {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ServerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return NetworkPackage.Literals.SERVER;
+ }
+
+} //ServerImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/util/NetworkAdapterFactory.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/util/NetworkAdapterFactory.java
new file mode 100644
index 0000000..d71174e
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/util/NetworkAdapterFactory.java
@@ -0,0 +1,262 @@
+/**
+ */
+package IoTML.Hardware.Network.util;
+
+import IoTML.Hardware.Network.*;
+
+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;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.HwResource;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwCommunication.HwCommunicationResource;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwComputing.HwComputingResource;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.ComputingResource;
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.ProcessingResource;
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.Resource;
+
+/**
+ * <!-- 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 IoTML.Hardware.Network.NetworkPackage
+ * @generated
+ */
+public class NetworkAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static NetworkPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NetworkAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = NetworkPackage.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
+ */
+ 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 NetworkSwitch modelSwitch =
+ new NetworkSwitch() {
+ public Object caseConnectedDevice(ConnectedDevice object) {
+ return createConnectedDeviceAdapter();
+ }
+ public Object caseGateway(Gateway object) {
+ return createGatewayAdapter();
+ }
+ public Object caseServer(Server object) {
+ return createServerAdapter();
+ }
+ public Object caseResource(Resource object) {
+ return createResourceAdapter();
+ }
+ public Object caseHwResource(HwResource object) {
+ return createHwResourceAdapter();
+ }
+ public Object caseHwCommunicationResource(HwCommunicationResource object) {
+ return createHwCommunicationResourceAdapter();
+ }
+ public Object caseProcessingResource(ProcessingResource object) {
+ return createProcessingResourceAdapter();
+ }
+ public Object caseComputingResource(ComputingResource object) {
+ return createComputingResourceAdapter();
+ }
+ public Object caseHwComputingResource(HwComputingResource object) {
+ return createHwComputingResourceAdapter();
+ }
+ public Object 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
+ */
+ public Adapter createAdapter(Notifier target) {
+ return (Adapter)modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Hardware.Network.ConnectedDevice <em>Connected Device</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 IoTML.Hardware.Network.ConnectedDevice
+ * @generated
+ */
+ public Adapter createConnectedDeviceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Hardware.Network.Gateway <em>Gateway</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 IoTML.Hardware.Network.Gateway
+ * @generated
+ */
+ public Adapter createGatewayAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Hardware.Network.Server <em>Server</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 IoTML.Hardware.Network.Server
+ * @generated
+ */
+ public Adapter createServerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.Resource <em>Resource</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 org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.Resource
+ * @generated
+ */
+ public Adapter createResourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.HwResource <em>Hw Resource</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 org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.HwResource
+ * @generated
+ */
+ public Adapter createHwResourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwCommunication.HwCommunicationResource <em>Resource</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 org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwCommunication.HwCommunicationResource
+ * @generated
+ */
+ public Adapter createHwCommunicationResourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.ProcessingResource <em>Processing Resource</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 org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.ProcessingResource
+ * @generated
+ */
+ public Adapter createProcessingResourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.ComputingResource <em>Computing Resource</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 org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.ComputingResource
+ * @generated
+ */
+ public Adapter createComputingResourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwComputing.HwComputingResource <em>Resource</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 org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwComputing.HwComputingResource
+ * @generated
+ */
+ public Adapter createHwComputingResourceAdapter() {
+ 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;
+ }
+
+} //NetworkAdapterFactory
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/util/NetworkSwitch.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/util/NetworkSwitch.java
new file mode 100644
index 0000000..afc4ca4
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Network/util/NetworkSwitch.java
@@ -0,0 +1,285 @@
+/**
+ */
+package IoTML.Hardware.Network.util;
+
+import IoTML.Hardware.Network.*;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.HwResource;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwCommunication.HwCommunicationResource;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwComputing.HwComputingResource;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.ComputingResource;
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.ProcessingResource;
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.Resource;
+
+/**
+ * <!-- 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 IoTML.Hardware.Network.NetworkPackage
+ * @generated
+ */
+public class NetworkSwitch {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static NetworkPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NetworkSwitch() {
+ if (modelPackage == null) {
+ modelPackage = NetworkPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * 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
+ */
+ public Object doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch((EClass)eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case NetworkPackage.CONNECTED_DEVICE: {
+ ConnectedDevice connectedDevice = (ConnectedDevice)theEObject;
+ Object result = caseConnectedDevice(connectedDevice);
+ if (result == null) result = caseHwCommunicationResource(connectedDevice);
+ if (result == null) result = caseHwResource(connectedDevice);
+ if (result == null) result = caseResource(connectedDevice);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NetworkPackage.GATEWAY: {
+ Gateway gateway = (Gateway)theEObject;
+ Object result = caseGateway(gateway);
+ if (result == null) result = caseHwComputingResource(gateway);
+ if (result == null) result = caseConnectedDevice(gateway);
+ if (result == null) result = caseComputingResource(gateway);
+ if (result == null) result = caseHwCommunicationResource(gateway);
+ if (result == null) result = caseHwResource(gateway);
+ if (result == null) result = caseProcessingResource(gateway);
+ if (result == null) result = caseResource(gateway);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NetworkPackage.SERVER: {
+ Server server = (Server)theEObject;
+ Object result = caseServer(server);
+ if (result == null) result = caseHwComputingResource(server);
+ if (result == null) result = caseConnectedDevice(server);
+ if (result == null) result = caseComputingResource(server);
+ if (result == null) result = caseHwCommunicationResource(server);
+ if (result == null) result = caseHwResource(server);
+ if (result == null) result = caseProcessingResource(server);
+ if (result == null) result = caseResource(server);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Connected Device</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>Connected Device</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseConnectedDevice(ConnectedDevice object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Gateway</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>Gateway</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseGateway(Gateway object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Server</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>Server</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseServer(Server object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Resource</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>Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseResource(Resource object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hw Resource</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>Hw Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseHwResource(HwResource object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Resource</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>Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseHwCommunicationResource(HwCommunicationResource object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Processing Resource</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>Processing Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseProcessingResource(ProcessingResource object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Computing Resource</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>Computing Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseComputingResource(ComputingResource object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Resource</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>Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseHwComputingResource(HwComputingResource 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
+ */
+ public Object defaultCase(EObject object) {
+ return null;
+ }
+
+} //NetworkSwitch
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/HwCommonSensor.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/HwCommonSensor.java
new file mode 100644
index 0000000..f173985
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/HwCommonSensor.java
@@ -0,0 +1,135 @@
+/**
+ */
+package IoTML.Hardware.Sensor;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HWSensor;
+
+import org.eclipse.papyrus.sysml14.blocks.ValueType;
+
+import org.eclipse.uml2.uml.Behavior;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Hw Common Sensor</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Hardware.Sensor.HwCommonSensor#getInputValueType <em>Input Value Type</em>}</li>
+ * <li>{@link IoTML.Hardware.Sensor.HwCommonSensor#getOutputValueType <em>Output Value Type</em>}</li>
+ * <li>{@link IoTML.Hardware.Sensor.HwCommonSensor#getHwcommonsensor <em>Hwcommonsensor</em>}</li>
+ * <li>{@link IoTML.Hardware.Sensor.HwCommonSensor#getTransferFunction <em>Transfer Function</em>}</li>
+ * </ul>
+ *
+ * @see IoTML.Hardware.Sensor.SensorPackage#getHwCommonSensor()
+ * @model
+ * @generated
+ */
+public interface HwCommonSensor extends HWSensor {
+ /**
+ * Returns the value of the '<em><b>Input Value Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Input Value Type</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Input Value Type</em>' reference.
+ * @see #setInputValueType(ValueType)
+ * @see IoTML.Hardware.Sensor.SensorPackage#getHwCommonSensor_InputValueType()
+ * @model ordered="false"
+ * @generated
+ */
+ ValueType getInputValueType();
+
+ /**
+ * Sets the value of the '{@link IoTML.Hardware.Sensor.HwCommonSensor#getInputValueType <em>Input Value Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Input Value Type</em>' reference.
+ * @see #getInputValueType()
+ * @generated
+ */
+ void setInputValueType(ValueType value);
+
+ /**
+ * Returns the value of the '<em><b>Output Value Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Output Value Type</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Output Value Type</em>' reference.
+ * @see #setOutputValueType(ValueType)
+ * @see IoTML.Hardware.Sensor.SensorPackage#getHwCommonSensor_OutputValueType()
+ * @model ordered="false"
+ * @generated
+ */
+ ValueType getOutputValueType();
+
+ /**
+ * Sets the value of the '{@link IoTML.Hardware.Sensor.HwCommonSensor#getOutputValueType <em>Output Value Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Output Value Type</em>' reference.
+ * @see #getOutputValueType()
+ * @generated
+ */
+ void setOutputValueType(ValueType value);
+
+ /**
+ * Returns the value of the '<em><b>Hwcommonsensor</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hwcommonsensor</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Hwcommonsensor</em>' reference.
+ * @see #setHwcommonsensor(HwCommonSensor)
+ * @see IoTML.Hardware.Sensor.SensorPackage#getHwCommonSensor_Hwcommonsensor()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ HwCommonSensor getHwcommonsensor();
+
+ /**
+ * Sets the value of the '{@link IoTML.Hardware.Sensor.HwCommonSensor#getHwcommonsensor <em>Hwcommonsensor</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hwcommonsensor</em>' reference.
+ * @see #getHwcommonsensor()
+ * @generated
+ */
+ void setHwcommonsensor(HwCommonSensor value);
+
+ /**
+ * Returns the value of the '<em><b>Transfer Function</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Transfer Function</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Transfer Function</em>' reference.
+ * @see #setTransferFunction(Behavior)
+ * @see IoTML.Hardware.Sensor.SensorPackage#getHwCommonSensor_TransferFunction()
+ * @model ordered="false"
+ * @generated
+ */
+ Behavior getTransferFunction();
+
+ /**
+ * Sets the value of the '{@link IoTML.Hardware.Sensor.HwCommonSensor#getTransferFunction <em>Transfer Function</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Transfer Function</em>' reference.
+ * @see #getTransferFunction()
+ * @generated
+ */
+ void setTransferFunction(Behavior value);
+
+} // HwCommonSensor
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/HwRFIDReaderSensor.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/HwRFIDReaderSensor.java
new file mode 100644
index 0000000..ccf9707
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/HwRFIDReaderSensor.java
@@ -0,0 +1,40 @@
+/**
+ */
+package IoTML.Hardware.Sensor;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Hw RFID Reader Sensor</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Hardware.Sensor.HwRFIDReaderSensor#getTag <em>Tag</em>}</li>
+ * </ul>
+ *
+ * @see IoTML.Hardware.Sensor.SensorPackage#getHwRFIDReaderSensor()
+ * @model
+ * @generated
+ */
+public interface HwRFIDReaderSensor extends HwCommonSensor {
+ /**
+ * Returns the value of the '<em><b>Tag</b></em>' reference list.
+ * The list contents are of type {@link IoTML.Hardware.Sensor.HwTag}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Tag</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Tag</em>' reference list.
+ * @see IoTML.Hardware.Sensor.SensorPackage#getHwRFIDReaderSensor_Tag()
+ * @model type="IoTML.Hardware.Sensor.HwTag" ordered="false"
+ * @generated
+ */
+ EList getTag();
+
+} // HwRFIDReaderSensor
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/HwTag.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/HwTag.java
new file mode 100644
index 0000000..1cb7d81
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/HwTag.java
@@ -0,0 +1,50 @@
+/**
+ */
+package IoTML.Hardware.Sensor;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwI_O;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Hw Tag</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Hardware.Sensor.HwTag#getTageFrequency <em>Tage Frequency</em>}</li>
+ * </ul>
+ *
+ * @see IoTML.Hardware.Sensor.SensorPackage#getHwTag()
+ * @model
+ * @generated
+ */
+public interface HwTag extends HwI_O {
+ /**
+ * Returns the value of the '<em><b>Tage Frequency</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Tage Frequency</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Tage Frequency</em>' attribute.
+ * @see #setTageFrequency(double)
+ * @see IoTML.Hardware.Sensor.SensorPackage#getHwTag_TageFrequency()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getTageFrequency();
+
+ /**
+ * Sets the value of the '{@link IoTML.Hardware.Sensor.HwTag#getTageFrequency <em>Tage Frequency</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Tage Frequency</em>' attribute.
+ * @see #getTageFrequency()
+ * @generated
+ */
+ void setTageFrequency(double value);
+
+} // HwTag
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/SensorFactory.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/SensorFactory.java
new file mode 100644
index 0000000..d1c0bd2
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/SensorFactory.java
@@ -0,0 +1,60 @@
+/**
+ */
+package IoTML.Hardware.Sensor;
+
+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 IoTML.Hardware.Sensor.SensorPackage
+ * @generated
+ */
+public interface SensorFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ SensorFactory eINSTANCE = IoTML.Hardware.Sensor.impl.SensorFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Hw Common Sensor</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Hw Common Sensor</em>'.
+ * @generated
+ */
+ HwCommonSensor createHwCommonSensor();
+
+ /**
+ * Returns a new object of class '<em>Hw RFID Reader Sensor</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Hw RFID Reader Sensor</em>'.
+ * @generated
+ */
+ HwRFIDReaderSensor createHwRFIDReaderSensor();
+
+ /**
+ * Returns a new object of class '<em>Hw Tag</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Hw Tag</em>'.
+ * @generated
+ */
+ HwTag createHwTag();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ SensorPackage getSensorPackage();
+
+} //SensorFactory
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/SensorPackage.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/SensorPackage.java
new file mode 100644
index 0000000..ecad2a9
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/SensorPackage.java
@@ -0,0 +1,838 @@
+/**
+ */
+package IoTML.Hardware.Sensor;
+
+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.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwDevicePackage;
+
+/**
+ * <!-- 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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Sensor.SensorFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface SensorPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Sensor";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http:///IoTML/Hardware/Sensor.ecore";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "IoTML.Hardware.Sensor";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ SensorPackage eINSTANCE = IoTML.Hardware.Sensor.impl.SensorPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link IoTML.Hardware.Sensor.impl.HwCommonSensorImpl <em>Hw Common Sensor</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Sensor.impl.HwCommonSensorImpl
+ * @see IoTML.Hardware.Sensor.impl.SensorPackageImpl#getHwCommonSensor()
+ * @generated
+ */
+ int HW_COMMON_SENSOR = 0;
+
+ /**
+ * The feature id for the '<em><b>Res Mult</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_SENSOR__RES_MULT = HwDevicePackage.HW_SENSOR__RES_MULT;
+
+ /**
+ * The feature id for the '<em><b>Is Protected</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_SENSOR__IS_PROTECTED = HwDevicePackage.HW_SENSOR__IS_PROTECTED;
+
+ /**
+ * The feature id for the '<em><b>Is Active</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_SENSOR__IS_ACTIVE = HwDevicePackage.HW_SENSOR__IS_ACTIVE;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_SENSOR__BASE_PROPERTY = HwDevicePackage.HW_SENSOR__BASE_PROPERTY;
+
+ /**
+ * The feature id for the '<em><b>Base Instance Specification</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_SENSOR__BASE_INSTANCE_SPECIFICATION = HwDevicePackage.HW_SENSOR__BASE_INSTANCE_SPECIFICATION;
+
+ /**
+ * The feature id for the '<em><b>Base Classifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_SENSOR__BASE_CLASSIFIER = HwDevicePackage.HW_SENSOR__BASE_CLASSIFIER;
+
+ /**
+ * The feature id for the '<em><b>Base Lifeline</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_SENSOR__BASE_LIFELINE = HwDevicePackage.HW_SENSOR__BASE_LIFELINE;
+
+ /**
+ * The feature id for the '<em><b>Base Connectable Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_SENSOR__BASE_CONNECTABLE_ELEMENT = HwDevicePackage.HW_SENSOR__BASE_CONNECTABLE_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_SENSOR__DESCRIPTION = HwDevicePackage.HW_SENSOR__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>PHW Services</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_SENSOR__PHW_SERVICES = HwDevicePackage.HW_SENSOR__PHW_SERVICES;
+
+ /**
+ * The feature id for the '<em><b>RHW Services</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_SENSOR__RHW_SERVICES = HwDevicePackage.HW_SENSOR__RHW_SERVICES;
+
+ /**
+ * The feature id for the '<em><b>Owned HW</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_SENSOR__OWNED_HW = HwDevicePackage.HW_SENSOR__OWNED_HW;
+
+ /**
+ * The feature id for the '<em><b>End Points</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_SENSOR__END_POINTS = HwDevicePackage.HW_SENSOR__END_POINTS;
+
+ /**
+ * The feature id for the '<em><b>Frequency</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_SENSOR__FREQUENCY = HwDevicePackage.HW_SENSOR__FREQUENCY;
+
+ /**
+ * The feature id for the '<em><b>Speed Factor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_SENSOR__SPEED_FACTOR = HwDevicePackage.HW_SENSOR__SPEED_FACTOR;
+
+ /**
+ * The feature id for the '<em><b>Main Scheduler</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_SENSOR__MAIN_SCHEDULER = HwDevicePackage.HW_SENSOR__MAIN_SCHEDULER;
+
+ /**
+ * The feature id for the '<em><b>Input Value Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_SENSOR__INPUT_VALUE_TYPE = HwDevicePackage.HW_SENSOR_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Output Value Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_SENSOR__OUTPUT_VALUE_TYPE = HwDevicePackage.HW_SENSOR_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Hwcommonsensor</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_SENSOR__HWCOMMONSENSOR = HwDevicePackage.HW_SENSOR_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Transfer Function</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_SENSOR__TRANSFER_FUNCTION = HwDevicePackage.HW_SENSOR_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Hw Common Sensor</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_COMMON_SENSOR_FEATURE_COUNT = HwDevicePackage.HW_SENSOR_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link IoTML.Hardware.Sensor.impl.HwRFIDReaderSensorImpl <em>Hw RFID Reader Sensor</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Sensor.impl.HwRFIDReaderSensorImpl
+ * @see IoTML.Hardware.Sensor.impl.SensorPackageImpl#getHwRFIDReaderSensor()
+ * @generated
+ */
+ int HW_RFID_READER_SENSOR = 1;
+
+ /**
+ * The feature id for the '<em><b>Res Mult</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR__RES_MULT = HW_COMMON_SENSOR__RES_MULT;
+
+ /**
+ * The feature id for the '<em><b>Is Protected</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR__IS_PROTECTED = HW_COMMON_SENSOR__IS_PROTECTED;
+
+ /**
+ * The feature id for the '<em><b>Is Active</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR__IS_ACTIVE = HW_COMMON_SENSOR__IS_ACTIVE;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR__BASE_PROPERTY = HW_COMMON_SENSOR__BASE_PROPERTY;
+
+ /**
+ * The feature id for the '<em><b>Base Instance Specification</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR__BASE_INSTANCE_SPECIFICATION = HW_COMMON_SENSOR__BASE_INSTANCE_SPECIFICATION;
+
+ /**
+ * The feature id for the '<em><b>Base Classifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR__BASE_CLASSIFIER = HW_COMMON_SENSOR__BASE_CLASSIFIER;
+
+ /**
+ * The feature id for the '<em><b>Base Lifeline</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR__BASE_LIFELINE = HW_COMMON_SENSOR__BASE_LIFELINE;
+
+ /**
+ * The feature id for the '<em><b>Base Connectable Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR__BASE_CONNECTABLE_ELEMENT = HW_COMMON_SENSOR__BASE_CONNECTABLE_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR__DESCRIPTION = HW_COMMON_SENSOR__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>PHW Services</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR__PHW_SERVICES = HW_COMMON_SENSOR__PHW_SERVICES;
+
+ /**
+ * The feature id for the '<em><b>RHW Services</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR__RHW_SERVICES = HW_COMMON_SENSOR__RHW_SERVICES;
+
+ /**
+ * The feature id for the '<em><b>Owned HW</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR__OWNED_HW = HW_COMMON_SENSOR__OWNED_HW;
+
+ /**
+ * The feature id for the '<em><b>End Points</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR__END_POINTS = HW_COMMON_SENSOR__END_POINTS;
+
+ /**
+ * The feature id for the '<em><b>Frequency</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR__FREQUENCY = HW_COMMON_SENSOR__FREQUENCY;
+
+ /**
+ * The feature id for the '<em><b>Speed Factor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR__SPEED_FACTOR = HW_COMMON_SENSOR__SPEED_FACTOR;
+
+ /**
+ * The feature id for the '<em><b>Main Scheduler</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR__MAIN_SCHEDULER = HW_COMMON_SENSOR__MAIN_SCHEDULER;
+
+ /**
+ * The feature id for the '<em><b>Input Value Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR__INPUT_VALUE_TYPE = HW_COMMON_SENSOR__INPUT_VALUE_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Output Value Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR__OUTPUT_VALUE_TYPE = HW_COMMON_SENSOR__OUTPUT_VALUE_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Hwcommonsensor</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR__HWCOMMONSENSOR = HW_COMMON_SENSOR__HWCOMMONSENSOR;
+
+ /**
+ * The feature id for the '<em><b>Transfer Function</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR__TRANSFER_FUNCTION = HW_COMMON_SENSOR__TRANSFER_FUNCTION;
+
+ /**
+ * The feature id for the '<em><b>Tag</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR__TAG = HW_COMMON_SENSOR_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Hw RFID Reader Sensor</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_RFID_READER_SENSOR_FEATURE_COUNT = HW_COMMON_SENSOR_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link IoTML.Hardware.Sensor.impl.HwTagImpl <em>Hw Tag</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Sensor.impl.HwTagImpl
+ * @see IoTML.Hardware.Sensor.impl.SensorPackageImpl#getHwTag()
+ * @generated
+ */
+ int HW_TAG = 2;
+
+ /**
+ * The feature id for the '<em><b>Res Mult</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_TAG__RES_MULT = HwDevicePackage.HW_IO__RES_MULT;
+
+ /**
+ * The feature id for the '<em><b>Is Protected</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_TAG__IS_PROTECTED = HwDevicePackage.HW_IO__IS_PROTECTED;
+
+ /**
+ * The feature id for the '<em><b>Is Active</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_TAG__IS_ACTIVE = HwDevicePackage.HW_IO__IS_ACTIVE;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_TAG__BASE_PROPERTY = HwDevicePackage.HW_IO__BASE_PROPERTY;
+
+ /**
+ * The feature id for the '<em><b>Base Instance Specification</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_TAG__BASE_INSTANCE_SPECIFICATION = HwDevicePackage.HW_IO__BASE_INSTANCE_SPECIFICATION;
+
+ /**
+ * The feature id for the '<em><b>Base Classifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_TAG__BASE_CLASSIFIER = HwDevicePackage.HW_IO__BASE_CLASSIFIER;
+
+ /**
+ * The feature id for the '<em><b>Base Lifeline</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_TAG__BASE_LIFELINE = HwDevicePackage.HW_IO__BASE_LIFELINE;
+
+ /**
+ * The feature id for the '<em><b>Base Connectable Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_TAG__BASE_CONNECTABLE_ELEMENT = HwDevicePackage.HW_IO__BASE_CONNECTABLE_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_TAG__DESCRIPTION = HwDevicePackage.HW_IO__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>PHW Services</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_TAG__PHW_SERVICES = HwDevicePackage.HW_IO__PHW_SERVICES;
+
+ /**
+ * The feature id for the '<em><b>RHW Services</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_TAG__RHW_SERVICES = HwDevicePackage.HW_IO__RHW_SERVICES;
+
+ /**
+ * The feature id for the '<em><b>Owned HW</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_TAG__OWNED_HW = HwDevicePackage.HW_IO__OWNED_HW;
+
+ /**
+ * The feature id for the '<em><b>End Points</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_TAG__END_POINTS = HwDevicePackage.HW_IO__END_POINTS;
+
+ /**
+ * The feature id for the '<em><b>Frequency</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_TAG__FREQUENCY = HwDevicePackage.HW_IO__FREQUENCY;
+
+ /**
+ * The feature id for the '<em><b>Speed Factor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_TAG__SPEED_FACTOR = HwDevicePackage.HW_IO__SPEED_FACTOR;
+
+ /**
+ * The feature id for the '<em><b>Main Scheduler</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_TAG__MAIN_SCHEDULER = HwDevicePackage.HW_IO__MAIN_SCHEDULER;
+
+ /**
+ * The feature id for the '<em><b>Tage Frequency</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_TAG__TAGE_FREQUENCY = HwDevicePackage.HW_IO_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Hw Tag</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HW_TAG_FEATURE_COUNT = HwDevicePackage.HW_IO_FEATURE_COUNT + 1;
+
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Hardware.Sensor.HwCommonSensor <em>Hw Common Sensor</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Hw Common Sensor</em>'.
+ * @see IoTML.Hardware.Sensor.HwCommonSensor
+ * @generated
+ */
+ EClass getHwCommonSensor();
+
+ /**
+ * Returns the meta object for the reference '{@link IoTML.Hardware.Sensor.HwCommonSensor#getInputValueType <em>Input Value Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Input Value Type</em>'.
+ * @see IoTML.Hardware.Sensor.HwCommonSensor#getInputValueType()
+ * @see #getHwCommonSensor()
+ * @generated
+ */
+ EReference getHwCommonSensor_InputValueType();
+
+ /**
+ * Returns the meta object for the reference '{@link IoTML.Hardware.Sensor.HwCommonSensor#getOutputValueType <em>Output Value Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Output Value Type</em>'.
+ * @see IoTML.Hardware.Sensor.HwCommonSensor#getOutputValueType()
+ * @see #getHwCommonSensor()
+ * @generated
+ */
+ EReference getHwCommonSensor_OutputValueType();
+
+ /**
+ * Returns the meta object for the reference '{@link IoTML.Hardware.Sensor.HwCommonSensor#getHwcommonsensor <em>Hwcommonsensor</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Hwcommonsensor</em>'.
+ * @see IoTML.Hardware.Sensor.HwCommonSensor#getHwcommonsensor()
+ * @see #getHwCommonSensor()
+ * @generated
+ */
+ EReference getHwCommonSensor_Hwcommonsensor();
+
+ /**
+ * Returns the meta object for the reference '{@link IoTML.Hardware.Sensor.HwCommonSensor#getTransferFunction <em>Transfer Function</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Transfer Function</em>'.
+ * @see IoTML.Hardware.Sensor.HwCommonSensor#getTransferFunction()
+ * @see #getHwCommonSensor()
+ * @generated
+ */
+ EReference getHwCommonSensor_TransferFunction();
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Hardware.Sensor.HwRFIDReaderSensor <em>Hw RFID Reader Sensor</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Hw RFID Reader Sensor</em>'.
+ * @see IoTML.Hardware.Sensor.HwRFIDReaderSensor
+ * @generated
+ */
+ EClass getHwRFIDReaderSensor();
+
+ /**
+ * Returns the meta object for the reference list '{@link IoTML.Hardware.Sensor.HwRFIDReaderSensor#getTag <em>Tag</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Tag</em>'.
+ * @see IoTML.Hardware.Sensor.HwRFIDReaderSensor#getTag()
+ * @see #getHwRFIDReaderSensor()
+ * @generated
+ */
+ EReference getHwRFIDReaderSensor_Tag();
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Hardware.Sensor.HwTag <em>Hw Tag</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Hw Tag</em>'.
+ * @see IoTML.Hardware.Sensor.HwTag
+ * @generated
+ */
+ EClass getHwTag();
+
+ /**
+ * Returns the meta object for the attribute '{@link IoTML.Hardware.Sensor.HwTag#getTageFrequency <em>Tage Frequency</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Tage Frequency</em>'.
+ * @see IoTML.Hardware.Sensor.HwTag#getTageFrequency()
+ * @see #getHwTag()
+ * @generated
+ */
+ EAttribute getHwTag_TageFrequency();
+
+ /**
+ * 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
+ */
+ SensorFactory getSensorFactory();
+
+ /**
+ * <!-- 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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link IoTML.Hardware.Sensor.impl.HwCommonSensorImpl <em>Hw Common Sensor</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Sensor.impl.HwCommonSensorImpl
+ * @see IoTML.Hardware.Sensor.impl.SensorPackageImpl#getHwCommonSensor()
+ * @generated
+ */
+ EClass HW_COMMON_SENSOR = eINSTANCE.getHwCommonSensor();
+
+ /**
+ * The meta object literal for the '<em><b>Input Value Type</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HW_COMMON_SENSOR__INPUT_VALUE_TYPE = eINSTANCE.getHwCommonSensor_InputValueType();
+
+ /**
+ * The meta object literal for the '<em><b>Output Value Type</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HW_COMMON_SENSOR__OUTPUT_VALUE_TYPE = eINSTANCE.getHwCommonSensor_OutputValueType();
+
+ /**
+ * The meta object literal for the '<em><b>Hwcommonsensor</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HW_COMMON_SENSOR__HWCOMMONSENSOR = eINSTANCE.getHwCommonSensor_Hwcommonsensor();
+
+ /**
+ * The meta object literal for the '<em><b>Transfer Function</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HW_COMMON_SENSOR__TRANSFER_FUNCTION = eINSTANCE.getHwCommonSensor_TransferFunction();
+
+ /**
+ * The meta object literal for the '{@link IoTML.Hardware.Sensor.impl.HwRFIDReaderSensorImpl <em>Hw RFID Reader Sensor</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Sensor.impl.HwRFIDReaderSensorImpl
+ * @see IoTML.Hardware.Sensor.impl.SensorPackageImpl#getHwRFIDReaderSensor()
+ * @generated
+ */
+ EClass HW_RFID_READER_SENSOR = eINSTANCE.getHwRFIDReaderSensor();
+
+ /**
+ * The meta object literal for the '<em><b>Tag</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference HW_RFID_READER_SENSOR__TAG = eINSTANCE.getHwRFIDReaderSensor_Tag();
+
+ /**
+ * The meta object literal for the '{@link IoTML.Hardware.Sensor.impl.HwTagImpl <em>Hw Tag</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hardware.Sensor.impl.HwTagImpl
+ * @see IoTML.Hardware.Sensor.impl.SensorPackageImpl#getHwTag()
+ * @generated
+ */
+ EClass HW_TAG = eINSTANCE.getHwTag();
+
+ /**
+ * The meta object literal for the '<em><b>Tage Frequency</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute HW_TAG__TAGE_FREQUENCY = eINSTANCE.getHwTag_TageFrequency();
+
+ }
+
+} //SensorPackage
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/impl/HwCommonSensorImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/impl/HwCommonSensorImpl.java
new file mode 100644
index 0000000..5307e45
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/impl/HwCommonSensorImpl.java
@@ -0,0 +1,336 @@
+/**
+ */
+package IoTML.Hardware.Sensor.impl;
+
+import IoTML.Hardware.Sensor.HwCommonSensor;
+import IoTML.Hardware.Sensor.SensorPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.impl.HWSensorImpl;
+
+import org.eclipse.papyrus.sysml14.blocks.ValueType;
+
+import org.eclipse.uml2.uml.Behavior;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Hw Common Sensor</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Hardware.Sensor.impl.HwCommonSensorImpl#getInputValueType <em>Input Value Type</em>}</li>
+ * <li>{@link IoTML.Hardware.Sensor.impl.HwCommonSensorImpl#getOutputValueType <em>Output Value Type</em>}</li>
+ * <li>{@link IoTML.Hardware.Sensor.impl.HwCommonSensorImpl#getHwcommonsensor <em>Hwcommonsensor</em>}</li>
+ * <li>{@link IoTML.Hardware.Sensor.impl.HwCommonSensorImpl#getTransferFunction <em>Transfer Function</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class HwCommonSensorImpl extends HWSensorImpl implements HwCommonSensor {
+ /**
+ * The cached value of the '{@link #getInputValueType() <em>Input Value Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInputValueType()
+ * @generated
+ * @ordered
+ */
+ protected ValueType inputValueType;
+
+ /**
+ * The cached value of the '{@link #getOutputValueType() <em>Output Value Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOutputValueType()
+ * @generated
+ * @ordered
+ */
+ protected ValueType outputValueType;
+
+ /**
+ * The cached value of the '{@link #getHwcommonsensor() <em>Hwcommonsensor</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHwcommonsensor()
+ * @generated
+ * @ordered
+ */
+ protected HwCommonSensor hwcommonsensor;
+
+ /**
+ * The cached value of the '{@link #getTransferFunction() <em>Transfer Function</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTransferFunction()
+ * @generated
+ * @ordered
+ */
+ protected Behavior transferFunction;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected HwCommonSensorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return SensorPackage.Literals.HW_COMMON_SENSOR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueType getInputValueType() {
+ if (inputValueType != null && inputValueType.eIsProxy()) {
+ InternalEObject oldInputValueType = (InternalEObject)inputValueType;
+ inputValueType = (ValueType)eResolveProxy(oldInputValueType);
+ if (inputValueType != oldInputValueType) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, SensorPackage.HW_COMMON_SENSOR__INPUT_VALUE_TYPE, oldInputValueType, inputValueType));
+ }
+ }
+ return inputValueType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueType basicGetInputValueType() {
+ return inputValueType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInputValueType(ValueType newInputValueType) {
+ ValueType oldInputValueType = inputValueType;
+ inputValueType = newInputValueType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SensorPackage.HW_COMMON_SENSOR__INPUT_VALUE_TYPE, oldInputValueType, inputValueType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueType getOutputValueType() {
+ if (outputValueType != null && outputValueType.eIsProxy()) {
+ InternalEObject oldOutputValueType = (InternalEObject)outputValueType;
+ outputValueType = (ValueType)eResolveProxy(oldOutputValueType);
+ if (outputValueType != oldOutputValueType) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, SensorPackage.HW_COMMON_SENSOR__OUTPUT_VALUE_TYPE, oldOutputValueType, outputValueType));
+ }
+ }
+ return outputValueType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueType basicGetOutputValueType() {
+ return outputValueType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOutputValueType(ValueType newOutputValueType) {
+ ValueType oldOutputValueType = outputValueType;
+ outputValueType = newOutputValueType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SensorPackage.HW_COMMON_SENSOR__OUTPUT_VALUE_TYPE, oldOutputValueType, outputValueType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HwCommonSensor getHwcommonsensor() {
+ if (hwcommonsensor != null && hwcommonsensor.eIsProxy()) {
+ InternalEObject oldHwcommonsensor = (InternalEObject)hwcommonsensor;
+ hwcommonsensor = (HwCommonSensor)eResolveProxy(oldHwcommonsensor);
+ if (hwcommonsensor != oldHwcommonsensor) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, SensorPackage.HW_COMMON_SENSOR__HWCOMMONSENSOR, oldHwcommonsensor, hwcommonsensor));
+ }
+ }
+ return hwcommonsensor;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HwCommonSensor basicGetHwcommonsensor() {
+ return hwcommonsensor;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHwcommonsensor(HwCommonSensor newHwcommonsensor) {
+ HwCommonSensor oldHwcommonsensor = hwcommonsensor;
+ hwcommonsensor = newHwcommonsensor;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SensorPackage.HW_COMMON_SENSOR__HWCOMMONSENSOR, oldHwcommonsensor, hwcommonsensor));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior getTransferFunction() {
+ if (transferFunction != null && transferFunction.eIsProxy()) {
+ InternalEObject oldTransferFunction = (InternalEObject)transferFunction;
+ transferFunction = (Behavior)eResolveProxy(oldTransferFunction);
+ if (transferFunction != oldTransferFunction) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, SensorPackage.HW_COMMON_SENSOR__TRANSFER_FUNCTION, oldTransferFunction, transferFunction));
+ }
+ }
+ return transferFunction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior basicGetTransferFunction() {
+ return transferFunction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTransferFunction(Behavior newTransferFunction) {
+ Behavior oldTransferFunction = transferFunction;
+ transferFunction = newTransferFunction;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SensorPackage.HW_COMMON_SENSOR__TRANSFER_FUNCTION, oldTransferFunction, transferFunction));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case SensorPackage.HW_COMMON_SENSOR__INPUT_VALUE_TYPE:
+ if (resolve) return getInputValueType();
+ return basicGetInputValueType();
+ case SensorPackage.HW_COMMON_SENSOR__OUTPUT_VALUE_TYPE:
+ if (resolve) return getOutputValueType();
+ return basicGetOutputValueType();
+ case SensorPackage.HW_COMMON_SENSOR__HWCOMMONSENSOR:
+ if (resolve) return getHwcommonsensor();
+ return basicGetHwcommonsensor();
+ case SensorPackage.HW_COMMON_SENSOR__TRANSFER_FUNCTION:
+ if (resolve) return getTransferFunction();
+ return basicGetTransferFunction();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case SensorPackage.HW_COMMON_SENSOR__INPUT_VALUE_TYPE:
+ setInputValueType((ValueType)newValue);
+ return;
+ case SensorPackage.HW_COMMON_SENSOR__OUTPUT_VALUE_TYPE:
+ setOutputValueType((ValueType)newValue);
+ return;
+ case SensorPackage.HW_COMMON_SENSOR__HWCOMMONSENSOR:
+ setHwcommonsensor((HwCommonSensor)newValue);
+ return;
+ case SensorPackage.HW_COMMON_SENSOR__TRANSFER_FUNCTION:
+ setTransferFunction((Behavior)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case SensorPackage.HW_COMMON_SENSOR__INPUT_VALUE_TYPE:
+ setInputValueType((ValueType)null);
+ return;
+ case SensorPackage.HW_COMMON_SENSOR__OUTPUT_VALUE_TYPE:
+ setOutputValueType((ValueType)null);
+ return;
+ case SensorPackage.HW_COMMON_SENSOR__HWCOMMONSENSOR:
+ setHwcommonsensor((HwCommonSensor)null);
+ return;
+ case SensorPackage.HW_COMMON_SENSOR__TRANSFER_FUNCTION:
+ setTransferFunction((Behavior)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case SensorPackage.HW_COMMON_SENSOR__INPUT_VALUE_TYPE:
+ return inputValueType != null;
+ case SensorPackage.HW_COMMON_SENSOR__OUTPUT_VALUE_TYPE:
+ return outputValueType != null;
+ case SensorPackage.HW_COMMON_SENSOR__HWCOMMONSENSOR:
+ return hwcommonsensor != null;
+ case SensorPackage.HW_COMMON_SENSOR__TRANSFER_FUNCTION:
+ return transferFunction != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //HwCommonSensorImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/impl/HwRFIDReaderSensorImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/impl/HwRFIDReaderSensorImpl.java
new file mode 100644
index 0000000..dbd2bdb
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/impl/HwRFIDReaderSensorImpl.java
@@ -0,0 +1,126 @@
+/**
+ */
+package IoTML.Hardware.Sensor.impl;
+
+import IoTML.Hardware.Sensor.HwRFIDReaderSensor;
+import IoTML.Hardware.Sensor.HwTag;
+import IoTML.Hardware.Sensor.SensorPackage;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Hw RFID Reader Sensor</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Hardware.Sensor.impl.HwRFIDReaderSensorImpl#getTag <em>Tag</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class HwRFIDReaderSensorImpl extends HwCommonSensorImpl implements HwRFIDReaderSensor {
+ /**
+ * The cached value of the '{@link #getTag() <em>Tag</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTag()
+ * @generated
+ * @ordered
+ */
+ protected EList tag;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected HwRFIDReaderSensorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return SensorPackage.Literals.HW_RFID_READER_SENSOR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getTag() {
+ if (tag == null) {
+ tag = new EObjectResolvingEList(HwTag.class, this, SensorPackage.HW_RFID_READER_SENSOR__TAG);
+ }
+ return tag;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case SensorPackage.HW_RFID_READER_SENSOR__TAG:
+ return getTag();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case SensorPackage.HW_RFID_READER_SENSOR__TAG:
+ getTag().clear();
+ getTag().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case SensorPackage.HW_RFID_READER_SENSOR__TAG:
+ getTag().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case SensorPackage.HW_RFID_READER_SENSOR__TAG:
+ return tag != null && !tag.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //HwRFIDReaderSensorImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/impl/HwTagImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/impl/HwTagImpl.java
new file mode 100644
index 0000000..687f7e6
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/impl/HwTagImpl.java
@@ -0,0 +1,158 @@
+/**
+ */
+package IoTML.Hardware.Sensor.impl;
+
+import IoTML.Hardware.Sensor.HwTag;
+import IoTML.Hardware.Sensor.SensorPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.impl.HwI_OImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Hw Tag</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Hardware.Sensor.impl.HwTagImpl#getTageFrequency <em>Tage Frequency</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class HwTagImpl extends HwI_OImpl implements HwTag {
+ /**
+ * The default value of the '{@link #getTageFrequency() <em>Tage Frequency</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTageFrequency()
+ * @generated
+ * @ordered
+ */
+ protected static final double TAGE_FREQUENCY_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getTageFrequency() <em>Tage Frequency</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTageFrequency()
+ * @generated
+ * @ordered
+ */
+ protected double tageFrequency = TAGE_FREQUENCY_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected HwTagImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return SensorPackage.Literals.HW_TAG;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getTageFrequency() {
+ return tageFrequency;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTageFrequency(double newTageFrequency) {
+ double oldTageFrequency = tageFrequency;
+ tageFrequency = newTageFrequency;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SensorPackage.HW_TAG__TAGE_FREQUENCY, oldTageFrequency, tageFrequency));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case SensorPackage.HW_TAG__TAGE_FREQUENCY:
+ return new Double(getTageFrequency());
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case SensorPackage.HW_TAG__TAGE_FREQUENCY:
+ setTageFrequency(((Double)newValue).doubleValue());
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case SensorPackage.HW_TAG__TAGE_FREQUENCY:
+ setTageFrequency(TAGE_FREQUENCY_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case SensorPackage.HW_TAG__TAGE_FREQUENCY:
+ return tageFrequency != TAGE_FREQUENCY_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (tageFrequency: ");
+ result.append(tageFrequency);
+ result.append(')');
+ return result.toString();
+ }
+
+} //HwTagImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/impl/SensorFactoryImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/impl/SensorFactoryImpl.java
new file mode 100644
index 0000000..e0d2b1d
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/impl/SensorFactoryImpl.java
@@ -0,0 +1,115 @@
+/**
+ */
+package IoTML.Hardware.Sensor.impl;
+
+import IoTML.Hardware.Sensor.*;
+
+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 SensorFactoryImpl extends EFactoryImpl implements SensorFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SensorFactory init() {
+ try {
+ SensorFactory theSensorFactory = (SensorFactory)EPackage.Registry.INSTANCE.getEFactory(SensorPackage.eNS_URI);
+ if (theSensorFactory != null) {
+ return theSensorFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new SensorFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SensorFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case SensorPackage.HW_COMMON_SENSOR: return createHwCommonSensor();
+ case SensorPackage.HW_RFID_READER_SENSOR: return createHwRFIDReaderSensor();
+ case SensorPackage.HW_TAG: return createHwTag();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HwCommonSensor createHwCommonSensor() {
+ HwCommonSensorImpl hwCommonSensor = new HwCommonSensorImpl();
+ return hwCommonSensor;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HwRFIDReaderSensor createHwRFIDReaderSensor() {
+ HwRFIDReaderSensorImpl hwRFIDReaderSensor = new HwRFIDReaderSensorImpl();
+ return hwRFIDReaderSensor;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HwTag createHwTag() {
+ HwTagImpl hwTag = new HwTagImpl();
+ return hwTag;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SensorPackage getSensorPackage() {
+ return (SensorPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ public static SensorPackage getPackage() {
+ return SensorPackage.eINSTANCE;
+ }
+
+} //SensorFactoryImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/impl/SensorPackageImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/impl/SensorPackageImpl.java
new file mode 100644
index 0000000..d135ba2
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/impl/SensorPackageImpl.java
@@ -0,0 +1,378 @@
+/**
+ */
+package IoTML.Hardware.Sensor.impl;
+
+import IoTML.Animate.AnimatePackage;
+
+import IoTML.Animate.impl.AnimatePackageImpl;
+
+import IoTML.Hardware.Actuator.ActuatorPackage;
+
+import IoTML.Hardware.Actuator.impl.ActuatorPackageImpl;
+
+import IoTML.Hardware.Core.CorePackage;
+
+import IoTML.Hardware.Core.impl.CorePackageImpl;
+
+import IoTML.Hardware.Network.NetworkPackage;
+
+import IoTML.Hardware.Network.impl.NetworkPackageImpl;
+
+import IoTML.Hardware.Sensor.HwCommonSensor;
+import IoTML.Hardware.Sensor.HwRFIDReaderSensor;
+import IoTML.Hardware.Sensor.HwTag;
+import IoTML.Hardware.Sensor.SensorFactory;
+import IoTML.Hardware.Sensor.SensorPackage;
+
+import IoTML.Hybrid.HybridPackage;
+
+import IoTML.Hybrid.impl.HybridPackageImpl;
+
+import IoTML.Software.Artefact.ArtefactPackage;
+
+import IoTML.Software.Artefact.impl.ArtefactPackageImpl;
+
+import IoTML.Software.Core.Structure.StructurePackage;
+
+import IoTML.Software.Core.Structure.impl.StructurePackageImpl;
+
+import IoTML.Software.Resource.ResourcePackage;
+
+import IoTML.Software.Resource.impl.ResourcePackageImpl;
+
+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;
+
+import org.eclipse.papyrus.MARTE.MARTEPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwDevicePackage;
+
+import org.eclipse.papyrus.MARTE_Library.BasicNFP_Types.BasicNFP_TypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.GRM_BasicTypes.GRM_BasicTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_DataTypes.MARTE_DataTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_PrimitivesTypes.MARTE_PrimitivesTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MeasurementUnits.MeasurementUnitsPackage;
+
+import org.eclipse.papyrus.MARTE_Library.RS_Library.RS_LibraryPackage;
+
+import org.eclipse.papyrus.MARTE_Library.TimeLibrary.TimeLibraryPackage;
+
+import org.eclipse.papyrus.MARTE_Library.TimeTypesLibrary.TimeTypesLibraryPackage;
+
+import org.eclipse.papyrus.sysml14.blocks.BlocksPackage;
+
+import org.eclipse.papyrus.sysml14.sysmlPackage;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SensorPackageImpl extends EPackageImpl implements SensorPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hwCommonSensorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hwRFIDReaderSensorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hwTagEClass = 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 IoTML.Hardware.Sensor.SensorPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private SensorPackageImpl() {
+ super(eNS_URI, SensorFactory.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 SensorPackage#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 SensorPackage init() {
+ if (isInited) return (SensorPackage)EPackage.Registry.INSTANCE.getEPackage(SensorPackage.eNS_URI);
+
+ // Obtain or create and register package
+ SensorPackageImpl theSensorPackage = (SensorPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof SensorPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new SensorPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ MARTEPackage.eINSTANCE.eClass();
+ MeasurementUnitsPackage.eINSTANCE.eClass();
+ GRM_BasicTypesPackage.eINSTANCE.eClass();
+ MARTE_DataTypesPackage.eINSTANCE.eClass();
+ BasicNFP_TypesPackage.eINSTANCE.eClass();
+ TimeTypesLibraryPackage.eINSTANCE.eClass();
+ TimeLibraryPackage.eINSTANCE.eClass();
+ RS_LibraryPackage.eINSTANCE.eClass();
+ MARTE_PrimitivesTypesPackage.eINSTANCE.eClass();
+ sysmlPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ AnimatePackageImpl theAnimatePackage = (AnimatePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(AnimatePackage.eNS_URI) instanceof AnimatePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(AnimatePackage.eNS_URI) : AnimatePackage.eINSTANCE);
+ ActuatorPackageImpl theActuatorPackage = (ActuatorPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ActuatorPackage.eNS_URI) instanceof ActuatorPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ActuatorPackage.eNS_URI) : ActuatorPackage.eINSTANCE);
+ NetworkPackageImpl theNetworkPackage = (NetworkPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(NetworkPackage.eNS_URI) instanceof NetworkPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(NetworkPackage.eNS_URI) : NetworkPackage.eINSTANCE);
+ CorePackageImpl theCorePackage = (CorePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI) instanceof CorePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI) : CorePackage.eINSTANCE);
+ HybridPackageImpl theHybridPackage = (HybridPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(HybridPackage.eNS_URI) instanceof HybridPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(HybridPackage.eNS_URI) : HybridPackage.eINSTANCE);
+ ArtefactPackageImpl theArtefactPackage = (ArtefactPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ArtefactPackage.eNS_URI) instanceof ArtefactPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ArtefactPackage.eNS_URI) : ArtefactPackage.eINSTANCE);
+ StructurePackageImpl theStructurePackage = (StructurePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(StructurePackage.eNS_URI) instanceof StructurePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(StructurePackage.eNS_URI) : StructurePackage.eINSTANCE);
+ ResourcePackageImpl theResourcePackage = (ResourcePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ResourcePackage.eNS_URI) instanceof ResourcePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ResourcePackage.eNS_URI) : ResourcePackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theSensorPackage.createPackageContents();
+ theAnimatePackage.createPackageContents();
+ theActuatorPackage.createPackageContents();
+ theNetworkPackage.createPackageContents();
+ theCorePackage.createPackageContents();
+ theHybridPackage.createPackageContents();
+ theArtefactPackage.createPackageContents();
+ theStructurePackage.createPackageContents();
+ theResourcePackage.createPackageContents();
+
+ // Initialize created meta-data
+ theSensorPackage.initializePackageContents();
+ theAnimatePackage.initializePackageContents();
+ theActuatorPackage.initializePackageContents();
+ theNetworkPackage.initializePackageContents();
+ theCorePackage.initializePackageContents();
+ theHybridPackage.initializePackageContents();
+ theArtefactPackage.initializePackageContents();
+ theStructurePackage.initializePackageContents();
+ theResourcePackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theSensorPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(SensorPackage.eNS_URI, theSensorPackage);
+ return theSensorPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHwCommonSensor() {
+ return hwCommonSensorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHwCommonSensor_InputValueType() {
+ return (EReference)hwCommonSensorEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHwCommonSensor_OutputValueType() {
+ return (EReference)hwCommonSensorEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHwCommonSensor_Hwcommonsensor() {
+ return (EReference)hwCommonSensorEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHwCommonSensor_TransferFunction() {
+ return (EReference)hwCommonSensorEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHwRFIDReaderSensor() {
+ return hwRFIDReaderSensorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getHwRFIDReaderSensor_Tag() {
+ return (EReference)hwRFIDReaderSensorEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHwTag() {
+ return hwTagEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getHwTag_TageFrequency() {
+ return (EAttribute)hwTagEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SensorFactory getSensorFactory() {
+ return (SensorFactory)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
+ hwCommonSensorEClass = createEClass(HW_COMMON_SENSOR);
+ createEReference(hwCommonSensorEClass, HW_COMMON_SENSOR__INPUT_VALUE_TYPE);
+ createEReference(hwCommonSensorEClass, HW_COMMON_SENSOR__OUTPUT_VALUE_TYPE);
+ createEReference(hwCommonSensorEClass, HW_COMMON_SENSOR__HWCOMMONSENSOR);
+ createEReference(hwCommonSensorEClass, HW_COMMON_SENSOR__TRANSFER_FUNCTION);
+
+ hwRFIDReaderSensorEClass = createEClass(HW_RFID_READER_SENSOR);
+ createEReference(hwRFIDReaderSensorEClass, HW_RFID_READER_SENSOR__TAG);
+
+ hwTagEClass = createEClass(HW_TAG);
+ createEAttribute(hwTagEClass, HW_TAG__TAGE_FREQUENCY);
+ }
+
+ /**
+ * <!-- 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);
+
+ // Obtain other dependent packages
+ HwDevicePackage theHwDevicePackage = (HwDevicePackage)EPackage.Registry.INSTANCE.getEPackage(HwDevicePackage.eNS_URI);
+ BlocksPackage theBlocksPackage = (BlocksPackage)EPackage.Registry.INSTANCE.getEPackage(BlocksPackage.eNS_URI);
+ UMLPackage theUMLPackage = (UMLPackage)EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Add supertypes to classes
+ hwCommonSensorEClass.getESuperTypes().add(theHwDevicePackage.getHWSensor());
+ hwRFIDReaderSensorEClass.getESuperTypes().add(this.getHwCommonSensor());
+ hwTagEClass.getESuperTypes().add(theHwDevicePackage.getHwI_O());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(hwCommonSensorEClass, HwCommonSensor.class, "HwCommonSensor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getHwCommonSensor_InputValueType(), theBlocksPackage.getValueType(), null, "inputValueType", null, 0, 1, HwCommonSensor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getHwCommonSensor_OutputValueType(), theBlocksPackage.getValueType(), null, "outputValueType", null, 0, 1, HwCommonSensor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getHwCommonSensor_Hwcommonsensor(), this.getHwCommonSensor(), null, "hwcommonsensor", null, 1, 1, HwCommonSensor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getHwCommonSensor_TransferFunction(), theUMLPackage.getBehavior(), null, "transferFunction", null, 0, 1, HwCommonSensor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(hwRFIDReaderSensorEClass, HwRFIDReaderSensor.class, "HwRFIDReaderSensor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getHwRFIDReaderSensor_Tag(), this.getHwTag(), null, "tag", null, 0, -1, HwRFIDReaderSensor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(hwTagEClass, HwTag.class, "HwTag", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getHwTag_TageFrequency(), theTypesPackage.getReal(), "tageFrequency", null, 0, 1, HwTag.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //SensorPackageImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/util/SensorAdapterFactory.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/util/SensorAdapterFactory.java
new file mode 100644
index 0000000..1f4d398
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/util/SensorAdapterFactory.java
@@ -0,0 +1,279 @@
+/**
+ */
+package IoTML.Hardware.Sensor.util;
+
+import IoTML.Hardware.Sensor.*;
+
+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;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.HwResource;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HWSensor;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwDevice;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwI_O;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.DeviceResource;
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.ProcessingResource;
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.Resource;
+
+/**
+ * <!-- 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 IoTML.Hardware.Sensor.SensorPackage
+ * @generated
+ */
+public class SensorAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static SensorPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SensorAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = SensorPackage.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
+ */
+ 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 SensorSwitch modelSwitch =
+ new SensorSwitch() {
+ public Object caseHwCommonSensor(HwCommonSensor object) {
+ return createHwCommonSensorAdapter();
+ }
+ public Object caseHwRFIDReaderSensor(HwRFIDReaderSensor object) {
+ return createHwRFIDReaderSensorAdapter();
+ }
+ public Object caseHwTag(HwTag object) {
+ return createHwTagAdapter();
+ }
+ public Object caseResource(Resource object) {
+ return createResourceAdapter();
+ }
+ public Object caseHwResource(HwResource object) {
+ return createHwResourceAdapter();
+ }
+ public Object caseProcessingResource(ProcessingResource object) {
+ return createProcessingResourceAdapter();
+ }
+ public Object caseDeviceResource(DeviceResource object) {
+ return createDeviceResourceAdapter();
+ }
+ public Object caseHwDevice(HwDevice object) {
+ return createHwDeviceAdapter();
+ }
+ public Object caseHwI_O(HwI_O object) {
+ return createHwI_OAdapter();
+ }
+ public Object caseHWSensor(HWSensor object) {
+ return createHWSensorAdapter();
+ }
+ public Object 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
+ */
+ public Adapter createAdapter(Notifier target) {
+ return (Adapter)modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Hardware.Sensor.HwCommonSensor <em>Hw Common Sensor</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 IoTML.Hardware.Sensor.HwCommonSensor
+ * @generated
+ */
+ public Adapter createHwCommonSensorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Hardware.Sensor.HwRFIDReaderSensor <em>Hw RFID Reader Sensor</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 IoTML.Hardware.Sensor.HwRFIDReaderSensor
+ * @generated
+ */
+ public Adapter createHwRFIDReaderSensorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Hardware.Sensor.HwTag <em>Hw Tag</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 IoTML.Hardware.Sensor.HwTag
+ * @generated
+ */
+ public Adapter createHwTagAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.Resource <em>Resource</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 org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.Resource
+ * @generated
+ */
+ public Adapter createResourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.HwResource <em>Hw Resource</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 org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.HwResource
+ * @generated
+ */
+ public Adapter createHwResourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.ProcessingResource <em>Processing Resource</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 org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.ProcessingResource
+ * @generated
+ */
+ public Adapter createProcessingResourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.DeviceResource <em>Device Resource</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 org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.DeviceResource
+ * @generated
+ */
+ public Adapter createDeviceResourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwDevice <em>Hw Device</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 org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwDevice
+ * @generated
+ */
+ public Adapter createHwDeviceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwI_O <em>Hw IO</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 org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwI_O
+ * @generated
+ */
+ public Adapter createHwI_OAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HWSensor <em>HW Sensor</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 org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HWSensor
+ * @generated
+ */
+ public Adapter createHWSensorAdapter() {
+ 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;
+ }
+
+} //SensorAdapterFactory
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/util/SensorSwitch.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/util/SensorSwitch.java
new file mode 100644
index 0000000..44cdb7f
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hardware/Sensor/util/SensorSwitch.java
@@ -0,0 +1,304 @@
+/**
+ */
+package IoTML.Hardware.Sensor.util;
+
+import IoTML.Hardware.Sensor.*;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.HwResource;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HWSensor;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwDevice;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwLogical.HwDevice.HwI_O;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.DeviceResource;
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.ProcessingResource;
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.Resource;
+
+/**
+ * <!-- 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 IoTML.Hardware.Sensor.SensorPackage
+ * @generated
+ */
+public class SensorSwitch {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static SensorPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SensorSwitch() {
+ if (modelPackage == null) {
+ modelPackage = SensorPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * 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
+ */
+ public Object doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch((EClass)eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case SensorPackage.HW_COMMON_SENSOR: {
+ HwCommonSensor hwCommonSensor = (HwCommonSensor)theEObject;
+ Object result = caseHwCommonSensor(hwCommonSensor);
+ if (result == null) result = caseHWSensor(hwCommonSensor);
+ if (result == null) result = caseHwI_O(hwCommonSensor);
+ if (result == null) result = caseHwDevice(hwCommonSensor);
+ if (result == null) result = caseHwResource(hwCommonSensor);
+ if (result == null) result = caseDeviceResource(hwCommonSensor);
+ if (result == null) result = caseProcessingResource(hwCommonSensor);
+ if (result == null) result = caseResource(hwCommonSensor);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case SensorPackage.HW_RFID_READER_SENSOR: {
+ HwRFIDReaderSensor hwRFIDReaderSensor = (HwRFIDReaderSensor)theEObject;
+ Object result = caseHwRFIDReaderSensor(hwRFIDReaderSensor);
+ if (result == null) result = caseHwCommonSensor(hwRFIDReaderSensor);
+ if (result == null) result = caseHWSensor(hwRFIDReaderSensor);
+ if (result == null) result = caseHwI_O(hwRFIDReaderSensor);
+ if (result == null) result = caseHwDevice(hwRFIDReaderSensor);
+ if (result == null) result = caseHwResource(hwRFIDReaderSensor);
+ if (result == null) result = caseDeviceResource(hwRFIDReaderSensor);
+ if (result == null) result = caseProcessingResource(hwRFIDReaderSensor);
+ if (result == null) result = caseResource(hwRFIDReaderSensor);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case SensorPackage.HW_TAG: {
+ HwTag hwTag = (HwTag)theEObject;
+ Object result = caseHwTag(hwTag);
+ if (result == null) result = caseHwI_O(hwTag);
+ if (result == null) result = caseHwDevice(hwTag);
+ if (result == null) result = caseHwResource(hwTag);
+ if (result == null) result = caseDeviceResource(hwTag);
+ if (result == null) result = caseProcessingResource(hwTag);
+ if (result == null) result = caseResource(hwTag);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hw Common Sensor</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>Hw Common Sensor</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseHwCommonSensor(HwCommonSensor object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hw RFID Reader Sensor</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>Hw RFID Reader Sensor</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseHwRFIDReaderSensor(HwRFIDReaderSensor object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hw Tag</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>Hw Tag</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseHwTag(HwTag object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Resource</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>Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseResource(Resource object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hw Resource</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>Hw Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseHwResource(HwResource object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Processing Resource</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>Processing Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseProcessingResource(ProcessingResource object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Device Resource</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>Device Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDeviceResource(DeviceResource object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hw Device</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>Hw Device</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseHwDevice(HwDevice object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hw IO</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>Hw IO</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseHwI_O(HwI_O object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>HW Sensor</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>HW Sensor</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseHWSensor(HWSensor 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
+ */
+ public Object defaultCase(EObject object) {
+ return null;
+ }
+
+} //SensorSwitch
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/HybridFactory.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/HybridFactory.java
new file mode 100644
index 0000000..b25432a
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/HybridFactory.java
@@ -0,0 +1,42 @@
+/**
+ */
+package IoTML.Hybrid;
+
+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 IoTML.Hybrid.HybridPackage
+ * @generated
+ */
+public interface HybridFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ HybridFactory eINSTANCE = IoTML.Hybrid.impl.HybridFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Physical Entity</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Physical Entity</em>'.
+ * @generated
+ */
+ PhysicalEntity createPhysicalEntity();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ HybridPackage getHybridPackage();
+
+} //HybridFactory
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/HybridPackage.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/HybridPackage.java
new file mode 100644
index 0000000..d057eb5
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/HybridPackage.java
@@ -0,0 +1,248 @@
+/**
+ */
+package IoTML.Hybrid;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.HwGeneralPackage;
+
+/**
+ * <!-- 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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see IoTML.Hybrid.HybridFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface HybridPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Hybrid";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http:///IoTML/Hybrid.ecore";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "IoTML.Hybrid";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ HybridPackage eINSTANCE = IoTML.Hybrid.impl.HybridPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link IoTML.Hybrid.impl.PhysicalEntityImpl <em>Physical Entity</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hybrid.impl.PhysicalEntityImpl
+ * @see IoTML.Hybrid.impl.HybridPackageImpl#getPhysicalEntity()
+ * @generated
+ */
+ int PHYSICAL_ENTITY = 0;
+
+ /**
+ * The feature id for the '<em><b>Res Mult</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PHYSICAL_ENTITY__RES_MULT = HwGeneralPackage.HW_RESOURCE__RES_MULT;
+
+ /**
+ * The feature id for the '<em><b>Is Protected</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PHYSICAL_ENTITY__IS_PROTECTED = HwGeneralPackage.HW_RESOURCE__IS_PROTECTED;
+
+ /**
+ * The feature id for the '<em><b>Is Active</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PHYSICAL_ENTITY__IS_ACTIVE = HwGeneralPackage.HW_RESOURCE__IS_ACTIVE;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PHYSICAL_ENTITY__BASE_PROPERTY = HwGeneralPackage.HW_RESOURCE__BASE_PROPERTY;
+
+ /**
+ * The feature id for the '<em><b>Base Instance Specification</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PHYSICAL_ENTITY__BASE_INSTANCE_SPECIFICATION = HwGeneralPackage.HW_RESOURCE__BASE_INSTANCE_SPECIFICATION;
+
+ /**
+ * The feature id for the '<em><b>Base Classifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PHYSICAL_ENTITY__BASE_CLASSIFIER = HwGeneralPackage.HW_RESOURCE__BASE_CLASSIFIER;
+
+ /**
+ * The feature id for the '<em><b>Base Lifeline</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PHYSICAL_ENTITY__BASE_LIFELINE = HwGeneralPackage.HW_RESOURCE__BASE_LIFELINE;
+
+ /**
+ * The feature id for the '<em><b>Base Connectable Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PHYSICAL_ENTITY__BASE_CONNECTABLE_ELEMENT = HwGeneralPackage.HW_RESOURCE__BASE_CONNECTABLE_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PHYSICAL_ENTITY__DESCRIPTION = HwGeneralPackage.HW_RESOURCE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>PHW Services</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PHYSICAL_ENTITY__PHW_SERVICES = HwGeneralPackage.HW_RESOURCE__PHW_SERVICES;
+
+ /**
+ * The feature id for the '<em><b>RHW Services</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PHYSICAL_ENTITY__RHW_SERVICES = HwGeneralPackage.HW_RESOURCE__RHW_SERVICES;
+
+ /**
+ * The feature id for the '<em><b>Owned HW</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PHYSICAL_ENTITY__OWNED_HW = HwGeneralPackage.HW_RESOURCE__OWNED_HW;
+
+ /**
+ * The feature id for the '<em><b>End Points</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PHYSICAL_ENTITY__END_POINTS = HwGeneralPackage.HW_RESOURCE__END_POINTS;
+
+ /**
+ * The feature id for the '<em><b>Frequency</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PHYSICAL_ENTITY__FREQUENCY = HwGeneralPackage.HW_RESOURCE__FREQUENCY;
+
+ /**
+ * The number of structural features of the '<em>Physical Entity</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PHYSICAL_ENTITY_FEATURE_COUNT = HwGeneralPackage.HW_RESOURCE_FEATURE_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Hybrid.PhysicalEntity <em>Physical Entity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Physical Entity</em>'.
+ * @see IoTML.Hybrid.PhysicalEntity
+ * @generated
+ */
+ EClass getPhysicalEntity();
+
+ /**
+ * 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
+ */
+ HybridFactory getHybridFactory();
+
+ /**
+ * <!-- 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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link IoTML.Hybrid.impl.PhysicalEntityImpl <em>Physical Entity</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Hybrid.impl.PhysicalEntityImpl
+ * @see IoTML.Hybrid.impl.HybridPackageImpl#getPhysicalEntity()
+ * @generated
+ */
+ EClass PHYSICAL_ENTITY = eINSTANCE.getPhysicalEntity();
+
+ }
+
+} //HybridPackage
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/PhysicalEntity.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/PhysicalEntity.java
new file mode 100644
index 0000000..2e21d61
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/PhysicalEntity.java
@@ -0,0 +1,18 @@
+/**
+ */
+package IoTML.Hybrid;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.HwResource;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Physical Entity</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see IoTML.Hybrid.HybridPackage#getPhysicalEntity()
+ * @model
+ * @generated
+ */
+public interface PhysicalEntity extends HwResource {
+} // PhysicalEntity
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/impl/HybridFactoryImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/impl/HybridFactoryImpl.java
new file mode 100644
index 0000000..6a541c9
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/impl/HybridFactoryImpl.java
@@ -0,0 +1,93 @@
+/**
+ */
+package IoTML.Hybrid.impl;
+
+import IoTML.Hybrid.*;
+
+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 HybridFactoryImpl extends EFactoryImpl implements HybridFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static HybridFactory init() {
+ try {
+ HybridFactory theHybridFactory = (HybridFactory)EPackage.Registry.INSTANCE.getEFactory(HybridPackage.eNS_URI);
+ if (theHybridFactory != null) {
+ return theHybridFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new HybridFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HybridFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case HybridPackage.PHYSICAL_ENTITY: return createPhysicalEntity();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PhysicalEntity createPhysicalEntity() {
+ PhysicalEntityImpl physicalEntity = new PhysicalEntityImpl();
+ return physicalEntity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HybridPackage getHybridPackage() {
+ return (HybridPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ public static HybridPackage getPackage() {
+ return HybridPackage.eINSTANCE;
+ }
+
+} //HybridFactoryImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/impl/HybridPackageImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/impl/HybridPackageImpl.java
new file mode 100644
index 0000000..7ead031
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/impl/HybridPackageImpl.java
@@ -0,0 +1,257 @@
+/**
+ */
+package IoTML.Hybrid.impl;
+
+import IoTML.Animate.AnimatePackage;
+
+import IoTML.Animate.impl.AnimatePackageImpl;
+
+import IoTML.Hardware.Actuator.ActuatorPackage;
+
+import IoTML.Hardware.Actuator.impl.ActuatorPackageImpl;
+
+import IoTML.Hardware.Core.CorePackage;
+
+import IoTML.Hardware.Core.impl.CorePackageImpl;
+
+import IoTML.Hardware.Network.NetworkPackage;
+
+import IoTML.Hardware.Network.impl.NetworkPackageImpl;
+
+import IoTML.Hardware.Sensor.SensorPackage;
+
+import IoTML.Hardware.Sensor.impl.SensorPackageImpl;
+
+import IoTML.Hybrid.HybridFactory;
+import IoTML.Hybrid.HybridPackage;
+import IoTML.Hybrid.PhysicalEntity;
+
+import IoTML.Software.Artefact.ArtefactPackage;
+
+import IoTML.Software.Artefact.impl.ArtefactPackageImpl;
+
+import IoTML.Software.Core.Structure.StructurePackage;
+
+import IoTML.Software.Core.Structure.impl.StructurePackageImpl;
+
+import IoTML.Software.Resource.ResourcePackage;
+
+import IoTML.Software.Resource.impl.ResourcePackageImpl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTEPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.HwGeneralPackage;
+
+import org.eclipse.papyrus.MARTE_Library.BasicNFP_Types.BasicNFP_TypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.GRM_BasicTypes.GRM_BasicTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_DataTypes.MARTE_DataTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_PrimitivesTypes.MARTE_PrimitivesTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MeasurementUnits.MeasurementUnitsPackage;
+
+import org.eclipse.papyrus.MARTE_Library.RS_Library.RS_LibraryPackage;
+
+import org.eclipse.papyrus.MARTE_Library.TimeLibrary.TimeLibraryPackage;
+
+import org.eclipse.papyrus.MARTE_Library.TimeTypesLibrary.TimeTypesLibraryPackage;
+
+import org.eclipse.papyrus.sysml14.sysmlPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class HybridPackageImpl extends EPackageImpl implements HybridPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass physicalEntityEClass = 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 IoTML.Hybrid.HybridPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private HybridPackageImpl() {
+ super(eNS_URI, HybridFactory.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 HybridPackage#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 HybridPackage init() {
+ if (isInited) return (HybridPackage)EPackage.Registry.INSTANCE.getEPackage(HybridPackage.eNS_URI);
+
+ // Obtain or create and register package
+ HybridPackageImpl theHybridPackage = (HybridPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof HybridPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new HybridPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ MARTEPackage.eINSTANCE.eClass();
+ MeasurementUnitsPackage.eINSTANCE.eClass();
+ GRM_BasicTypesPackage.eINSTANCE.eClass();
+ MARTE_DataTypesPackage.eINSTANCE.eClass();
+ BasicNFP_TypesPackage.eINSTANCE.eClass();
+ TimeTypesLibraryPackage.eINSTANCE.eClass();
+ TimeLibraryPackage.eINSTANCE.eClass();
+ RS_LibraryPackage.eINSTANCE.eClass();
+ MARTE_PrimitivesTypesPackage.eINSTANCE.eClass();
+ sysmlPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ AnimatePackageImpl theAnimatePackage = (AnimatePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(AnimatePackage.eNS_URI) instanceof AnimatePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(AnimatePackage.eNS_URI) : AnimatePackage.eINSTANCE);
+ ActuatorPackageImpl theActuatorPackage = (ActuatorPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ActuatorPackage.eNS_URI) instanceof ActuatorPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ActuatorPackage.eNS_URI) : ActuatorPackage.eINSTANCE);
+ SensorPackageImpl theSensorPackage = (SensorPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SensorPackage.eNS_URI) instanceof SensorPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SensorPackage.eNS_URI) : SensorPackage.eINSTANCE);
+ NetworkPackageImpl theNetworkPackage = (NetworkPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(NetworkPackage.eNS_URI) instanceof NetworkPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(NetworkPackage.eNS_URI) : NetworkPackage.eINSTANCE);
+ CorePackageImpl theCorePackage = (CorePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI) instanceof CorePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI) : CorePackage.eINSTANCE);
+ ArtefactPackageImpl theArtefactPackage = (ArtefactPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ArtefactPackage.eNS_URI) instanceof ArtefactPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ArtefactPackage.eNS_URI) : ArtefactPackage.eINSTANCE);
+ StructurePackageImpl theStructurePackage = (StructurePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(StructurePackage.eNS_URI) instanceof StructurePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(StructurePackage.eNS_URI) : StructurePackage.eINSTANCE);
+ ResourcePackageImpl theResourcePackage = (ResourcePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ResourcePackage.eNS_URI) instanceof ResourcePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ResourcePackage.eNS_URI) : ResourcePackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theHybridPackage.createPackageContents();
+ theAnimatePackage.createPackageContents();
+ theActuatorPackage.createPackageContents();
+ theSensorPackage.createPackageContents();
+ theNetworkPackage.createPackageContents();
+ theCorePackage.createPackageContents();
+ theArtefactPackage.createPackageContents();
+ theStructurePackage.createPackageContents();
+ theResourcePackage.createPackageContents();
+
+ // Initialize created meta-data
+ theHybridPackage.initializePackageContents();
+ theAnimatePackage.initializePackageContents();
+ theActuatorPackage.initializePackageContents();
+ theSensorPackage.initializePackageContents();
+ theNetworkPackage.initializePackageContents();
+ theCorePackage.initializePackageContents();
+ theArtefactPackage.initializePackageContents();
+ theStructurePackage.initializePackageContents();
+ theResourcePackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theHybridPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(HybridPackage.eNS_URI, theHybridPackage);
+ return theHybridPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPhysicalEntity() {
+ return physicalEntityEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HybridFactory getHybridFactory() {
+ return (HybridFactory)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
+ physicalEntityEClass = createEClass(PHYSICAL_ENTITY);
+ }
+
+ /**
+ * <!-- 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);
+
+ // Obtain other dependent packages
+ HwGeneralPackage theHwGeneralPackage = (HwGeneralPackage)EPackage.Registry.INSTANCE.getEPackage(HwGeneralPackage.eNS_URI);
+
+ // Add supertypes to classes
+ physicalEntityEClass.getESuperTypes().add(theHwGeneralPackage.getHwResource());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(physicalEntityEClass, PhysicalEntity.class, "PhysicalEntity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //HybridPackageImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/impl/PhysicalEntityImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/impl/PhysicalEntityImpl.java
new file mode 100644
index 0000000..f71fb19
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/impl/PhysicalEntityImpl.java
@@ -0,0 +1,38 @@
+/**
+ */
+package IoTML.Hybrid.impl;
+
+import IoTML.Hybrid.HybridPackage;
+import IoTML.Hybrid.PhysicalEntity;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.impl.HwResourceImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Physical Entity</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class PhysicalEntityImpl extends HwResourceImpl implements PhysicalEntity {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PhysicalEntityImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return HybridPackage.Literals.PHYSICAL_ENTITY;
+ }
+
+} //PhysicalEntityImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/util/HybridAdapterFactory.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/util/HybridAdapterFactory.java
new file mode 100644
index 0000000..a484fe0
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/util/HybridAdapterFactory.java
@@ -0,0 +1,154 @@
+/**
+ */
+package IoTML.Hybrid.util;
+
+import IoTML.Hybrid.*;
+
+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;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.HwResource;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.Resource;
+
+/**
+ * <!-- 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 IoTML.Hybrid.HybridPackage
+ * @generated
+ */
+public class HybridAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static HybridPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HybridAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = HybridPackage.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
+ */
+ 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 HybridSwitch modelSwitch =
+ new HybridSwitch() {
+ public Object casePhysicalEntity(PhysicalEntity object) {
+ return createPhysicalEntityAdapter();
+ }
+ public Object caseResource(Resource object) {
+ return createResourceAdapter();
+ }
+ public Object caseHwResource(HwResource object) {
+ return createHwResourceAdapter();
+ }
+ public Object 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
+ */
+ public Adapter createAdapter(Notifier target) {
+ return (Adapter)modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Hybrid.PhysicalEntity <em>Physical Entity</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 IoTML.Hybrid.PhysicalEntity
+ * @generated
+ */
+ public Adapter createPhysicalEntityAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.Resource <em>Resource</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 org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.Resource
+ * @generated
+ */
+ public Adapter createResourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.HwResource <em>Hw Resource</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 org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.HwResource
+ * @generated
+ */
+ public Adapter createHwResourceAdapter() {
+ 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;
+ }
+
+} //HybridAdapterFactory
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/util/HybridSwitch.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/util/HybridSwitch.java
new file mode 100644
index 0000000..82fd103
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Hybrid/util/HybridSwitch.java
@@ -0,0 +1,162 @@
+/**
+ */
+package IoTML.Hybrid.util;
+
+import IoTML.Hybrid.*;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.HRM.HwGeneral.HwResource;
+
+import org.eclipse.papyrus.MARTE.MARTE_Foundations.GRM.Resource;
+
+/**
+ * <!-- 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 IoTML.Hybrid.HybridPackage
+ * @generated
+ */
+public class HybridSwitch {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static HybridPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HybridSwitch() {
+ if (modelPackage == null) {
+ modelPackage = HybridPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * 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
+ */
+ public Object doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch((EClass)eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case HybridPackage.PHYSICAL_ENTITY: {
+ PhysicalEntity physicalEntity = (PhysicalEntity)theEObject;
+ Object result = casePhysicalEntity(physicalEntity);
+ if (result == null) result = caseHwResource(physicalEntity);
+ if (result == null) result = caseResource(physicalEntity);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Physical Entity</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>Physical Entity</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object casePhysicalEntity(PhysicalEntity object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Resource</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>Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseResource(Resource object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hw Resource</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>Hw Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseHwResource(HwResource 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
+ */
+ public Object defaultCase(EObject object) {
+ return null;
+ }
+
+} //HybridSwitch
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/ArtefactFactory.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/ArtefactFactory.java
new file mode 100644
index 0000000..891bac7
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/ArtefactFactory.java
@@ -0,0 +1,96 @@
+/**
+ */
+package IoTML.Software.Artefact;
+
+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 IoTML.Software.Artefact.ArtefactPackage
+ * @generated
+ */
+public interface ArtefactFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ArtefactFactory eINSTANCE = IoTML.Software.Artefact.impl.ArtefactFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Property Access</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Property Access</em>'.
+ * @generated
+ */
+ PropertyAccess createPropertyAccess();
+
+ /**
+ * Returns a new object of class '<em>Digital Artefact</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Digital Artefact</em>'.
+ * @generated
+ */
+ DigitalArtefact createDigitalArtefact();
+
+ /**
+ * Returns a new object of class '<em>Virtual Entity</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Virtual Entity</em>'.
+ * @generated
+ */
+ VirtualEntity createVirtualEntity();
+
+ /**
+ * Returns a new object of class '<em>Provide Service</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Provide Service</em>'.
+ * @generated
+ */
+ ProvideService createProvideService();
+
+ /**
+ * Returns a new object of class '<em>Provide Resource</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Provide Resource</em>'.
+ * @generated
+ */
+ ProvideResource createProvideResource();
+
+ /**
+ * Returns a new object of class '<em>Service Description</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Service Description</em>'.
+ * @generated
+ */
+ ServiceDescription createServiceDescription();
+
+ /**
+ * Returns a new object of class '<em>Service</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Service</em>'.
+ * @generated
+ */
+ Service createService();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ ArtefactPackage getArtefactPackage();
+
+} //ArtefactFactory
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/ArtefactPackage.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/ArtefactPackage.java
new file mode 100644
index 0000000..55db454
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/ArtefactPackage.java
@@ -0,0 +1,625 @@
+/**
+ */
+package IoTML.Software.Artefact;
+
+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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Artefact.ArtefactFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface ArtefactPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Artefact";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http:///IoTML/Software/Artefact.ecore";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "IoTML.Software.Artefact";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ArtefactPackage eINSTANCE = IoTML.Software.Artefact.impl.ArtefactPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link IoTML.Software.Artefact.impl.PropertyAccessImpl <em>Property Access</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Artefact.impl.PropertyAccessImpl
+ * @see IoTML.Software.Artefact.impl.ArtefactPackageImpl#getPropertyAccess()
+ * @generated
+ */
+ int PROPERTY_ACCESS = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Association</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_ACCESS__BASE_ASSOCIATION = 0;
+
+ /**
+ * The feature id for the '<em><b>Accessed Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_ACCESS__ACCESSED_PROPERTY = 1;
+
+ /**
+ * The number of structural features of the '<em>Property Access</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_ACCESS_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link IoTML.Software.Artefact.impl.DigitalArtefactImpl <em>Digital Artefact</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Artefact.impl.DigitalArtefactImpl
+ * @see IoTML.Software.Artefact.impl.ArtefactPackageImpl#getDigitalArtefact()
+ * @generated
+ */
+ int DIGITAL_ARTEFACT = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIGITAL_ARTEFACT__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Digital Artefact</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIGITAL_ARTEFACT_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link IoTML.Software.Artefact.impl.VirtualEntityImpl <em>Virtual Entity</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Artefact.impl.VirtualEntityImpl
+ * @see IoTML.Software.Artefact.impl.ArtefactPackageImpl#getVirtualEntity()
+ * @generated
+ */
+ int VIRTUAL_ENTITY = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIRTUAL_ENTITY__BASE_CLASS = DIGITAL_ARTEFACT__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Phisical Entity Specification</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIRTUAL_ENTITY__PHISICAL_ENTITY_SPECIFICATION = DIGITAL_ARTEFACT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Physical Entity</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIRTUAL_ENTITY__PHYSICAL_ENTITY = DIGITAL_ARTEFACT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Virtual Entity</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIRTUAL_ENTITY_FEATURE_COUNT = DIGITAL_ARTEFACT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link IoTML.Software.Artefact.impl.ProvideServiceImpl <em>Provide Service</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Artefact.impl.ProvideServiceImpl
+ * @see IoTML.Software.Artefact.impl.ArtefactPackageImpl#getProvideService()
+ * @generated
+ */
+ int PROVIDE_SERVICE = 3;
+
+ /**
+ * The feature id for the '<em><b>Base Association</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROVIDE_SERVICE__BASE_ASSOCIATION = 0;
+
+ /**
+ * The number of structural features of the '<em>Provide Service</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROVIDE_SERVICE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link IoTML.Software.Artefact.impl.ProvideResourceImpl <em>Provide Resource</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Artefact.impl.ProvideResourceImpl
+ * @see IoTML.Software.Artefact.impl.ArtefactPackageImpl#getProvideResource()
+ * @generated
+ */
+ int PROVIDE_RESOURCE = 4;
+
+ /**
+ * The feature id for the '<em><b>Base Association</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROVIDE_RESOURCE__BASE_ASSOCIATION = 0;
+
+ /**
+ * The number of structural features of the '<em>Provide Resource</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROVIDE_RESOURCE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link IoTML.Software.Artefact.impl.ServiceDescriptionImpl <em>Service Description</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Artefact.impl.ServiceDescriptionImpl
+ * @see IoTML.Software.Artefact.impl.ArtefactPackageImpl#getServiceDescription()
+ * @generated
+ */
+ int SERVICE_DESCRIPTION = 5;
+
+ /**
+ * The feature id for the '<em><b>Base Interface</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVICE_DESCRIPTION__BASE_INTERFACE = 0;
+
+ /**
+ * The feature id for the '<em><b>Resource Get Set</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVICE_DESCRIPTION__RESOURCE_GET_SET = 1;
+
+ /**
+ * The number of structural features of the '<em>Service Description</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVICE_DESCRIPTION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link IoTML.Software.Artefact.impl.ServiceImpl <em>Service</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Artefact.impl.ServiceImpl
+ * @see IoTML.Software.Artefact.impl.ArtefactPackageImpl#getService()
+ * @generated
+ */
+ int SERVICE = 6;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVICE__BASE_CLASS = DIGITAL_ARTEFACT__BASE_CLASS;
+
+ /**
+ * The number of structural features of the '<em>Service</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVICE_FEATURE_COUNT = DIGITAL_ARTEFACT_FEATURE_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Software.Artefact.PropertyAccess <em>Property Access</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Property Access</em>'.
+ * @see IoTML.Software.Artefact.PropertyAccess
+ * @generated
+ */
+ EClass getPropertyAccess();
+
+ /**
+ * Returns the meta object for the reference '{@link IoTML.Software.Artefact.PropertyAccess#getBase_Association <em>Base Association</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Association</em>'.
+ * @see IoTML.Software.Artefact.PropertyAccess#getBase_Association()
+ * @see #getPropertyAccess()
+ * @generated
+ */
+ EReference getPropertyAccess_Base_Association();
+
+ /**
+ * Returns the meta object for the reference '{@link IoTML.Software.Artefact.PropertyAccess#getAccessedProperty <em>Accessed Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Accessed Property</em>'.
+ * @see IoTML.Software.Artefact.PropertyAccess#getAccessedProperty()
+ * @see #getPropertyAccess()
+ * @generated
+ */
+ EReference getPropertyAccess_AccessedProperty();
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Software.Artefact.DigitalArtefact <em>Digital Artefact</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Digital Artefact</em>'.
+ * @see IoTML.Software.Artefact.DigitalArtefact
+ * @generated
+ */
+ EClass getDigitalArtefact();
+
+ /**
+ * Returns the meta object for the reference '{@link IoTML.Software.Artefact.DigitalArtefact#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see IoTML.Software.Artefact.DigitalArtefact#getBase_Class()
+ * @see #getDigitalArtefact()
+ * @generated
+ */
+ EReference getDigitalArtefact_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Software.Artefact.VirtualEntity <em>Virtual Entity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Virtual Entity</em>'.
+ * @see IoTML.Software.Artefact.VirtualEntity
+ * @generated
+ */
+ EClass getVirtualEntity();
+
+ /**
+ * Returns the meta object for the reference '{@link IoTML.Software.Artefact.VirtualEntity#getPhisicalEntitySpecification <em>Phisical Entity Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Phisical Entity Specification</em>'.
+ * @see IoTML.Software.Artefact.VirtualEntity#getPhisicalEntitySpecification()
+ * @see #getVirtualEntity()
+ * @generated
+ */
+ EReference getVirtualEntity_PhisicalEntitySpecification();
+
+ /**
+ * Returns the meta object for the reference '{@link IoTML.Software.Artefact.VirtualEntity#getPhysicalEntity <em>Physical Entity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Physical Entity</em>'.
+ * @see IoTML.Software.Artefact.VirtualEntity#getPhysicalEntity()
+ * @see #getVirtualEntity()
+ * @generated
+ */
+ EReference getVirtualEntity_PhysicalEntity();
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Software.Artefact.ProvideService <em>Provide Service</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Provide Service</em>'.
+ * @see IoTML.Software.Artefact.ProvideService
+ * @generated
+ */
+ EClass getProvideService();
+
+ /**
+ * Returns the meta object for the reference '{@link IoTML.Software.Artefact.ProvideService#getBase_Association <em>Base Association</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Association</em>'.
+ * @see IoTML.Software.Artefact.ProvideService#getBase_Association()
+ * @see #getProvideService()
+ * @generated
+ */
+ EReference getProvideService_Base_Association();
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Software.Artefact.ProvideResource <em>Provide Resource</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Provide Resource</em>'.
+ * @see IoTML.Software.Artefact.ProvideResource
+ * @generated
+ */
+ EClass getProvideResource();
+
+ /**
+ * Returns the meta object for the reference '{@link IoTML.Software.Artefact.ProvideResource#getBase_Association <em>Base Association</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Association</em>'.
+ * @see IoTML.Software.Artefact.ProvideResource#getBase_Association()
+ * @see #getProvideResource()
+ * @generated
+ */
+ EReference getProvideResource_Base_Association();
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Software.Artefact.ServiceDescription <em>Service Description</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Service Description</em>'.
+ * @see IoTML.Software.Artefact.ServiceDescription
+ * @generated
+ */
+ EClass getServiceDescription();
+
+ /**
+ * Returns the meta object for the reference '{@link IoTML.Software.Artefact.ServiceDescription#getBase_Interface <em>Base Interface</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Interface</em>'.
+ * @see IoTML.Software.Artefact.ServiceDescription#getBase_Interface()
+ * @see #getServiceDescription()
+ * @generated
+ */
+ EReference getServiceDescription_Base_Interface();
+
+ /**
+ * Returns the meta object for the reference list '{@link IoTML.Software.Artefact.ServiceDescription#getResourceGetSet <em>Resource Get Set</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Resource Get Set</em>'.
+ * @see IoTML.Software.Artefact.ServiceDescription#getResourceGetSet()
+ * @see #getServiceDescription()
+ * @generated
+ */
+ EReference getServiceDescription_ResourceGetSet();
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Software.Artefact.Service <em>Service</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Service</em>'.
+ * @see IoTML.Software.Artefact.Service
+ * @generated
+ */
+ EClass getService();
+
+ /**
+ * 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
+ */
+ ArtefactFactory getArtefactFactory();
+
+ /**
+ * <!-- 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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link IoTML.Software.Artefact.impl.PropertyAccessImpl <em>Property Access</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Artefact.impl.PropertyAccessImpl
+ * @see IoTML.Software.Artefact.impl.ArtefactPackageImpl#getPropertyAccess()
+ * @generated
+ */
+ EClass PROPERTY_ACCESS = eINSTANCE.getPropertyAccess();
+
+ /**
+ * The meta object literal for the '<em><b>Base Association</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PROPERTY_ACCESS__BASE_ASSOCIATION = eINSTANCE.getPropertyAccess_Base_Association();
+
+ /**
+ * The meta object literal for the '<em><b>Accessed Property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PROPERTY_ACCESS__ACCESSED_PROPERTY = eINSTANCE.getPropertyAccess_AccessedProperty();
+
+ /**
+ * The meta object literal for the '{@link IoTML.Software.Artefact.impl.DigitalArtefactImpl <em>Digital Artefact</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Artefact.impl.DigitalArtefactImpl
+ * @see IoTML.Software.Artefact.impl.ArtefactPackageImpl#getDigitalArtefact()
+ * @generated
+ */
+ EClass DIGITAL_ARTEFACT = eINSTANCE.getDigitalArtefact();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DIGITAL_ARTEFACT__BASE_CLASS = eINSTANCE.getDigitalArtefact_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link IoTML.Software.Artefact.impl.VirtualEntityImpl <em>Virtual Entity</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Artefact.impl.VirtualEntityImpl
+ * @see IoTML.Software.Artefact.impl.ArtefactPackageImpl#getVirtualEntity()
+ * @generated
+ */
+ EClass VIRTUAL_ENTITY = eINSTANCE.getVirtualEntity();
+
+ /**
+ * The meta object literal for the '<em><b>Phisical Entity Specification</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference VIRTUAL_ENTITY__PHISICAL_ENTITY_SPECIFICATION = eINSTANCE.getVirtualEntity_PhisicalEntitySpecification();
+
+ /**
+ * The meta object literal for the '<em><b>Physical Entity</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference VIRTUAL_ENTITY__PHYSICAL_ENTITY = eINSTANCE.getVirtualEntity_PhysicalEntity();
+
+ /**
+ * The meta object literal for the '{@link IoTML.Software.Artefact.impl.ProvideServiceImpl <em>Provide Service</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Artefact.impl.ProvideServiceImpl
+ * @see IoTML.Software.Artefact.impl.ArtefactPackageImpl#getProvideService()
+ * @generated
+ */
+ EClass PROVIDE_SERVICE = eINSTANCE.getProvideService();
+
+ /**
+ * The meta object literal for the '<em><b>Base Association</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PROVIDE_SERVICE__BASE_ASSOCIATION = eINSTANCE.getProvideService_Base_Association();
+
+ /**
+ * The meta object literal for the '{@link IoTML.Software.Artefact.impl.ProvideResourceImpl <em>Provide Resource</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Artefact.impl.ProvideResourceImpl
+ * @see IoTML.Software.Artefact.impl.ArtefactPackageImpl#getProvideResource()
+ * @generated
+ */
+ EClass PROVIDE_RESOURCE = eINSTANCE.getProvideResource();
+
+ /**
+ * The meta object literal for the '<em><b>Base Association</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PROVIDE_RESOURCE__BASE_ASSOCIATION = eINSTANCE.getProvideResource_Base_Association();
+
+ /**
+ * The meta object literal for the '{@link IoTML.Software.Artefact.impl.ServiceDescriptionImpl <em>Service Description</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Artefact.impl.ServiceDescriptionImpl
+ * @see IoTML.Software.Artefact.impl.ArtefactPackageImpl#getServiceDescription()
+ * @generated
+ */
+ EClass SERVICE_DESCRIPTION = eINSTANCE.getServiceDescription();
+
+ /**
+ * The meta object literal for the '<em><b>Base Interface</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SERVICE_DESCRIPTION__BASE_INTERFACE = eINSTANCE.getServiceDescription_Base_Interface();
+
+ /**
+ * The meta object literal for the '<em><b>Resource Get Set</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SERVICE_DESCRIPTION__RESOURCE_GET_SET = eINSTANCE.getServiceDescription_ResourceGetSet();
+
+ /**
+ * The meta object literal for the '{@link IoTML.Software.Artefact.impl.ServiceImpl <em>Service</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Artefact.impl.ServiceImpl
+ * @see IoTML.Software.Artefact.impl.ArtefactPackageImpl#getService()
+ * @generated
+ */
+ EClass SERVICE = eINSTANCE.getService();
+
+ }
+
+} //ArtefactPackage
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/DigitalArtefact.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/DigitalArtefact.java
new file mode 100644
index 0000000..7d33a86
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/DigitalArtefact.java
@@ -0,0 +1,50 @@
+/**
+ */
+package IoTML.Software.Artefact;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Digital Artefact</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Software.Artefact.DigitalArtefact#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see IoTML.Software.Artefact.ArtefactPackage#getDigitalArtefact()
+ * @model
+ * @generated
+ */
+public interface DigitalArtefact extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see IoTML.Software.Artefact.ArtefactPackage#getDigitalArtefact_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link IoTML.Software.Artefact.DigitalArtefact#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // DigitalArtefact
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/PropertyAccess.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/PropertyAccess.java
new file mode 100644
index 0000000..8659d36
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/PropertyAccess.java
@@ -0,0 +1,123 @@
+/**
+ */
+package IoTML.Software.Artefact;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Association;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Property Access</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Software.Artefact.PropertyAccess#getBase_Association <em>Base Association</em>}</li>
+ * <li>{@link IoTML.Software.Artefact.PropertyAccess#getAccessedProperty <em>Accessed Property</em>}</li>
+ * </ul>
+ *
+ * @see IoTML.Software.Artefact.ArtefactPackage#getPropertyAccess()
+ * @model
+ * @generated
+ */
+public interface PropertyAccess extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Association</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Association</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Association</em>' reference.
+ * @see #setBase_Association(Association)
+ * @see IoTML.Software.Artefact.ArtefactPackage#getPropertyAccess_Base_Association()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Association getBase_Association();
+
+ /**
+ * Sets the value of the '{@link IoTML.Software.Artefact.PropertyAccess#getBase_Association <em>Base Association</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Association</em>' reference.
+ * @see #getBase_Association()
+ * @generated
+ */
+ void setBase_Association(Association value);
+
+ /**
+ * Returns the value of the '<em><b>Accessed Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Accessed Property</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Accessed Property</em>' reference.
+ * @see #setAccessedProperty(Property)
+ * @see IoTML.Software.Artefact.ArtefactPackage#getPropertyAccess_AccessedProperty()
+ * @model ordered="false"
+ * @generated
+ */
+ Property getAccessedProperty();
+
+ /**
+ * Sets the value of the '{@link IoTML.Software.Artefact.PropertyAccess#getAccessedProperty <em>Accessed Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Accessed Property</em>' reference.
+ * @see #getAccessedProperty()
+ * @generated
+ */
+ void setAccessedProperty(Property value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.accessedProperty.type.oclIsKindOf(VirtualEntity)
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ boolean PropertyAccess_C1(DiagnosticChain diagnostics, Map context);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Association.ownedEnd->one(p | p.type.oclIsKindOf(VirtualEntity)) and self.base_Association.ownedEnd->one(p | p.type.oclIsKindOf(PhysicalEntity))
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ boolean PropertyAccess_C2(DiagnosticChain diagnostics, Map context);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Association.navigableOwnedEnd->one(p | p.type.oclIsKindOf(PhysicalEntity))
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ boolean propertyAccess_C3(DiagnosticChain diagnostics, Map context);
+
+} // PropertyAccess
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/ProvideResource.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/ProvideResource.java
new file mode 100644
index 0000000..0f5f3b8
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/ProvideResource.java
@@ -0,0 +1,82 @@
+/**
+ */
+package IoTML.Software.Artefact;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Association;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Provide Resource</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Software.Artefact.ProvideResource#getBase_Association <em>Base Association</em>}</li>
+ * </ul>
+ *
+ * @see IoTML.Software.Artefact.ArtefactPackage#getProvideResource()
+ * @model
+ * @generated
+ */
+public interface ProvideResource extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Association</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Association</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Association</em>' reference.
+ * @see #setBase_Association(Association)
+ * @see IoTML.Software.Artefact.ArtefactPackage#getProvideResource_Base_Association()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Association getBase_Association();
+
+ /**
+ * Sets the value of the '{@link IoTML.Software.Artefact.ProvideResource#getBase_Association <em>Base Association</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Association</em>' reference.
+ * @see #getBase_Association()
+ * @generated
+ */
+ void setBase_Association(Association value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Association.ownedEnd->one(p | p.type.oclIsKindOf(ServiceDescription))
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ boolean ProvideResource_C1(DiagnosticChain diagnostics, Map context);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Association.memberEnd->one(p | p.type.oclIsKindOf(ResourceDescription) and p.owningAssociation = null and and p.aggregationKind = UML::AggregationKind::shared)
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ boolean ProvideResource_C2(DiagnosticChain diagnostics, Map context);
+
+} // ProvideResource
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/ProvideService.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/ProvideService.java
new file mode 100644
index 0000000..cc837bb
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/ProvideService.java
@@ -0,0 +1,82 @@
+/**
+ */
+package IoTML.Software.Artefact;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Association;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Provide Service</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Software.Artefact.ProvideService#getBase_Association <em>Base Association</em>}</li>
+ * </ul>
+ *
+ * @see IoTML.Software.Artefact.ArtefactPackage#getProvideService()
+ * @model
+ * @generated
+ */
+public interface ProvideService extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Association</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Association</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Association</em>' reference.
+ * @see #setBase_Association(Association)
+ * @see IoTML.Software.Artefact.ArtefactPackage#getProvideService_Base_Association()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Association getBase_Association();
+
+ /**
+ * Sets the value of the '{@link IoTML.Software.Artefact.ProvideService#getBase_Association <em>Base Association</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Association</em>' reference.
+ * @see #getBase_Association()
+ * @generated
+ */
+ void setBase_Association(Association value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Association.memberEnd->one(p | p.type.oclIsKindOf(Service) and p.owningAssociation = null and and p.aggregationKind = UML::AggregationKind::shared)
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ boolean ProvideService_C2(DiagnosticChain diagnostics, Map context);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * self.base_Association.ownedEnd->one(p | p.type.oclIsKindOf(VirtualEntity))
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ boolean ProvideService_C1(DiagnosticChain diagnostics, Map context);
+
+} // ProvideService
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/Service.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/Service.java
new file mode 100644
index 0000000..03301b7
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/Service.java
@@ -0,0 +1,33 @@
+/**
+ */
+package IoTML.Software.Artefact;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Service</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see IoTML.Software.Artefact.ArtefactPackage#getService()
+ * @model
+ * @generated
+ */
+public interface Service extends DigitalArtefact {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * not self.base_Class.classifierBehavior.oclIsUndefined() and self.base_Class.isActive = true
+ * @param diagnostics The chain of diagnostics to which problems are to be appended.
+ * @param context The cache of context-specific information.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ boolean Service_C1(DiagnosticChain diagnostics, Map context);
+
+} // Service
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/ServiceDescription.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/ServiceDescription.java
new file mode 100644
index 0000000..459078b
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/ServiceDescription.java
@@ -0,0 +1,99 @@
+/**
+ */
+package IoTML.Software.Artefact;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Operation;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Service Description</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Software.Artefact.ServiceDescription#getBase_Interface <em>Base Interface</em>}</li>
+ * <li>{@link IoTML.Software.Artefact.ServiceDescription#getResourceGetSet <em>Resource Get Set</em>}</li>
+ * </ul>
+ *
+ * @see IoTML.Software.Artefact.ArtefactPackage#getServiceDescription()
+ * @model
+ * @generated
+ */
+public interface ServiceDescription extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Interface</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Interface</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Interface</em>' reference.
+ * @see #setBase_Interface(Interface)
+ * @see IoTML.Software.Artefact.ArtefactPackage#getServiceDescription_Base_Interface()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Interface getBase_Interface();
+
+ /**
+ * Sets the value of the '{@link IoTML.Software.Artefact.ServiceDescription#getBase_Interface <em>Base Interface</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Interface</em>' reference.
+ * @see #getBase_Interface()
+ * @generated
+ */
+ void setBase_Interface(Interface value);
+
+ /**
+ * Returns the value of the '<em><b>Resource Get Set</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.uml2.uml.Operation}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Resource Get Set</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Resource Get Set</em>' reference list.
+ * @see IoTML.Software.Artefact.ArtefactPackage#getServiceDescription_ResourceGetSet()
+ * @model type="org.eclipse.uml2.uml.Operation" ordered="false"
+ * @generated
+ */
+ EList getResourceGetSet();
+
+ /**
+ * Retrieves the first {@link org.eclipse.uml2.uml.Operation} with the specified '<em><b>Name</b></em>', '<em><b>Owned Parameter Names</b></em>', and '<em><b>Owned Parameter Types</b></em>' from the '<em><b>Resource Get Set</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Operation} to retrieve, or <code>null</code>.
+ * @param ownedParameterNames The '<em><b>Owned Parameter Names</b></em>' of the {@link org.eclipse.uml2.uml.Operation} to retrieve, or <code>null</code>.
+ * @param ownedParameterTypes The '<em><b>Owned Parameter Types</b></em>' of the {@link org.eclipse.uml2.uml.Operation} to retrieve, or <code>null</code>.
+ * @return The first {@link org.eclipse.uml2.uml.Operation} with the specified '<em><b>Name</b></em>', '<em><b>Owned Parameter Names</b></em>', and '<em><b>Owned Parameter Types</b></em>', or <code>null</code>.
+ * @see #getResourceGetSet()
+ * @generated
+ */
+ Operation getResourceGetSet(String name, EList ownedParameterNames, EList ownedParameterTypes);
+
+ /**
+ * Retrieves the first {@link org.eclipse.uml2.uml.Operation} with the specified '<em><b>Name</b></em>', '<em><b>Owned Parameter Names</b></em>', and '<em><b>Owned Parameter Types</b></em>' from the '<em><b>Resource Get Set</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Operation} to retrieve, or <code>null</code>.
+ * @param ownedParameterNames The '<em><b>Owned Parameter Names</b></em>' of the {@link org.eclipse.uml2.uml.Operation} to retrieve, or <code>null</code>.
+ * @param ownedParameterTypes The '<em><b>Owned Parameter Types</b></em>' of the {@link org.eclipse.uml2.uml.Operation} to retrieve, or <code>null</code>.
+ * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.
+ * @return The first {@link org.eclipse.uml2.uml.Operation} with the specified '<em><b>Name</b></em>', '<em><b>Owned Parameter Names</b></em>', and '<em><b>Owned Parameter Types</b></em>', or <code>null</code>.
+ * @see #getResourceGetSet()
+ * @generated
+ */
+ Operation getResourceGetSet(String name, EList ownedParameterNames, EList ownedParameterTypes, boolean ignoreCase);
+
+} // ServiceDescription
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/VirtualEntity.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/VirtualEntity.java
new file mode 100644
index 0000000..81e6404
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/VirtualEntity.java
@@ -0,0 +1,79 @@
+/**
+ */
+package IoTML.Software.Artefact;
+
+import IoTML.Hybrid.PhysicalEntity;
+
+import org.eclipse.uml2.uml.InstanceSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Virtual Entity</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Software.Artefact.VirtualEntity#getPhisicalEntitySpecification <em>Phisical Entity Specification</em>}</li>
+ * <li>{@link IoTML.Software.Artefact.VirtualEntity#getPhysicalEntity <em>Physical Entity</em>}</li>
+ * </ul>
+ *
+ * @see IoTML.Software.Artefact.ArtefactPackage#getVirtualEntity()
+ * @model
+ * @generated
+ */
+public interface VirtualEntity extends DigitalArtefact {
+ /**
+ * Returns the value of the '<em><b>Phisical Entity Specification</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Phisical Entity Specification</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Phisical Entity Specification</em>' reference.
+ * @see #setPhisicalEntitySpecification(InstanceSpecification)
+ * @see IoTML.Software.Artefact.ArtefactPackage#getVirtualEntity_PhisicalEntitySpecification()
+ * @model ordered="false"
+ * @generated
+ */
+ InstanceSpecification getPhisicalEntitySpecification();
+
+ /**
+ * Sets the value of the '{@link IoTML.Software.Artefact.VirtualEntity#getPhisicalEntitySpecification <em>Phisical Entity Specification</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Phisical Entity Specification</em>' reference.
+ * @see #getPhisicalEntitySpecification()
+ * @generated
+ */
+ void setPhisicalEntitySpecification(InstanceSpecification value);
+
+ /**
+ * Returns the value of the '<em><b>Physical Entity</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Physical Entity</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Physical Entity</em>' reference.
+ * @see #setPhysicalEntity(PhysicalEntity)
+ * @see IoTML.Software.Artefact.ArtefactPackage#getVirtualEntity_PhysicalEntity()
+ * @model ordered="false"
+ * @generated
+ */
+ PhysicalEntity getPhysicalEntity();
+
+ /**
+ * Sets the value of the '{@link IoTML.Software.Artefact.VirtualEntity#getPhysicalEntity <em>Physical Entity</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Physical Entity</em>' reference.
+ * @see #getPhysicalEntity()
+ * @generated
+ */
+ void setPhysicalEntity(PhysicalEntity value);
+
+} // VirtualEntity
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/ArtefactFactoryImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/ArtefactFactoryImpl.java
new file mode 100644
index 0000000..25b3275
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/ArtefactFactoryImpl.java
@@ -0,0 +1,159 @@
+/**
+ */
+package IoTML.Software.Artefact.impl;
+
+import IoTML.Software.Artefact.*;
+
+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 ArtefactFactoryImpl extends EFactoryImpl implements ArtefactFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ArtefactFactory init() {
+ try {
+ ArtefactFactory theArtefactFactory = (ArtefactFactory)EPackage.Registry.INSTANCE.getEFactory(ArtefactPackage.eNS_URI);
+ if (theArtefactFactory != null) {
+ return theArtefactFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new ArtefactFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArtefactFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case ArtefactPackage.PROPERTY_ACCESS: return createPropertyAccess();
+ case ArtefactPackage.DIGITAL_ARTEFACT: return createDigitalArtefact();
+ case ArtefactPackage.VIRTUAL_ENTITY: return createVirtualEntity();
+ case ArtefactPackage.PROVIDE_SERVICE: return createProvideService();
+ case ArtefactPackage.PROVIDE_RESOURCE: return createProvideResource();
+ case ArtefactPackage.SERVICE_DESCRIPTION: return createServiceDescription();
+ case ArtefactPackage.SERVICE: return createService();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PropertyAccess createPropertyAccess() {
+ PropertyAccessImpl propertyAccess = new PropertyAccessImpl();
+ return propertyAccess;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DigitalArtefact createDigitalArtefact() {
+ DigitalArtefactImpl digitalArtefact = new DigitalArtefactImpl();
+ return digitalArtefact;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VirtualEntity createVirtualEntity() {
+ VirtualEntityImpl virtualEntity = new VirtualEntityImpl();
+ return virtualEntity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProvideService createProvideService() {
+ ProvideServiceImpl provideService = new ProvideServiceImpl();
+ return provideService;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProvideResource createProvideResource() {
+ ProvideResourceImpl provideResource = new ProvideResourceImpl();
+ return provideResource;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServiceDescription createServiceDescription() {
+ ServiceDescriptionImpl serviceDescription = new ServiceDescriptionImpl();
+ return serviceDescription;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Service createService() {
+ ServiceImpl service = new ServiceImpl();
+ return service;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArtefactPackage getArtefactPackage() {
+ return (ArtefactPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ public static ArtefactPackage getPackage() {
+ return ArtefactPackage.eINSTANCE;
+ }
+
+} //ArtefactFactoryImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/ArtefactPackageImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/ArtefactPackageImpl.java
new file mode 100644
index 0000000..0a55a86
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/ArtefactPackageImpl.java
@@ -0,0 +1,530 @@
+/**
+ */
+package IoTML.Software.Artefact.impl;
+
+import IoTML.Animate.AnimatePackage;
+
+import IoTML.Animate.impl.AnimatePackageImpl;
+
+import IoTML.Hardware.Actuator.ActuatorPackage;
+
+import IoTML.Hardware.Actuator.impl.ActuatorPackageImpl;
+
+import IoTML.Hardware.Core.CorePackage;
+
+import IoTML.Hardware.Core.impl.CorePackageImpl;
+
+import IoTML.Hardware.Network.NetworkPackage;
+
+import IoTML.Hardware.Network.impl.NetworkPackageImpl;
+
+import IoTML.Hardware.Sensor.SensorPackage;
+
+import IoTML.Hardware.Sensor.impl.SensorPackageImpl;
+
+import IoTML.Hybrid.HybridPackage;
+
+import IoTML.Hybrid.impl.HybridPackageImpl;
+
+import IoTML.Software.Artefact.ArtefactFactory;
+import IoTML.Software.Artefact.ArtefactPackage;
+import IoTML.Software.Artefact.DigitalArtefact;
+import IoTML.Software.Artefact.PropertyAccess;
+import IoTML.Software.Artefact.ProvideResource;
+import IoTML.Software.Artefact.ProvideService;
+import IoTML.Software.Artefact.Service;
+import IoTML.Software.Artefact.ServiceDescription;
+import IoTML.Software.Artefact.VirtualEntity;
+
+import IoTML.Software.Artefact.util.ArtefactValidator;
+
+import IoTML.Software.Core.Structure.StructurePackage;
+
+import IoTML.Software.Core.Structure.impl.StructurePackageImpl;
+
+import IoTML.Software.Resource.ResourcePackage;
+
+import IoTML.Software.Resource.impl.ResourcePackageImpl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EValidator;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.MARTE.MARTEPackage;
+
+import org.eclipse.papyrus.MARTE_Library.BasicNFP_Types.BasicNFP_TypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.GRM_BasicTypes.GRM_BasicTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_DataTypes.MARTE_DataTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_PrimitivesTypes.MARTE_PrimitivesTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MeasurementUnits.MeasurementUnitsPackage;
+
+import org.eclipse.papyrus.MARTE_Library.RS_Library.RS_LibraryPackage;
+
+import org.eclipse.papyrus.MARTE_Library.TimeLibrary.TimeLibraryPackage;
+
+import org.eclipse.papyrus.MARTE_Library.TimeTypesLibrary.TimeTypesLibraryPackage;
+
+import org.eclipse.papyrus.sysml14.sysmlPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ArtefactPackageImpl extends EPackageImpl implements ArtefactPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass propertyAccessEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass digitalArtefactEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass virtualEntityEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass provideServiceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass provideResourceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass serviceDescriptionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass serviceEClass = 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 IoTML.Software.Artefact.ArtefactPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private ArtefactPackageImpl() {
+ super(eNS_URI, ArtefactFactory.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 ArtefactPackage#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 ArtefactPackage init() {
+ if (isInited) return (ArtefactPackage)EPackage.Registry.INSTANCE.getEPackage(ArtefactPackage.eNS_URI);
+
+ // Obtain or create and register package
+ ArtefactPackageImpl theArtefactPackage = (ArtefactPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ArtefactPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ArtefactPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ MARTEPackage.eINSTANCE.eClass();
+ MeasurementUnitsPackage.eINSTANCE.eClass();
+ GRM_BasicTypesPackage.eINSTANCE.eClass();
+ MARTE_DataTypesPackage.eINSTANCE.eClass();
+ BasicNFP_TypesPackage.eINSTANCE.eClass();
+ TimeTypesLibraryPackage.eINSTANCE.eClass();
+ TimeLibraryPackage.eINSTANCE.eClass();
+ RS_LibraryPackage.eINSTANCE.eClass();
+ MARTE_PrimitivesTypesPackage.eINSTANCE.eClass();
+ sysmlPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ AnimatePackageImpl theAnimatePackage = (AnimatePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(AnimatePackage.eNS_URI) instanceof AnimatePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(AnimatePackage.eNS_URI) : AnimatePackage.eINSTANCE);
+ ActuatorPackageImpl theActuatorPackage = (ActuatorPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ActuatorPackage.eNS_URI) instanceof ActuatorPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ActuatorPackage.eNS_URI) : ActuatorPackage.eINSTANCE);
+ SensorPackageImpl theSensorPackage = (SensorPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SensorPackage.eNS_URI) instanceof SensorPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SensorPackage.eNS_URI) : SensorPackage.eINSTANCE);
+ NetworkPackageImpl theNetworkPackage = (NetworkPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(NetworkPackage.eNS_URI) instanceof NetworkPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(NetworkPackage.eNS_URI) : NetworkPackage.eINSTANCE);
+ CorePackageImpl theCorePackage = (CorePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI) instanceof CorePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI) : CorePackage.eINSTANCE);
+ HybridPackageImpl theHybridPackage = (HybridPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(HybridPackage.eNS_URI) instanceof HybridPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(HybridPackage.eNS_URI) : HybridPackage.eINSTANCE);
+ StructurePackageImpl theStructurePackage = (StructurePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(StructurePackage.eNS_URI) instanceof StructurePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(StructurePackage.eNS_URI) : StructurePackage.eINSTANCE);
+ ResourcePackageImpl theResourcePackage = (ResourcePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ResourcePackage.eNS_URI) instanceof ResourcePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ResourcePackage.eNS_URI) : ResourcePackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theArtefactPackage.createPackageContents();
+ theAnimatePackage.createPackageContents();
+ theActuatorPackage.createPackageContents();
+ theSensorPackage.createPackageContents();
+ theNetworkPackage.createPackageContents();
+ theCorePackage.createPackageContents();
+ theHybridPackage.createPackageContents();
+ theStructurePackage.createPackageContents();
+ theResourcePackage.createPackageContents();
+
+ // Initialize created meta-data
+ theArtefactPackage.initializePackageContents();
+ theAnimatePackage.initializePackageContents();
+ theActuatorPackage.initializePackageContents();
+ theSensorPackage.initializePackageContents();
+ theNetworkPackage.initializePackageContents();
+ theCorePackage.initializePackageContents();
+ theHybridPackage.initializePackageContents();
+ theStructurePackage.initializePackageContents();
+ theResourcePackage.initializePackageContents();
+
+ // Register package validator
+ EValidator.Registry.INSTANCE.put
+ (theArtefactPackage,
+ new EValidator.Descriptor() {
+ public EValidator getEValidator() {
+ return ArtefactValidator.INSTANCE;
+ }
+ });
+
+ // Mark meta-data to indicate it can't be changed
+ theArtefactPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(ArtefactPackage.eNS_URI, theArtefactPackage);
+ return theArtefactPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPropertyAccess() {
+ return propertyAccessEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPropertyAccess_Base_Association() {
+ return (EReference)propertyAccessEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPropertyAccess_AccessedProperty() {
+ return (EReference)propertyAccessEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDigitalArtefact() {
+ return digitalArtefactEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDigitalArtefact_Base_Class() {
+ return (EReference)digitalArtefactEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getVirtualEntity() {
+ return virtualEntityEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getVirtualEntity_PhisicalEntitySpecification() {
+ return (EReference)virtualEntityEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getVirtualEntity_PhysicalEntity() {
+ return (EReference)virtualEntityEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getProvideService() {
+ return provideServiceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProvideService_Base_Association() {
+ return (EReference)provideServiceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getProvideResource() {
+ return provideResourceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProvideResource_Base_Association() {
+ return (EReference)provideResourceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getServiceDescription() {
+ return serviceDescriptionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getServiceDescription_Base_Interface() {
+ return (EReference)serviceDescriptionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getServiceDescription_ResourceGetSet() {
+ return (EReference)serviceDescriptionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getService() {
+ return serviceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArtefactFactory getArtefactFactory() {
+ return (ArtefactFactory)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
+ propertyAccessEClass = createEClass(PROPERTY_ACCESS);
+ createEReference(propertyAccessEClass, PROPERTY_ACCESS__BASE_ASSOCIATION);
+ createEReference(propertyAccessEClass, PROPERTY_ACCESS__ACCESSED_PROPERTY);
+
+ digitalArtefactEClass = createEClass(DIGITAL_ARTEFACT);
+ createEReference(digitalArtefactEClass, DIGITAL_ARTEFACT__BASE_CLASS);
+
+ virtualEntityEClass = createEClass(VIRTUAL_ENTITY);
+ createEReference(virtualEntityEClass, VIRTUAL_ENTITY__PHISICAL_ENTITY_SPECIFICATION);
+ createEReference(virtualEntityEClass, VIRTUAL_ENTITY__PHYSICAL_ENTITY);
+
+ provideServiceEClass = createEClass(PROVIDE_SERVICE);
+ createEReference(provideServiceEClass, PROVIDE_SERVICE__BASE_ASSOCIATION);
+
+ provideResourceEClass = createEClass(PROVIDE_RESOURCE);
+ createEReference(provideResourceEClass, PROVIDE_RESOURCE__BASE_ASSOCIATION);
+
+ serviceDescriptionEClass = createEClass(SERVICE_DESCRIPTION);
+ createEReference(serviceDescriptionEClass, SERVICE_DESCRIPTION__BASE_INTERFACE);
+ createEReference(serviceDescriptionEClass, SERVICE_DESCRIPTION__RESOURCE_GET_SET);
+
+ serviceEClass = createEClass(SERVICE);
+ }
+
+ /**
+ * <!-- 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);
+
+ // Obtain other dependent packages
+ UMLPackage theUMLPackage = (UMLPackage)EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
+ HybridPackage theHybridPackage = (HybridPackage)EPackage.Registry.INSTANCE.getEPackage(HybridPackage.eNS_URI);
+
+ // Add supertypes to classes
+ virtualEntityEClass.getESuperTypes().add(this.getDigitalArtefact());
+ serviceEClass.getESuperTypes().add(this.getDigitalArtefact());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(propertyAccessEClass, PropertyAccess.class, "PropertyAccess", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getPropertyAccess_Base_Association(), theUMLPackage.getAssociation(), null, "base_Association", null, 1, 1, PropertyAccess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getPropertyAccess_AccessedProperty(), theUMLPackage.getProperty(), null, "accessedProperty", null, 0, 1, PropertyAccess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ EOperation op = addEOperation(propertyAccessEClass, ecorePackage.getEBoolean(), "PropertyAccess_C1", 0, 1);
+ addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1);
+ addEParameter(op, ecorePackage.getEMap(), "context", 0, 1);
+
+ op = addEOperation(propertyAccessEClass, ecorePackage.getEBoolean(), "PropertyAccess_C2", 0, 1);
+ addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1);
+ addEParameter(op, ecorePackage.getEMap(), "context", 0, 1);
+
+ op = addEOperation(propertyAccessEClass, ecorePackage.getEBoolean(), "propertyAccess_C3", 0, 1);
+ addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1);
+ addEParameter(op, ecorePackage.getEMap(), "context", 0, 1);
+
+ initEClass(digitalArtefactEClass, DigitalArtefact.class, "DigitalArtefact", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getDigitalArtefact_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, DigitalArtefact.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(virtualEntityEClass, VirtualEntity.class, "VirtualEntity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getVirtualEntity_PhisicalEntitySpecification(), theUMLPackage.getInstanceSpecification(), null, "phisicalEntitySpecification", null, 0, 1, VirtualEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getVirtualEntity_PhysicalEntity(), theHybridPackage.getPhysicalEntity(), null, "physicalEntity", null, 0, 1, VirtualEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(provideServiceEClass, ProvideService.class, "ProvideService", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getProvideService_Base_Association(), theUMLPackage.getAssociation(), null, "base_Association", null, 1, 1, ProvideService.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ op = addEOperation(provideServiceEClass, ecorePackage.getEBoolean(), "ProvideService_C2", 0, 1);
+ addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1);
+ addEParameter(op, ecorePackage.getEMap(), "context", 0, 1);
+
+ op = addEOperation(provideServiceEClass, ecorePackage.getEBoolean(), "ProvideService_C1", 0, 1);
+ addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1);
+ addEParameter(op, ecorePackage.getEMap(), "context", 0, 1);
+
+ initEClass(provideResourceEClass, ProvideResource.class, "ProvideResource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getProvideResource_Base_Association(), theUMLPackage.getAssociation(), null, "base_Association", null, 1, 1, ProvideResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ op = addEOperation(provideResourceEClass, ecorePackage.getEBoolean(), "ProvideResource_C1", 0, 1);
+ addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1);
+ addEParameter(op, ecorePackage.getEMap(), "context", 0, 1);
+
+ op = addEOperation(provideResourceEClass, ecorePackage.getEBoolean(), "ProvideResource_C2", 0, 1);
+ addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1);
+ addEParameter(op, ecorePackage.getEMap(), "context", 0, 1);
+
+ initEClass(serviceDescriptionEClass, ServiceDescription.class, "ServiceDescription", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getServiceDescription_Base_Interface(), theUMLPackage.getInterface(), null, "base_Interface", null, 1, 1, ServiceDescription.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getServiceDescription_ResourceGetSet(), theUMLPackage.getOperation(), null, "resourceGetSet", null, 0, -1, ServiceDescription.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(serviceEClass, Service.class, "Service", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ op = addEOperation(serviceEClass, ecorePackage.getEBoolean(), "Service_C1", 0, 1);
+ addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1);
+ addEParameter(op, ecorePackage.getEMap(), "context", 0, 1);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //ArtefactPackageImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/DigitalArtefactImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/DigitalArtefactImpl.java
new file mode 100644
index 0000000..96f063e
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/DigitalArtefactImpl.java
@@ -0,0 +1,151 @@
+/**
+ */
+package IoTML.Software.Artefact.impl;
+
+import IoTML.Software.Artefact.ArtefactPackage;
+import IoTML.Software.Artefact.DigitalArtefact;
+
+import org.eclipse.emf.common.notify.Notification;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Digital Artefact</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Software.Artefact.impl.DigitalArtefactImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DigitalArtefactImpl extends MinimalEObjectImpl.Container implements DigitalArtefact {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DigitalArtefactImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ArtefactPackage.Literals.DIGITAL_ARTEFACT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ArtefactPackage.DIGITAL_ARTEFACT__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ArtefactPackage.DIGITAL_ARTEFACT__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ArtefactPackage.DIGITAL_ARTEFACT__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ArtefactPackage.DIGITAL_ARTEFACT__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ArtefactPackage.DIGITAL_ARTEFACT__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ArtefactPackage.DIGITAL_ARTEFACT__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //DigitalArtefactImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/PropertyAccessImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/PropertyAccessImpl.java
new file mode 100644
index 0000000..a0af223
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/PropertyAccessImpl.java
@@ -0,0 +1,301 @@
+/**
+ */
+package IoTML.Software.Artefact.impl;
+
+import IoTML.Software.Artefact.ArtefactPackage;
+import IoTML.Software.Artefact.PropertyAccess;
+
+import IoTML.Software.Artefact.util.ArtefactValidator;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+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.plugin.EcorePlugin;
+
+import org.eclipse.emf.ecore.util.EObjectValidator;
+
+import org.eclipse.uml2.uml.Association;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Property Access</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Software.Artefact.impl.PropertyAccessImpl#getBase_Association <em>Base Association</em>}</li>
+ * <li>{@link IoTML.Software.Artefact.impl.PropertyAccessImpl#getAccessedProperty <em>Accessed Property</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PropertyAccessImpl extends MinimalEObjectImpl.Container implements PropertyAccess {
+ /**
+ * The cached value of the '{@link #getBase_Association() <em>Base Association</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Association()
+ * @generated
+ * @ordered
+ */
+ protected Association base_Association;
+
+ /**
+ * The cached value of the '{@link #getAccessedProperty() <em>Accessed Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAccessedProperty()
+ * @generated
+ * @ordered
+ */
+ protected Property accessedProperty;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PropertyAccessImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ArtefactPackage.Literals.PROPERTY_ACCESS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Association getBase_Association() {
+ if (base_Association != null && base_Association.eIsProxy()) {
+ InternalEObject oldBase_Association = (InternalEObject)base_Association;
+ base_Association = (Association)eResolveProxy(oldBase_Association);
+ if (base_Association != oldBase_Association) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ArtefactPackage.PROPERTY_ACCESS__BASE_ASSOCIATION, oldBase_Association, base_Association));
+ }
+ }
+ return base_Association;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Association basicGetBase_Association() {
+ return base_Association;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Association(Association newBase_Association) {
+ Association oldBase_Association = base_Association;
+ base_Association = newBase_Association;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ArtefactPackage.PROPERTY_ACCESS__BASE_ASSOCIATION, oldBase_Association, base_Association));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property getAccessedProperty() {
+ if (accessedProperty != null && accessedProperty.eIsProxy()) {
+ InternalEObject oldAccessedProperty = (InternalEObject)accessedProperty;
+ accessedProperty = (Property)eResolveProxy(oldAccessedProperty);
+ if (accessedProperty != oldAccessedProperty) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ArtefactPackage.PROPERTY_ACCESS__ACCESSED_PROPERTY, oldAccessedProperty, accessedProperty));
+ }
+ }
+ return accessedProperty;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetAccessedProperty() {
+ return accessedProperty;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAccessedProperty(Property newAccessedProperty) {
+ Property oldAccessedProperty = accessedProperty;
+ accessedProperty = newAccessedProperty;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ArtefactPackage.PROPERTY_ACCESS__ACCESSED_PROPERTY, oldAccessedProperty, accessedProperty));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean PropertyAccess_C1(DiagnosticChain diagnostics, Map context) {
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics.add
+ (new BasicDiagnostic
+ (Diagnostic.ERROR,
+ ArtefactValidator.DIAGNOSTIC_SOURCE,
+ ArtefactValidator.PROPERTY_ACCESS__PROPERTY_ACCESS_C1,
+ EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "PropertyAccess_C1", EObjectValidator.getObjectLabel(this, context) }),
+ new Object [] { this }));
+ }
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean PropertyAccess_C2(DiagnosticChain diagnostics, Map context) {
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics.add
+ (new BasicDiagnostic
+ (Diagnostic.ERROR,
+ ArtefactValidator.DIAGNOSTIC_SOURCE,
+ ArtefactValidator.PROPERTY_ACCESS__PROPERTY_ACCESS_C2,
+ EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "PropertyAccess_C2", EObjectValidator.getObjectLabel(this, context) }),
+ new Object [] { this }));
+ }
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean propertyAccess_C3(DiagnosticChain diagnostics, Map context) {
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics.add
+ (new BasicDiagnostic
+ (Diagnostic.ERROR,
+ ArtefactValidator.DIAGNOSTIC_SOURCE,
+ ArtefactValidator.PROPERTY_ACCESS__PROPERTY_ACCESS_C3,
+ EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "propertyAccess_C3", EObjectValidator.getObjectLabel(this, context) }),
+ new Object [] { this }));
+ }
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ArtefactPackage.PROPERTY_ACCESS__BASE_ASSOCIATION:
+ if (resolve) return getBase_Association();
+ return basicGetBase_Association();
+ case ArtefactPackage.PROPERTY_ACCESS__ACCESSED_PROPERTY:
+ if (resolve) return getAccessedProperty();
+ return basicGetAccessedProperty();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ArtefactPackage.PROPERTY_ACCESS__BASE_ASSOCIATION:
+ setBase_Association((Association)newValue);
+ return;
+ case ArtefactPackage.PROPERTY_ACCESS__ACCESSED_PROPERTY:
+ setAccessedProperty((Property)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ArtefactPackage.PROPERTY_ACCESS__BASE_ASSOCIATION:
+ setBase_Association((Association)null);
+ return;
+ case ArtefactPackage.PROPERTY_ACCESS__ACCESSED_PROPERTY:
+ setAccessedProperty((Property)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ArtefactPackage.PROPERTY_ACCESS__BASE_ASSOCIATION:
+ return base_Association != null;
+ case ArtefactPackage.PROPERTY_ACCESS__ACCESSED_PROPERTY:
+ return accessedProperty != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //PropertyAccessImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/ProvideResourceImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/ProvideResourceImpl.java
new file mode 100644
index 0000000..6d8543c
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/ProvideResourceImpl.java
@@ -0,0 +1,215 @@
+/**
+ */
+package IoTML.Software.Artefact.impl;
+
+import IoTML.Software.Artefact.ArtefactPackage;
+import IoTML.Software.Artefact.ProvideResource;
+
+import IoTML.Software.Artefact.util.ArtefactValidator;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+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.plugin.EcorePlugin;
+
+import org.eclipse.emf.ecore.util.EObjectValidator;
+
+import org.eclipse.uml2.uml.Association;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Provide Resource</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Software.Artefact.impl.ProvideResourceImpl#getBase_Association <em>Base Association</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ProvideResourceImpl extends MinimalEObjectImpl.Container implements ProvideResource {
+ /**
+ * The cached value of the '{@link #getBase_Association() <em>Base Association</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Association()
+ * @generated
+ * @ordered
+ */
+ protected Association base_Association;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ProvideResourceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ArtefactPackage.Literals.PROVIDE_RESOURCE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Association getBase_Association() {
+ if (base_Association != null && base_Association.eIsProxy()) {
+ InternalEObject oldBase_Association = (InternalEObject)base_Association;
+ base_Association = (Association)eResolveProxy(oldBase_Association);
+ if (base_Association != oldBase_Association) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ArtefactPackage.PROVIDE_RESOURCE__BASE_ASSOCIATION, oldBase_Association, base_Association));
+ }
+ }
+ return base_Association;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Association basicGetBase_Association() {
+ return base_Association;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Association(Association newBase_Association) {
+ Association oldBase_Association = base_Association;
+ base_Association = newBase_Association;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ArtefactPackage.PROVIDE_RESOURCE__BASE_ASSOCIATION, oldBase_Association, base_Association));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean ProvideResource_C1(DiagnosticChain diagnostics, Map context) {
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics.add
+ (new BasicDiagnostic
+ (Diagnostic.ERROR,
+ ArtefactValidator.DIAGNOSTIC_SOURCE,
+ ArtefactValidator.PROVIDE_RESOURCE__PROVIDE_RESOURCE_C1,
+ EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "ProvideResource_C1", EObjectValidator.getObjectLabel(this, context) }),
+ new Object [] { this }));
+ }
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean ProvideResource_C2(DiagnosticChain diagnostics, Map context) {
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics.add
+ (new BasicDiagnostic
+ (Diagnostic.ERROR,
+ ArtefactValidator.DIAGNOSTIC_SOURCE,
+ ArtefactValidator.PROVIDE_RESOURCE__PROVIDE_RESOURCE_C2,
+ EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "ProvideResource_C2", EObjectValidator.getObjectLabel(this, context) }),
+ new Object [] { this }));
+ }
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ArtefactPackage.PROVIDE_RESOURCE__BASE_ASSOCIATION:
+ if (resolve) return getBase_Association();
+ return basicGetBase_Association();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ArtefactPackage.PROVIDE_RESOURCE__BASE_ASSOCIATION:
+ setBase_Association((Association)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ArtefactPackage.PROVIDE_RESOURCE__BASE_ASSOCIATION:
+ setBase_Association((Association)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ArtefactPackage.PROVIDE_RESOURCE__BASE_ASSOCIATION:
+ return base_Association != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ProvideResourceImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/ProvideServiceImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/ProvideServiceImpl.java
new file mode 100644
index 0000000..936bde0
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/ProvideServiceImpl.java
@@ -0,0 +1,215 @@
+/**
+ */
+package IoTML.Software.Artefact.impl;
+
+import IoTML.Software.Artefact.ArtefactPackage;
+import IoTML.Software.Artefact.ProvideService;
+
+import IoTML.Software.Artefact.util.ArtefactValidator;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+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.plugin.EcorePlugin;
+
+import org.eclipse.emf.ecore.util.EObjectValidator;
+
+import org.eclipse.uml2.uml.Association;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Provide Service</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Software.Artefact.impl.ProvideServiceImpl#getBase_Association <em>Base Association</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ProvideServiceImpl extends MinimalEObjectImpl.Container implements ProvideService {
+ /**
+ * The cached value of the '{@link #getBase_Association() <em>Base Association</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Association()
+ * @generated
+ * @ordered
+ */
+ protected Association base_Association;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ProvideServiceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ArtefactPackage.Literals.PROVIDE_SERVICE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Association getBase_Association() {
+ if (base_Association != null && base_Association.eIsProxy()) {
+ InternalEObject oldBase_Association = (InternalEObject)base_Association;
+ base_Association = (Association)eResolveProxy(oldBase_Association);
+ if (base_Association != oldBase_Association) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ArtefactPackage.PROVIDE_SERVICE__BASE_ASSOCIATION, oldBase_Association, base_Association));
+ }
+ }
+ return base_Association;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Association basicGetBase_Association() {
+ return base_Association;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Association(Association newBase_Association) {
+ Association oldBase_Association = base_Association;
+ base_Association = newBase_Association;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ArtefactPackage.PROVIDE_SERVICE__BASE_ASSOCIATION, oldBase_Association, base_Association));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean ProvideService_C2(DiagnosticChain diagnostics, Map context) {
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics.add
+ (new BasicDiagnostic
+ (Diagnostic.ERROR,
+ ArtefactValidator.DIAGNOSTIC_SOURCE,
+ ArtefactValidator.PROVIDE_SERVICE__PROVIDE_SERVICE_C2,
+ EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "ProvideService_C2", EObjectValidator.getObjectLabel(this, context) }),
+ new Object [] { this }));
+ }
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean ProvideService_C1(DiagnosticChain diagnostics, Map context) {
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics.add
+ (new BasicDiagnostic
+ (Diagnostic.ERROR,
+ ArtefactValidator.DIAGNOSTIC_SOURCE,
+ ArtefactValidator.PROVIDE_SERVICE__PROVIDE_SERVICE_C1,
+ EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "ProvideService_C1", EObjectValidator.getObjectLabel(this, context) }),
+ new Object [] { this }));
+ }
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ArtefactPackage.PROVIDE_SERVICE__BASE_ASSOCIATION:
+ if (resolve) return getBase_Association();
+ return basicGetBase_Association();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ArtefactPackage.PROVIDE_SERVICE__BASE_ASSOCIATION:
+ setBase_Association((Association)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ArtefactPackage.PROVIDE_SERVICE__BASE_ASSOCIATION:
+ setBase_Association((Association)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ArtefactPackage.PROVIDE_SERVICE__BASE_ASSOCIATION:
+ return base_Association != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ProvideServiceImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/ServiceDescriptionImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/ServiceDescriptionImpl.java
new file mode 100644
index 0000000..3e8e6f9
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/ServiceDescriptionImpl.java
@@ -0,0 +1,231 @@
+/**
+ */
+package IoTML.Software.Artefact.impl;
+
+import IoTML.Software.Artefact.ArtefactPackage;
+import IoTML.Software.Artefact.ServiceDescription;
+
+import java.util.Collection;
+import java.util.Iterator;
+
+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;
+
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Parameter;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Service Description</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Software.Artefact.impl.ServiceDescriptionImpl#getBase_Interface <em>Base Interface</em>}</li>
+ * <li>{@link IoTML.Software.Artefact.impl.ServiceDescriptionImpl#getResourceGetSet <em>Resource Get Set</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ServiceDescriptionImpl extends MinimalEObjectImpl.Container implements ServiceDescription {
+ /**
+ * The cached value of the '{@link #getBase_Interface() <em>Base Interface</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Interface()
+ * @generated
+ * @ordered
+ */
+ protected Interface base_Interface;
+
+ /**
+ * The cached value of the '{@link #getResourceGetSet() <em>Resource Get Set</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getResourceGetSet()
+ * @generated
+ * @ordered
+ */
+ protected EList resourceGetSet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ServiceDescriptionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ArtefactPackage.Literals.SERVICE_DESCRIPTION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Interface getBase_Interface() {
+ if (base_Interface != null && base_Interface.eIsProxy()) {
+ InternalEObject oldBase_Interface = (InternalEObject)base_Interface;
+ base_Interface = (Interface)eResolveProxy(oldBase_Interface);
+ if (base_Interface != oldBase_Interface) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ArtefactPackage.SERVICE_DESCRIPTION__BASE_INTERFACE, oldBase_Interface, base_Interface));
+ }
+ }
+ return base_Interface;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Interface basicGetBase_Interface() {
+ return base_Interface;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Interface(Interface newBase_Interface) {
+ Interface oldBase_Interface = base_Interface;
+ base_Interface = newBase_Interface;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ArtefactPackage.SERVICE_DESCRIPTION__BASE_INTERFACE, oldBase_Interface, base_Interface));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getResourceGetSet() {
+ if (resourceGetSet == null) {
+ resourceGetSet = new EObjectResolvingEList(Operation.class, this, ArtefactPackage.SERVICE_DESCRIPTION__RESOURCE_GET_SET);
+ }
+ return resourceGetSet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Operation getResourceGetSet(String name, EList ownedParameterNames, EList ownedParameterTypes) {
+ return getResourceGetSet(name, ownedParameterNames, ownedParameterTypes, false);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Operation getResourceGetSet(String name, EList ownedParameterNames, EList ownedParameterTypes, boolean ignoreCase) {
+ resourceGetSetLoop: for (Iterator i = getResourceGetSet().iterator(); i.hasNext(); ) {
+ Operation resourceGetSet = (Operation) i.next();
+ if (name != null && !(ignoreCase ? name.equalsIgnoreCase(resourceGetSet.getName()) : name.equals(resourceGetSet.getName())))
+ continue resourceGetSetLoop;
+ EList<Parameter> ownedParameterList = resourceGetSet.getOwnedParameters();
+ int ownedParameterListSize = ownedParameterList.size();
+ if (ownedParameterNames != null && ownedParameterNames.size() != ownedParameterListSize || (ownedParameterTypes != null && ownedParameterTypes.size() != ownedParameterListSize))
+ continue resourceGetSetLoop;
+ for (int j = 0; j < ownedParameterListSize; j++) {
+ Parameter ownedParameter = (Parameter) ownedParameterList.get(j);
+ if (ownedParameterNames != null && !(ignoreCase ? ((String)ownedParameterNames.get(j)).equalsIgnoreCase(ownedParameter.getName()) : ownedParameterNames.get(j).equals(ownedParameter.getName())))
+ continue resourceGetSetLoop;
+ if (ownedParameterTypes != null && !ownedParameterTypes.get(j).equals(ownedParameter.getType()))
+ continue resourceGetSetLoop;
+ }
+ return resourceGetSet;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ArtefactPackage.SERVICE_DESCRIPTION__BASE_INTERFACE:
+ if (resolve) return getBase_Interface();
+ return basicGetBase_Interface();
+ case ArtefactPackage.SERVICE_DESCRIPTION__RESOURCE_GET_SET:
+ return getResourceGetSet();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ArtefactPackage.SERVICE_DESCRIPTION__BASE_INTERFACE:
+ setBase_Interface((Interface)newValue);
+ return;
+ case ArtefactPackage.SERVICE_DESCRIPTION__RESOURCE_GET_SET:
+ getResourceGetSet().clear();
+ getResourceGetSet().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ArtefactPackage.SERVICE_DESCRIPTION__BASE_INTERFACE:
+ setBase_Interface((Interface)null);
+ return;
+ case ArtefactPackage.SERVICE_DESCRIPTION__RESOURCE_GET_SET:
+ getResourceGetSet().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ArtefactPackage.SERVICE_DESCRIPTION__BASE_INTERFACE:
+ return base_Interface != null;
+ case ArtefactPackage.SERVICE_DESCRIPTION__RESOURCE_GET_SET:
+ return resourceGetSet != null && !resourceGetSet.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ServiceDescriptionImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/ServiceImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/ServiceImpl.java
new file mode 100644
index 0000000..ee9d2b1
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/ServiceImpl.java
@@ -0,0 +1,73 @@
+/**
+ */
+package IoTML.Software.Artefact.impl;
+
+import IoTML.Software.Artefact.ArtefactPackage;
+import IoTML.Software.Artefact.Service;
+
+import IoTML.Software.Artefact.util.ArtefactValidator;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.emf.ecore.util.EObjectValidator;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Service</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ServiceImpl extends DigitalArtefactImpl implements Service {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ServiceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ArtefactPackage.Literals.SERVICE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean Service_C1(DiagnosticChain diagnostics, Map context) {
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics.add
+ (new BasicDiagnostic
+ (Diagnostic.ERROR,
+ ArtefactValidator.DIAGNOSTIC_SOURCE,
+ ArtefactValidator.SERVICE__SERVICE_C1,
+ EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "Service_C1", EObjectValidator.getObjectLabel(this, context) }),
+ new Object [] { this }));
+ }
+ return false;
+ }
+ return true;
+ }
+
+} //ServiceImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/VirtualEntityImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/VirtualEntityImpl.java
new file mode 100644
index 0000000..87a69bd
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/impl/VirtualEntityImpl.java
@@ -0,0 +1,214 @@
+/**
+ */
+package IoTML.Software.Artefact.impl;
+
+import IoTML.Hybrid.PhysicalEntity;
+
+import IoTML.Software.Artefact.ArtefactPackage;
+import IoTML.Software.Artefact.VirtualEntity;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.uml2.uml.InstanceSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Virtual Entity</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Software.Artefact.impl.VirtualEntityImpl#getPhisicalEntitySpecification <em>Phisical Entity Specification</em>}</li>
+ * <li>{@link IoTML.Software.Artefact.impl.VirtualEntityImpl#getPhysicalEntity <em>Physical Entity</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class VirtualEntityImpl extends DigitalArtefactImpl implements VirtualEntity {
+ /**
+ * The cached value of the '{@link #getPhisicalEntitySpecification() <em>Phisical Entity Specification</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPhisicalEntitySpecification()
+ * @generated
+ * @ordered
+ */
+ protected InstanceSpecification phisicalEntitySpecification;
+
+ /**
+ * The cached value of the '{@link #getPhysicalEntity() <em>Physical Entity</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPhysicalEntity()
+ * @generated
+ * @ordered
+ */
+ protected PhysicalEntity physicalEntity;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VirtualEntityImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ArtefactPackage.Literals.VIRTUAL_ENTITY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InstanceSpecification getPhisicalEntitySpecification() {
+ if (phisicalEntitySpecification != null && phisicalEntitySpecification.eIsProxy()) {
+ InternalEObject oldPhisicalEntitySpecification = (InternalEObject)phisicalEntitySpecification;
+ phisicalEntitySpecification = (InstanceSpecification)eResolveProxy(oldPhisicalEntitySpecification);
+ if (phisicalEntitySpecification != oldPhisicalEntitySpecification) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ArtefactPackage.VIRTUAL_ENTITY__PHISICAL_ENTITY_SPECIFICATION, oldPhisicalEntitySpecification, phisicalEntitySpecification));
+ }
+ }
+ return phisicalEntitySpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InstanceSpecification basicGetPhisicalEntitySpecification() {
+ return phisicalEntitySpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPhisicalEntitySpecification(InstanceSpecification newPhisicalEntitySpecification) {
+ InstanceSpecification oldPhisicalEntitySpecification = phisicalEntitySpecification;
+ phisicalEntitySpecification = newPhisicalEntitySpecification;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ArtefactPackage.VIRTUAL_ENTITY__PHISICAL_ENTITY_SPECIFICATION, oldPhisicalEntitySpecification, phisicalEntitySpecification));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PhysicalEntity getPhysicalEntity() {
+ if (physicalEntity != null && physicalEntity.eIsProxy()) {
+ InternalEObject oldPhysicalEntity = (InternalEObject)physicalEntity;
+ physicalEntity = (PhysicalEntity)eResolveProxy(oldPhysicalEntity);
+ if (physicalEntity != oldPhysicalEntity) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ArtefactPackage.VIRTUAL_ENTITY__PHYSICAL_ENTITY, oldPhysicalEntity, physicalEntity));
+ }
+ }
+ return physicalEntity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PhysicalEntity basicGetPhysicalEntity() {
+ return physicalEntity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPhysicalEntity(PhysicalEntity newPhysicalEntity) {
+ PhysicalEntity oldPhysicalEntity = physicalEntity;
+ physicalEntity = newPhysicalEntity;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ArtefactPackage.VIRTUAL_ENTITY__PHYSICAL_ENTITY, oldPhysicalEntity, physicalEntity));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ArtefactPackage.VIRTUAL_ENTITY__PHISICAL_ENTITY_SPECIFICATION:
+ if (resolve) return getPhisicalEntitySpecification();
+ return basicGetPhisicalEntitySpecification();
+ case ArtefactPackage.VIRTUAL_ENTITY__PHYSICAL_ENTITY:
+ if (resolve) return getPhysicalEntity();
+ return basicGetPhysicalEntity();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ArtefactPackage.VIRTUAL_ENTITY__PHISICAL_ENTITY_SPECIFICATION:
+ setPhisicalEntitySpecification((InstanceSpecification)newValue);
+ return;
+ case ArtefactPackage.VIRTUAL_ENTITY__PHYSICAL_ENTITY:
+ setPhysicalEntity((PhysicalEntity)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ArtefactPackage.VIRTUAL_ENTITY__PHISICAL_ENTITY_SPECIFICATION:
+ setPhisicalEntitySpecification((InstanceSpecification)null);
+ return;
+ case ArtefactPackage.VIRTUAL_ENTITY__PHYSICAL_ENTITY:
+ setPhysicalEntity((PhysicalEntity)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ArtefactPackage.VIRTUAL_ENTITY__PHISICAL_ENTITY_SPECIFICATION:
+ return phisicalEntitySpecification != null;
+ case ArtefactPackage.VIRTUAL_ENTITY__PHYSICAL_ENTITY:
+ return physicalEntity != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //VirtualEntityImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/util/ArtefactAdapterFactory.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/util/ArtefactAdapterFactory.java
new file mode 100644
index 0000000..60cb8a4
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/util/ArtefactAdapterFactory.java
@@ -0,0 +1,218 @@
+/**
+ */
+package IoTML.Software.Artefact.util;
+
+import IoTML.Software.Artefact.*;
+
+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 IoTML.Software.Artefact.ArtefactPackage
+ * @generated
+ */
+public class ArtefactAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ArtefactPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArtefactAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = ArtefactPackage.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
+ */
+ 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 ArtefactSwitch modelSwitch =
+ new ArtefactSwitch() {
+ public Object casePropertyAccess(PropertyAccess object) {
+ return createPropertyAccessAdapter();
+ }
+ public Object caseDigitalArtefact(DigitalArtefact object) {
+ return createDigitalArtefactAdapter();
+ }
+ public Object caseVirtualEntity(VirtualEntity object) {
+ return createVirtualEntityAdapter();
+ }
+ public Object caseProvideService(ProvideService object) {
+ return createProvideServiceAdapter();
+ }
+ public Object caseProvideResource(ProvideResource object) {
+ return createProvideResourceAdapter();
+ }
+ public Object caseServiceDescription(ServiceDescription object) {
+ return createServiceDescriptionAdapter();
+ }
+ public Object caseService(Service object) {
+ return createServiceAdapter();
+ }
+ public Object 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
+ */
+ public Adapter createAdapter(Notifier target) {
+ return (Adapter)modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Software.Artefact.PropertyAccess <em>Property Access</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 IoTML.Software.Artefact.PropertyAccess
+ * @generated
+ */
+ public Adapter createPropertyAccessAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Software.Artefact.DigitalArtefact <em>Digital Artefact</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 IoTML.Software.Artefact.DigitalArtefact
+ * @generated
+ */
+ public Adapter createDigitalArtefactAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Software.Artefact.VirtualEntity <em>Virtual Entity</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 IoTML.Software.Artefact.VirtualEntity
+ * @generated
+ */
+ public Adapter createVirtualEntityAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Software.Artefact.ProvideService <em>Provide Service</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 IoTML.Software.Artefact.ProvideService
+ * @generated
+ */
+ public Adapter createProvideServiceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Software.Artefact.ProvideResource <em>Provide Resource</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 IoTML.Software.Artefact.ProvideResource
+ * @generated
+ */
+ public Adapter createProvideResourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Software.Artefact.ServiceDescription <em>Service Description</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 IoTML.Software.Artefact.ServiceDescription
+ * @generated
+ */
+ public Adapter createServiceDescriptionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Software.Artefact.Service <em>Service</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 IoTML.Software.Artefact.Service
+ * @generated
+ */
+ public Adapter createServiceAdapter() {
+ 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;
+ }
+
+} //ArtefactAdapterFactory
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/util/ArtefactSwitch.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/util/ArtefactSwitch.java
new file mode 100644
index 0000000..cc90d3d
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/util/ArtefactSwitch.java
@@ -0,0 +1,254 @@
+/**
+ */
+package IoTML.Software.Artefact.util;
+
+import IoTML.Software.Artefact.*;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- 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 IoTML.Software.Artefact.ArtefactPackage
+ * @generated
+ */
+public class ArtefactSwitch {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ArtefactPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArtefactSwitch() {
+ if (modelPackage == null) {
+ modelPackage = ArtefactPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * 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
+ */
+ public Object doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch((EClass)eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case ArtefactPackage.PROPERTY_ACCESS: {
+ PropertyAccess propertyAccess = (PropertyAccess)theEObject;
+ Object result = casePropertyAccess(propertyAccess);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ArtefactPackage.DIGITAL_ARTEFACT: {
+ DigitalArtefact digitalArtefact = (DigitalArtefact)theEObject;
+ Object result = caseDigitalArtefact(digitalArtefact);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ArtefactPackage.VIRTUAL_ENTITY: {
+ VirtualEntity virtualEntity = (VirtualEntity)theEObject;
+ Object result = caseVirtualEntity(virtualEntity);
+ if (result == null) result = caseDigitalArtefact(virtualEntity);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ArtefactPackage.PROVIDE_SERVICE: {
+ ProvideService provideService = (ProvideService)theEObject;
+ Object result = caseProvideService(provideService);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ArtefactPackage.PROVIDE_RESOURCE: {
+ ProvideResource provideResource = (ProvideResource)theEObject;
+ Object result = caseProvideResource(provideResource);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ArtefactPackage.SERVICE_DESCRIPTION: {
+ ServiceDescription serviceDescription = (ServiceDescription)theEObject;
+ Object result = caseServiceDescription(serviceDescription);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ArtefactPackage.SERVICE: {
+ Service service = (Service)theEObject;
+ Object result = caseService(service);
+ if (result == null) result = caseDigitalArtefact(service);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Property Access</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>Property Access</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object casePropertyAccess(PropertyAccess object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Digital Artefact</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>Digital Artefact</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDigitalArtefact(DigitalArtefact object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Virtual Entity</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>Virtual Entity</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseVirtualEntity(VirtualEntity object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Provide Service</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>Provide Service</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseProvideService(ProvideService object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Provide Resource</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>Provide Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseProvideResource(ProvideResource object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Service Description</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>Service Description</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseServiceDescription(ServiceDescription object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Service</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>Service</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseService(Service 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
+ */
+ public Object defaultCase(EObject object) {
+ return null;
+ }
+
+} //ArtefactSwitch
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/util/ArtefactValidator.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/util/ArtefactValidator.java
new file mode 100644
index 0000000..b057276
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Artefact/util/ArtefactValidator.java
@@ -0,0 +1,339 @@
+/**
+ */
+package IoTML.Software.Artefact.util;
+
+import IoTML.Software.Artefact.*;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.EObjectValidator;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Validator</b> for the model.
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Artefact.ArtefactPackage
+ * @generated
+ */
+public class ArtefactValidator extends EObjectValidator {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final ArtefactValidator INSTANCE = new ArtefactValidator();
+
+ /**
+ * A constant for the {@link org.eclipse.emf.common.util.Diagnostic#getSource() source} of diagnostic {@link org.eclipse.emf.common.util.Diagnostic#getCode() codes} from this package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.common.util.Diagnostic#getSource()
+ * @see org.eclipse.emf.common.util.Diagnostic#getCode()
+ * @generated
+ */
+ public static final String DIAGNOSTIC_SOURCE = "IoTML.Software.Artefact";
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Property Access C1' of 'Property Access'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int PROPERTY_ACCESS__PROPERTY_ACCESS_C1 = 1;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Property Access C2' of 'Property Access'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int PROPERTY_ACCESS__PROPERTY_ACCESS_C2 = 2;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Property Access C3' of 'Property Access'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int PROPERTY_ACCESS__PROPERTY_ACCESS_C3 = 3;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Provide Service C2' of 'Provide Service'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int PROVIDE_SERVICE__PROVIDE_SERVICE_C2 = 4;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Provide Service C1' of 'Provide Service'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int PROVIDE_SERVICE__PROVIDE_SERVICE_C1 = 5;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Provide Resource C1' of 'Provide Resource'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int PROVIDE_RESOURCE__PROVIDE_RESOURCE_C1 = 6;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Provide Resource C2' of 'Provide Resource'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int PROVIDE_RESOURCE__PROVIDE_RESOURCE_C2 = 7;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Service C1' of 'Service'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int SERVICE__SERVICE_C1 = 8;
+
+ /**
+ * A constant with a fixed name that can be used as the base value for additional hand written constants.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 8;
+
+ /**
+ * A constant with a fixed name that can be used as the base value for additional hand written constants in a derived class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static final int DIAGNOSTIC_CODE_COUNT = GENERATED_DIAGNOSTIC_CODE_COUNT;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArtefactValidator() {
+ super();
+ }
+
+ /**
+ * Returns the package of this validator switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EPackage getEPackage() {
+ return ArtefactPackage.eINSTANCE;
+ }
+
+ /**
+ * Calls <code>validateXXX</code> for the corresponding classifier of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean validate(int classifierID, Object value, DiagnosticChain diagnostics, Map context) {
+ switch (classifierID) {
+ case ArtefactPackage.PROPERTY_ACCESS:
+ return validatePropertyAccess((PropertyAccess)value, diagnostics, context);
+ case ArtefactPackage.DIGITAL_ARTEFACT:
+ return validateDigitalArtefact((DigitalArtefact)value, diagnostics, context);
+ case ArtefactPackage.VIRTUAL_ENTITY:
+ return validateVirtualEntity((VirtualEntity)value, diagnostics, context);
+ case ArtefactPackage.PROVIDE_SERVICE:
+ return validateProvideService((ProvideService)value, diagnostics, context);
+ case ArtefactPackage.PROVIDE_RESOURCE:
+ return validateProvideResource((ProvideResource)value, diagnostics, context);
+ case ArtefactPackage.SERVICE_DESCRIPTION:
+ return validateServiceDescription((ServiceDescription)value, diagnostics, context);
+ case ArtefactPackage.SERVICE:
+ return validateService((Service)value, diagnostics, context);
+ default:
+ return true;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePropertyAccess(PropertyAccess propertyAccess, DiagnosticChain diagnostics, Map context) {
+ boolean result = validate_EveryMultiplicityConforms(propertyAccess, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(propertyAccess, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(propertyAccess, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(propertyAccess, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(propertyAccess, diagnostics, context);
+ if (result || diagnostics != null) result &= validatePropertyAccess_PropertyAccess_C1(propertyAccess, diagnostics, context);
+ if (result || diagnostics != null) result &= validatePropertyAccess_PropertyAccess_C2(propertyAccess, diagnostics, context);
+ if (result || diagnostics != null) result &= validatePropertyAccess_propertyAccess_C3(propertyAccess, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the PropertyAccess_C1 constraint of '<em>Property Access</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePropertyAccess_PropertyAccess_C1(PropertyAccess propertyAccess, DiagnosticChain diagnostics, Map context) {
+ return propertyAccess.PropertyAccess_C1(diagnostics, context);
+ }
+
+ /**
+ * Validates the PropertyAccess_C2 constraint of '<em>Property Access</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePropertyAccess_PropertyAccess_C2(PropertyAccess propertyAccess, DiagnosticChain diagnostics, Map context) {
+ return propertyAccess.PropertyAccess_C2(diagnostics, context);
+ }
+
+ /**
+ * Validates the propertyAccess_C3 constraint of '<em>Property Access</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePropertyAccess_propertyAccess_C3(PropertyAccess propertyAccess, DiagnosticChain diagnostics, Map context) {
+ return propertyAccess.propertyAccess_C3(diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateDigitalArtefact(DigitalArtefact digitalArtefact, DiagnosticChain diagnostics, Map context) {
+ return validate_EveryDefaultConstraint(digitalArtefact, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateVirtualEntity(VirtualEntity virtualEntity, DiagnosticChain diagnostics, Map context) {
+ return validate_EveryDefaultConstraint(virtualEntity, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateProvideService(ProvideService provideService, DiagnosticChain diagnostics, Map context) {
+ boolean result = validate_EveryMultiplicityConforms(provideService, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(provideService, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(provideService, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(provideService, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(provideService, diagnostics, context);
+ if (result || diagnostics != null) result &= validateProvideService_ProvideService_C2(provideService, diagnostics, context);
+ if (result || diagnostics != null) result &= validateProvideService_ProvideService_C1(provideService, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the ProvideService_C2 constraint of '<em>Provide Service</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateProvideService_ProvideService_C2(ProvideService provideService, DiagnosticChain diagnostics, Map context) {
+ return provideService.ProvideService_C2(diagnostics, context);
+ }
+
+ /**
+ * Validates the ProvideService_C1 constraint of '<em>Provide Service</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateProvideService_ProvideService_C1(ProvideService provideService, DiagnosticChain diagnostics, Map context) {
+ return provideService.ProvideService_C1(diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateProvideResource(ProvideResource provideResource, DiagnosticChain diagnostics, Map context) {
+ boolean result = validate_EveryMultiplicityConforms(provideResource, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(provideResource, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(provideResource, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(provideResource, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(provideResource, diagnostics, context);
+ if (result || diagnostics != null) result &= validateProvideResource_ProvideResource_C1(provideResource, diagnostics, context);
+ if (result || diagnostics != null) result &= validateProvideResource_ProvideResource_C2(provideResource, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the ProvideResource_C1 constraint of '<em>Provide Resource</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateProvideResource_ProvideResource_C1(ProvideResource provideResource, DiagnosticChain diagnostics, Map context) {
+ return provideResource.ProvideResource_C1(diagnostics, context);
+ }
+
+ /**
+ * Validates the ProvideResource_C2 constraint of '<em>Provide Resource</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateProvideResource_ProvideResource_C2(ProvideResource provideResource, DiagnosticChain diagnostics, Map context) {
+ return provideResource.ProvideResource_C2(diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateServiceDescription(ServiceDescription serviceDescription, DiagnosticChain diagnostics, Map context) {
+ return validate_EveryDefaultConstraint(serviceDescription, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateService(Service service, DiagnosticChain diagnostics, Map context) {
+ boolean result = validate_EveryMultiplicityConforms(service, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(service, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(service, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(service, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(service, diagnostics, context);
+ if (result || diagnostics != null) result &= validateService_Service_C1(service, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the Service_C1 constraint of '<em>Service</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateService_Service_C1(Service service, DiagnosticChain diagnostics, Map context) {
+ return service.Service_C1(diagnostics, context);
+ }
+
+} //ArtefactValidator
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/DetailedValueSpecification.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/DetailedValueSpecification.java
new file mode 100644
index 0000000..160458d
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/DetailedValueSpecification.java
@@ -0,0 +1,71 @@
+/**
+ */
+package IoTML.Software.Core.Structure;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.ValueSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Detailed Value Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Software.Core.Structure.DetailedValueSpecification#getBase_ValueSpecification <em>Base Value Specification</em>}</li>
+ * <li>{@link IoTML.Software.Core.Structure.DetailedValueSpecification#getMetaSpecification <em>Meta Specification</em>}</li>
+ * </ul>
+ *
+ * @see IoTML.Software.Core.Structure.StructurePackage#getDetailedValueSpecification()
+ * @model
+ * @generated
+ */
+public interface DetailedValueSpecification extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Value Specification</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Value Specification</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Value Specification</em>' reference.
+ * @see #setBase_ValueSpecification(ValueSpecification)
+ * @see IoTML.Software.Core.Structure.StructurePackage#getDetailedValueSpecification_Base_ValueSpecification()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ ValueSpecification getBase_ValueSpecification();
+
+ /**
+ * Sets the value of the '{@link IoTML.Software.Core.Structure.DetailedValueSpecification#getBase_ValueSpecification <em>Base Value Specification</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Value Specification</em>' reference.
+ * @see #getBase_ValueSpecification()
+ * @generated
+ */
+ void setBase_ValueSpecification(ValueSpecification value);
+
+ /**
+ * Returns the value of the '<em><b>Meta Specification</b></em>' containment reference list.
+ * The list contents are of type {@link IoTML.Software.Core.Structure.MetaValueSpecification}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Meta Specification</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Meta Specification</em>' containment reference list.
+ * @see IoTML.Software.Core.Structure.StructurePackage#getDetailedValueSpecification_MetaSpecification()
+ * @model type="IoTML.Software.Core.Structure.MetaValueSpecification" containment="true" ordered="false"
+ * @generated
+ */
+ EList getMetaSpecification();
+
+} // DetailedValueSpecification
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/MetaValueSpecification.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/MetaValueSpecification.java
new file mode 100644
index 0000000..7810a15
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/MetaValueSpecification.java
@@ -0,0 +1,107 @@
+/**
+ */
+package IoTML.Software.Core.Structure;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.ValueSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Meta Value Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Software.Core.Structure.MetaValueSpecification#getBase_ValueSpecification <em>Base Value Specification</em>}</li>
+ * <li>{@link IoTML.Software.Core.Structure.MetaValueSpecification#getType <em>Type</em>}</li>
+ * <li>{@link IoTML.Software.Core.Structure.MetaValueSpecification#getDescription <em>Description</em>}</li>
+ * </ul>
+ *
+ * @see IoTML.Software.Core.Structure.StructurePackage#getMetaValueSpecification()
+ * @model
+ * @generated
+ */
+public interface MetaValueSpecification extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Value Specification</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Value Specification</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Value Specification</em>' reference.
+ * @see #setBase_ValueSpecification(ValueSpecification)
+ * @see IoTML.Software.Core.Structure.StructurePackage#getMetaValueSpecification_Base_ValueSpecification()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ ValueSpecification getBase_ValueSpecification();
+
+ /**
+ * Sets the value of the '{@link IoTML.Software.Core.Structure.MetaValueSpecification#getBase_ValueSpecification <em>Base Value Specification</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Value Specification</em>' reference.
+ * @see #getBase_ValueSpecification()
+ * @generated
+ */
+ void setBase_ValueSpecification(ValueSpecification value);
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' reference.
+ * @see #setType(Type)
+ * @see IoTML.Software.Core.Structure.StructurePackage#getMetaValueSpecification_Type()
+ * @model transient="true" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ Type getType();
+
+ /**
+ * Sets the value of the '{@link IoTML.Software.Core.Structure.MetaValueSpecification#getType <em>Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' reference.
+ * @see #getType()
+ * @generated
+ */
+ void setType(Type value);
+
+ /**
+ * Returns the value of the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Description</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Description</em>' attribute.
+ * @see #setDescription(String)
+ * @see IoTML.Software.Core.Structure.StructurePackage#getMetaValueSpecification_Description()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getDescription();
+
+ /**
+ * Sets the value of the '{@link IoTML.Software.Core.Structure.MetaValueSpecification#getDescription <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Description</em>' attribute.
+ * @see #getDescription()
+ * @generated
+ */
+ void setDescription(String value);
+
+} // MetaValueSpecification
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/StructureFactory.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/StructureFactory.java
new file mode 100644
index 0000000..1d94a14
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/StructureFactory.java
@@ -0,0 +1,51 @@
+/**
+ */
+package IoTML.Software.Core.Structure;
+
+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 IoTML.Software.Core.Structure.StructurePackage
+ * @generated
+ */
+public interface StructureFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ StructureFactory eINSTANCE = IoTML.Software.Core.Structure.impl.StructureFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Meta Value Specification</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Meta Value Specification</em>'.
+ * @generated
+ */
+ MetaValueSpecification createMetaValueSpecification();
+
+ /**
+ * Returns a new object of class '<em>Detailed Value Specification</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Detailed Value Specification</em>'.
+ * @generated
+ */
+ DetailedValueSpecification createDetailedValueSpecification();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ StructurePackage getStructurePackage();
+
+} //StructureFactory
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/StructurePackage.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/StructurePackage.java
new file mode 100644
index 0000000..f10b921
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/StructurePackage.java
@@ -0,0 +1,301 @@
+/**
+ */
+package IoTML.Software.Core.Structure;
+
+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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Core.Structure.StructureFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface StructurePackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Structure";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http:///IoTML/Software/Core/Structure.ecore";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "IoTML.Software.Core.Structure";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ StructurePackage eINSTANCE = IoTML.Software.Core.Structure.impl.StructurePackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link IoTML.Software.Core.Structure.impl.MetaValueSpecificationImpl <em>Meta Value Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Core.Structure.impl.MetaValueSpecificationImpl
+ * @see IoTML.Software.Core.Structure.impl.StructurePackageImpl#getMetaValueSpecification()
+ * @generated
+ */
+ int META_VALUE_SPECIFICATION = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Value Specification</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int META_VALUE_SPECIFICATION__BASE_VALUE_SPECIFICATION = 0;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int META_VALUE_SPECIFICATION__TYPE = 1;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int META_VALUE_SPECIFICATION__DESCRIPTION = 2;
+
+ /**
+ * The number of structural features of the '<em>Meta Value Specification</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int META_VALUE_SPECIFICATION_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link IoTML.Software.Core.Structure.impl.DetailedValueSpecificationImpl <em>Detailed Value Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Core.Structure.impl.DetailedValueSpecificationImpl
+ * @see IoTML.Software.Core.Structure.impl.StructurePackageImpl#getDetailedValueSpecification()
+ * @generated
+ */
+ int DETAILED_VALUE_SPECIFICATION = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Value Specification</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DETAILED_VALUE_SPECIFICATION__BASE_VALUE_SPECIFICATION = 0;
+
+ /**
+ * The feature id for the '<em><b>Meta Specification</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DETAILED_VALUE_SPECIFICATION__META_SPECIFICATION = 1;
+
+ /**
+ * The number of structural features of the '<em>Detailed Value Specification</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DETAILED_VALUE_SPECIFICATION_FEATURE_COUNT = 2;
+
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Software.Core.Structure.MetaValueSpecification <em>Meta Value Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Meta Value Specification</em>'.
+ * @see IoTML.Software.Core.Structure.MetaValueSpecification
+ * @generated
+ */
+ EClass getMetaValueSpecification();
+
+ /**
+ * Returns the meta object for the reference '{@link IoTML.Software.Core.Structure.MetaValueSpecification#getBase_ValueSpecification <em>Base Value Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Value Specification</em>'.
+ * @see IoTML.Software.Core.Structure.MetaValueSpecification#getBase_ValueSpecification()
+ * @see #getMetaValueSpecification()
+ * @generated
+ */
+ EReference getMetaValueSpecification_Base_ValueSpecification();
+
+ /**
+ * Returns the meta object for the reference '{@link IoTML.Software.Core.Structure.MetaValueSpecification#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Type</em>'.
+ * @see IoTML.Software.Core.Structure.MetaValueSpecification#getType()
+ * @see #getMetaValueSpecification()
+ * @generated
+ */
+ EReference getMetaValueSpecification_Type();
+
+ /**
+ * Returns the meta object for the attribute '{@link IoTML.Software.Core.Structure.MetaValueSpecification#getDescription <em>Description</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Description</em>'.
+ * @see IoTML.Software.Core.Structure.MetaValueSpecification#getDescription()
+ * @see #getMetaValueSpecification()
+ * @generated
+ */
+ EAttribute getMetaValueSpecification_Description();
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Software.Core.Structure.DetailedValueSpecification <em>Detailed Value Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Detailed Value Specification</em>'.
+ * @see IoTML.Software.Core.Structure.DetailedValueSpecification
+ * @generated
+ */
+ EClass getDetailedValueSpecification();
+
+ /**
+ * Returns the meta object for the reference '{@link IoTML.Software.Core.Structure.DetailedValueSpecification#getBase_ValueSpecification <em>Base Value Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Value Specification</em>'.
+ * @see IoTML.Software.Core.Structure.DetailedValueSpecification#getBase_ValueSpecification()
+ * @see #getDetailedValueSpecification()
+ * @generated
+ */
+ EReference getDetailedValueSpecification_Base_ValueSpecification();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link IoTML.Software.Core.Structure.DetailedValueSpecification#getMetaSpecification <em>Meta Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Meta Specification</em>'.
+ * @see IoTML.Software.Core.Structure.DetailedValueSpecification#getMetaSpecification()
+ * @see #getDetailedValueSpecification()
+ * @generated
+ */
+ EReference getDetailedValueSpecification_MetaSpecification();
+
+ /**
+ * 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
+ */
+ StructureFactory getStructureFactory();
+
+ /**
+ * <!-- 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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link IoTML.Software.Core.Structure.impl.MetaValueSpecificationImpl <em>Meta Value Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Core.Structure.impl.MetaValueSpecificationImpl
+ * @see IoTML.Software.Core.Structure.impl.StructurePackageImpl#getMetaValueSpecification()
+ * @generated
+ */
+ EClass META_VALUE_SPECIFICATION = eINSTANCE.getMetaValueSpecification();
+
+ /**
+ * The meta object literal for the '<em><b>Base Value Specification</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference META_VALUE_SPECIFICATION__BASE_VALUE_SPECIFICATION = eINSTANCE.getMetaValueSpecification_Base_ValueSpecification();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference META_VALUE_SPECIFICATION__TYPE = eINSTANCE.getMetaValueSpecification_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute META_VALUE_SPECIFICATION__DESCRIPTION = eINSTANCE.getMetaValueSpecification_Description();
+
+ /**
+ * The meta object literal for the '{@link IoTML.Software.Core.Structure.impl.DetailedValueSpecificationImpl <em>Detailed Value Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Core.Structure.impl.DetailedValueSpecificationImpl
+ * @see IoTML.Software.Core.Structure.impl.StructurePackageImpl#getDetailedValueSpecification()
+ * @generated
+ */
+ EClass DETAILED_VALUE_SPECIFICATION = eINSTANCE.getDetailedValueSpecification();
+
+ /**
+ * The meta object literal for the '<em><b>Base Value Specification</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DETAILED_VALUE_SPECIFICATION__BASE_VALUE_SPECIFICATION = eINSTANCE.getDetailedValueSpecification_Base_ValueSpecification();
+
+ /**
+ * The meta object literal for the '<em><b>Meta Specification</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DETAILED_VALUE_SPECIFICATION__META_SPECIFICATION = eINSTANCE.getDetailedValueSpecification_MetaSpecification();
+
+ }
+
+} //StructurePackage
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/impl/DetailedValueSpecificationImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/impl/DetailedValueSpecificationImpl.java
new file mode 100644
index 0000000..3804ccd
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/impl/DetailedValueSpecificationImpl.java
@@ -0,0 +1,209 @@
+/**
+ */
+package IoTML.Software.Core.Structure.impl;
+
+import IoTML.Software.Core.Structure.DetailedValueSpecification;
+import IoTML.Software.Core.Structure.MetaValueSpecification;
+import IoTML.Software.Core.Structure.StructurePackage;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+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.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.uml2.uml.ValueSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Detailed Value Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Software.Core.Structure.impl.DetailedValueSpecificationImpl#getBase_ValueSpecification <em>Base Value Specification</em>}</li>
+ * <li>{@link IoTML.Software.Core.Structure.impl.DetailedValueSpecificationImpl#getMetaSpecification <em>Meta Specification</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DetailedValueSpecificationImpl extends MinimalEObjectImpl.Container implements DetailedValueSpecification {
+ /**
+ * The cached value of the '{@link #getBase_ValueSpecification() <em>Base Value Specification</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_ValueSpecification()
+ * @generated
+ * @ordered
+ */
+ protected ValueSpecification base_ValueSpecification;
+
+ /**
+ * The cached value of the '{@link #getMetaSpecification() <em>Meta Specification</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMetaSpecification()
+ * @generated
+ * @ordered
+ */
+ protected EList metaSpecification;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DetailedValueSpecificationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return StructurePackage.Literals.DETAILED_VALUE_SPECIFICATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getBase_ValueSpecification() {
+ if (base_ValueSpecification != null && base_ValueSpecification.eIsProxy()) {
+ InternalEObject oldBase_ValueSpecification = (InternalEObject)base_ValueSpecification;
+ base_ValueSpecification = (ValueSpecification)eResolveProxy(oldBase_ValueSpecification);
+ if (base_ValueSpecification != oldBase_ValueSpecification) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, StructurePackage.DETAILED_VALUE_SPECIFICATION__BASE_VALUE_SPECIFICATION, oldBase_ValueSpecification, base_ValueSpecification));
+ }
+ }
+ return base_ValueSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification basicGetBase_ValueSpecification() {
+ return base_ValueSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_ValueSpecification(ValueSpecification newBase_ValueSpecification) {
+ ValueSpecification oldBase_ValueSpecification = base_ValueSpecification;
+ base_ValueSpecification = newBase_ValueSpecification;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StructurePackage.DETAILED_VALUE_SPECIFICATION__BASE_VALUE_SPECIFICATION, oldBase_ValueSpecification, base_ValueSpecification));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getMetaSpecification() {
+ if (metaSpecification == null) {
+ metaSpecification = new EObjectContainmentEList(MetaValueSpecification.class, this, StructurePackage.DETAILED_VALUE_SPECIFICATION__META_SPECIFICATION);
+ }
+ return metaSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case StructurePackage.DETAILED_VALUE_SPECIFICATION__META_SPECIFICATION:
+ return ((InternalEList)getMetaSpecification()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case StructurePackage.DETAILED_VALUE_SPECIFICATION__BASE_VALUE_SPECIFICATION:
+ if (resolve) return getBase_ValueSpecification();
+ return basicGetBase_ValueSpecification();
+ case StructurePackage.DETAILED_VALUE_SPECIFICATION__META_SPECIFICATION:
+ return getMetaSpecification();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case StructurePackage.DETAILED_VALUE_SPECIFICATION__BASE_VALUE_SPECIFICATION:
+ setBase_ValueSpecification((ValueSpecification)newValue);
+ return;
+ case StructurePackage.DETAILED_VALUE_SPECIFICATION__META_SPECIFICATION:
+ getMetaSpecification().clear();
+ getMetaSpecification().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case StructurePackage.DETAILED_VALUE_SPECIFICATION__BASE_VALUE_SPECIFICATION:
+ setBase_ValueSpecification((ValueSpecification)null);
+ return;
+ case StructurePackage.DETAILED_VALUE_SPECIFICATION__META_SPECIFICATION:
+ getMetaSpecification().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case StructurePackage.DETAILED_VALUE_SPECIFICATION__BASE_VALUE_SPECIFICATION:
+ return base_ValueSpecification != null;
+ case StructurePackage.DETAILED_VALUE_SPECIFICATION__META_SPECIFICATION:
+ return metaSpecification != null && !metaSpecification.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //DetailedValueSpecificationImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/impl/MetaValueSpecificationImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/impl/MetaValueSpecificationImpl.java
new file mode 100644
index 0000000..ab28c26
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/impl/MetaValueSpecificationImpl.java
@@ -0,0 +1,266 @@
+/**
+ */
+package IoTML.Software.Core.Structure.impl;
+
+import IoTML.Software.Core.Structure.MetaValueSpecification;
+import IoTML.Software.Core.Structure.StructurePackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+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.uml2.uml.Type;
+import org.eclipse.uml2.uml.ValueSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Meta Value Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Software.Core.Structure.impl.MetaValueSpecificationImpl#getBase_ValueSpecification <em>Base Value Specification</em>}</li>
+ * <li>{@link IoTML.Software.Core.Structure.impl.MetaValueSpecificationImpl#getType <em>Type</em>}</li>
+ * <li>{@link IoTML.Software.Core.Structure.impl.MetaValueSpecificationImpl#getDescription <em>Description</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class MetaValueSpecificationImpl extends MinimalEObjectImpl.Container implements MetaValueSpecification {
+ /**
+ * The cached value of the '{@link #getBase_ValueSpecification() <em>Base Value Specification</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_ValueSpecification()
+ * @generated
+ * @ordered
+ */
+ protected ValueSpecification base_ValueSpecification;
+
+ /**
+ * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected static final String DESCRIPTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected String description = DESCRIPTION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MetaValueSpecificationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return StructurePackage.Literals.META_VALUE_SPECIFICATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getBase_ValueSpecification() {
+ if (base_ValueSpecification != null && base_ValueSpecification.eIsProxy()) {
+ InternalEObject oldBase_ValueSpecification = (InternalEObject)base_ValueSpecification;
+ base_ValueSpecification = (ValueSpecification)eResolveProxy(oldBase_ValueSpecification);
+ if (base_ValueSpecification != oldBase_ValueSpecification) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, StructurePackage.META_VALUE_SPECIFICATION__BASE_VALUE_SPECIFICATION, oldBase_ValueSpecification, base_ValueSpecification));
+ }
+ }
+ return base_ValueSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification basicGetBase_ValueSpecification() {
+ return base_ValueSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_ValueSpecification(ValueSpecification newBase_ValueSpecification) {
+ ValueSpecification oldBase_ValueSpecification = base_ValueSpecification;
+ base_ValueSpecification = newBase_ValueSpecification;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StructurePackage.META_VALUE_SPECIFICATION__BASE_VALUE_SPECIFICATION, oldBase_ValueSpecification, base_ValueSpecification));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type getType() {
+ Type type = basicGetType();
+ return type != null && type.eIsProxy() ? (Type)eResolveProxy((InternalEObject)type) : type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type basicGetType() {
+ // TODO: implement this method to return the 'Type' reference
+ // -> do not perform proxy resolution
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(Type newType) {
+ // TODO: implement this method to set the 'Type' reference
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDescription(String newDescription) {
+ String oldDescription = description;
+ description = newDescription;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StructurePackage.META_VALUE_SPECIFICATION__DESCRIPTION, oldDescription, description));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case StructurePackage.META_VALUE_SPECIFICATION__BASE_VALUE_SPECIFICATION:
+ if (resolve) return getBase_ValueSpecification();
+ return basicGetBase_ValueSpecification();
+ case StructurePackage.META_VALUE_SPECIFICATION__TYPE:
+ if (resolve) return getType();
+ return basicGetType();
+ case StructurePackage.META_VALUE_SPECIFICATION__DESCRIPTION:
+ return getDescription();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case StructurePackage.META_VALUE_SPECIFICATION__BASE_VALUE_SPECIFICATION:
+ setBase_ValueSpecification((ValueSpecification)newValue);
+ return;
+ case StructurePackage.META_VALUE_SPECIFICATION__TYPE:
+ setType((Type)newValue);
+ return;
+ case StructurePackage.META_VALUE_SPECIFICATION__DESCRIPTION:
+ setDescription((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case StructurePackage.META_VALUE_SPECIFICATION__BASE_VALUE_SPECIFICATION:
+ setBase_ValueSpecification((ValueSpecification)null);
+ return;
+ case StructurePackage.META_VALUE_SPECIFICATION__TYPE:
+ setType((Type)null);
+ return;
+ case StructurePackage.META_VALUE_SPECIFICATION__DESCRIPTION:
+ setDescription(DESCRIPTION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case StructurePackage.META_VALUE_SPECIFICATION__BASE_VALUE_SPECIFICATION:
+ return base_ValueSpecification != null;
+ case StructurePackage.META_VALUE_SPECIFICATION__TYPE:
+ return basicGetType() != null;
+ case StructurePackage.META_VALUE_SPECIFICATION__DESCRIPTION:
+ return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (description: ");
+ result.append(description);
+ result.append(')');
+ return result.toString();
+ }
+
+} //MetaValueSpecificationImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/impl/StructureFactoryImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/impl/StructureFactoryImpl.java
new file mode 100644
index 0000000..2ed268a
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/impl/StructureFactoryImpl.java
@@ -0,0 +1,104 @@
+/**
+ */
+package IoTML.Software.Core.Structure.impl;
+
+import IoTML.Software.Core.Structure.*;
+
+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 StructureFactoryImpl extends EFactoryImpl implements StructureFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static StructureFactory init() {
+ try {
+ StructureFactory theStructureFactory = (StructureFactory)EPackage.Registry.INSTANCE.getEFactory(StructurePackage.eNS_URI);
+ if (theStructureFactory != null) {
+ return theStructureFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new StructureFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StructureFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case StructurePackage.META_VALUE_SPECIFICATION: return createMetaValueSpecification();
+ case StructurePackage.DETAILED_VALUE_SPECIFICATION: return createDetailedValueSpecification();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MetaValueSpecification createMetaValueSpecification() {
+ MetaValueSpecificationImpl metaValueSpecification = new MetaValueSpecificationImpl();
+ return metaValueSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DetailedValueSpecification createDetailedValueSpecification() {
+ DetailedValueSpecificationImpl detailedValueSpecification = new DetailedValueSpecificationImpl();
+ return detailedValueSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StructurePackage getStructurePackage() {
+ return (StructurePackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ public static StructurePackage getPackage() {
+ return StructurePackage.eINSTANCE;
+ }
+
+} //StructureFactoryImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/impl/StructurePackageImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/impl/StructurePackageImpl.java
new file mode 100644
index 0000000..ca1b0db
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/impl/StructurePackageImpl.java
@@ -0,0 +1,337 @@
+/**
+ */
+package IoTML.Software.Core.Structure.impl;
+
+import IoTML.Animate.AnimatePackage;
+
+import IoTML.Animate.impl.AnimatePackageImpl;
+
+import IoTML.Hardware.Actuator.ActuatorPackage;
+
+import IoTML.Hardware.Actuator.impl.ActuatorPackageImpl;
+
+import IoTML.Hardware.Core.CorePackage;
+
+import IoTML.Hardware.Core.impl.CorePackageImpl;
+
+import IoTML.Hardware.Network.NetworkPackage;
+
+import IoTML.Hardware.Network.impl.NetworkPackageImpl;
+
+import IoTML.Hardware.Sensor.SensorPackage;
+
+import IoTML.Hardware.Sensor.impl.SensorPackageImpl;
+
+import IoTML.Hybrid.HybridPackage;
+
+import IoTML.Hybrid.impl.HybridPackageImpl;
+
+import IoTML.Software.Artefact.ArtefactPackage;
+
+import IoTML.Software.Artefact.impl.ArtefactPackageImpl;
+
+import IoTML.Software.Core.Structure.DetailedValueSpecification;
+import IoTML.Software.Core.Structure.MetaValueSpecification;
+import IoTML.Software.Core.Structure.StructureFactory;
+import IoTML.Software.Core.Structure.StructurePackage;
+
+import IoTML.Software.Resource.ResourcePackage;
+
+import IoTML.Software.Resource.impl.ResourcePackageImpl;
+
+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;
+
+import org.eclipse.papyrus.MARTE.MARTEPackage;
+
+import org.eclipse.papyrus.MARTE_Library.BasicNFP_Types.BasicNFP_TypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.GRM_BasicTypes.GRM_BasicTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_DataTypes.MARTE_DataTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_PrimitivesTypes.MARTE_PrimitivesTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MeasurementUnits.MeasurementUnitsPackage;
+
+import org.eclipse.papyrus.MARTE_Library.RS_Library.RS_LibraryPackage;
+
+import org.eclipse.papyrus.MARTE_Library.TimeLibrary.TimeLibraryPackage;
+
+import org.eclipse.papyrus.MARTE_Library.TimeTypesLibrary.TimeTypesLibraryPackage;
+
+import org.eclipse.papyrus.sysml14.sysmlPackage;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class StructurePackageImpl extends EPackageImpl implements StructurePackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass metaValueSpecificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass detailedValueSpecificationEClass = 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 IoTML.Software.Core.Structure.StructurePackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private StructurePackageImpl() {
+ super(eNS_URI, StructureFactory.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 StructurePackage#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 StructurePackage init() {
+ if (isInited) return (StructurePackage)EPackage.Registry.INSTANCE.getEPackage(StructurePackage.eNS_URI);
+
+ // Obtain or create and register package
+ StructurePackageImpl theStructurePackage = (StructurePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof StructurePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new StructurePackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ MARTEPackage.eINSTANCE.eClass();
+ MeasurementUnitsPackage.eINSTANCE.eClass();
+ GRM_BasicTypesPackage.eINSTANCE.eClass();
+ MARTE_DataTypesPackage.eINSTANCE.eClass();
+ BasicNFP_TypesPackage.eINSTANCE.eClass();
+ TimeTypesLibraryPackage.eINSTANCE.eClass();
+ TimeLibraryPackage.eINSTANCE.eClass();
+ RS_LibraryPackage.eINSTANCE.eClass();
+ MARTE_PrimitivesTypesPackage.eINSTANCE.eClass();
+ sysmlPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ AnimatePackageImpl theAnimatePackage = (AnimatePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(AnimatePackage.eNS_URI) instanceof AnimatePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(AnimatePackage.eNS_URI) : AnimatePackage.eINSTANCE);
+ ActuatorPackageImpl theActuatorPackage = (ActuatorPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ActuatorPackage.eNS_URI) instanceof ActuatorPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ActuatorPackage.eNS_URI) : ActuatorPackage.eINSTANCE);
+ SensorPackageImpl theSensorPackage = (SensorPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SensorPackage.eNS_URI) instanceof SensorPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SensorPackage.eNS_URI) : SensorPackage.eINSTANCE);
+ NetworkPackageImpl theNetworkPackage = (NetworkPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(NetworkPackage.eNS_URI) instanceof NetworkPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(NetworkPackage.eNS_URI) : NetworkPackage.eINSTANCE);
+ CorePackageImpl theCorePackage = (CorePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI) instanceof CorePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI) : CorePackage.eINSTANCE);
+ HybridPackageImpl theHybridPackage = (HybridPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(HybridPackage.eNS_URI) instanceof HybridPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(HybridPackage.eNS_URI) : HybridPackage.eINSTANCE);
+ ArtefactPackageImpl theArtefactPackage = (ArtefactPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ArtefactPackage.eNS_URI) instanceof ArtefactPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ArtefactPackage.eNS_URI) : ArtefactPackage.eINSTANCE);
+ ResourcePackageImpl theResourcePackage = (ResourcePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ResourcePackage.eNS_URI) instanceof ResourcePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ResourcePackage.eNS_URI) : ResourcePackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theStructurePackage.createPackageContents();
+ theAnimatePackage.createPackageContents();
+ theActuatorPackage.createPackageContents();
+ theSensorPackage.createPackageContents();
+ theNetworkPackage.createPackageContents();
+ theCorePackage.createPackageContents();
+ theHybridPackage.createPackageContents();
+ theArtefactPackage.createPackageContents();
+ theResourcePackage.createPackageContents();
+
+ // Initialize created meta-data
+ theStructurePackage.initializePackageContents();
+ theAnimatePackage.initializePackageContents();
+ theActuatorPackage.initializePackageContents();
+ theSensorPackage.initializePackageContents();
+ theNetworkPackage.initializePackageContents();
+ theCorePackage.initializePackageContents();
+ theHybridPackage.initializePackageContents();
+ theArtefactPackage.initializePackageContents();
+ theResourcePackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theStructurePackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(StructurePackage.eNS_URI, theStructurePackage);
+ return theStructurePackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMetaValueSpecification() {
+ return metaValueSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMetaValueSpecification_Base_ValueSpecification() {
+ return (EReference)metaValueSpecificationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMetaValueSpecification_Type() {
+ return (EReference)metaValueSpecificationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMetaValueSpecification_Description() {
+ return (EAttribute)metaValueSpecificationEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDetailedValueSpecification() {
+ return detailedValueSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDetailedValueSpecification_Base_ValueSpecification() {
+ return (EReference)detailedValueSpecificationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDetailedValueSpecification_MetaSpecification() {
+ return (EReference)detailedValueSpecificationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StructureFactory getStructureFactory() {
+ return (StructureFactory)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
+ metaValueSpecificationEClass = createEClass(META_VALUE_SPECIFICATION);
+ createEReference(metaValueSpecificationEClass, META_VALUE_SPECIFICATION__BASE_VALUE_SPECIFICATION);
+ createEReference(metaValueSpecificationEClass, META_VALUE_SPECIFICATION__TYPE);
+ createEAttribute(metaValueSpecificationEClass, META_VALUE_SPECIFICATION__DESCRIPTION);
+
+ detailedValueSpecificationEClass = createEClass(DETAILED_VALUE_SPECIFICATION);
+ createEReference(detailedValueSpecificationEClass, DETAILED_VALUE_SPECIFICATION__BASE_VALUE_SPECIFICATION);
+ createEReference(detailedValueSpecificationEClass, DETAILED_VALUE_SPECIFICATION__META_SPECIFICATION);
+ }
+
+ /**
+ * <!-- 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);
+
+ // Obtain other dependent packages
+ UMLPackage theUMLPackage = (UMLPackage)EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(metaValueSpecificationEClass, MetaValueSpecification.class, "MetaValueSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getMetaValueSpecification_Base_ValueSpecification(), theUMLPackage.getValueSpecification(), null, "base_ValueSpecification", null, 1, 1, MetaValueSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getMetaValueSpecification_Type(), theUMLPackage.getType(), null, "type", null, 0, 1, MetaValueSpecification.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getMetaValueSpecification_Description(), theTypesPackage.getString(), "description", null, 0, 1, MetaValueSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(detailedValueSpecificationEClass, DetailedValueSpecification.class, "DetailedValueSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getDetailedValueSpecification_Base_ValueSpecification(), theUMLPackage.getValueSpecification(), null, "base_ValueSpecification", null, 1, 1, DetailedValueSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getDetailedValueSpecification_MetaSpecification(), this.getMetaValueSpecification(), null, "metaSpecification", null, 0, -1, DetailedValueSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //StructurePackageImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/util/StructureAdapterFactory.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/util/StructureAdapterFactory.java
new file mode 100644
index 0000000..adfbc70
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/util/StructureAdapterFactory.java
@@ -0,0 +1,133 @@
+/**
+ */
+package IoTML.Software.Core.Structure.util;
+
+import IoTML.Software.Core.Structure.*;
+
+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 IoTML.Software.Core.Structure.StructurePackage
+ * @generated
+ */
+public class StructureAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static StructurePackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StructureAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = StructurePackage.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
+ */
+ 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 StructureSwitch modelSwitch =
+ new StructureSwitch() {
+ public Object caseMetaValueSpecification(MetaValueSpecification object) {
+ return createMetaValueSpecificationAdapter();
+ }
+ public Object caseDetailedValueSpecification(DetailedValueSpecification object) {
+ return createDetailedValueSpecificationAdapter();
+ }
+ public Object 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
+ */
+ public Adapter createAdapter(Notifier target) {
+ return (Adapter)modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Software.Core.Structure.MetaValueSpecification <em>Meta Value Specification</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 IoTML.Software.Core.Structure.MetaValueSpecification
+ * @generated
+ */
+ public Adapter createMetaValueSpecificationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Software.Core.Structure.DetailedValueSpecification <em>Detailed Value Specification</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 IoTML.Software.Core.Structure.DetailedValueSpecification
+ * @generated
+ */
+ public Adapter createDetailedValueSpecificationAdapter() {
+ 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;
+ }
+
+} //StructureAdapterFactory
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/util/StructureSwitch.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/util/StructureSwitch.java
new file mode 100644
index 0000000..2a69475
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Core/Structure/util/StructureSwitch.java
@@ -0,0 +1,147 @@
+/**
+ */
+package IoTML.Software.Core.Structure.util;
+
+import IoTML.Software.Core.Structure.*;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- 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 IoTML.Software.Core.Structure.StructurePackage
+ * @generated
+ */
+public class StructureSwitch {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static StructurePackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StructureSwitch() {
+ if (modelPackage == null) {
+ modelPackage = StructurePackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * 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
+ */
+ public Object doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch((EClass)eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case StructurePackage.META_VALUE_SPECIFICATION: {
+ MetaValueSpecification metaValueSpecification = (MetaValueSpecification)theEObject;
+ Object result = caseMetaValueSpecification(metaValueSpecification);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StructurePackage.DETAILED_VALUE_SPECIFICATION: {
+ DetailedValueSpecification detailedValueSpecification = (DetailedValueSpecification)theEObject;
+ Object result = caseDetailedValueSpecification(detailedValueSpecification);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Meta Value Specification</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>Meta Value Specification</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseMetaValueSpecification(MetaValueSpecification object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Detailed Value Specification</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>Detailed Value Specification</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDetailedValueSpecification(DetailedValueSpecification 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
+ */
+ public Object defaultCase(EObject object) {
+ return null;
+ }
+
+} //StructureSwitch
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/NetworkResource.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/NetworkResource.java
new file mode 100644
index 0000000..196de1d
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/NetworkResource.java
@@ -0,0 +1,50 @@
+/**
+ */
+package IoTML.Software.Resource;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Network Resource</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Software.Resource.NetworkResource#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see IoTML.Software.Resource.ResourcePackage#getNetworkResource()
+ * @model
+ * @generated
+ */
+public interface NetworkResource extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see IoTML.Software.Resource.ResourcePackage#getNetworkResource_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link IoTML.Software.Resource.NetworkResource#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // NetworkResource
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/OnDeviceResource.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/OnDeviceResource.java
new file mode 100644
index 0000000..c1eddaa
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/OnDeviceResource.java
@@ -0,0 +1,107 @@
+/**
+ */
+package IoTML.Software.Resource;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.SRM.SW_Brokering.DeviceBroker;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.SRM.SW_Brokering.MemoryBroker;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>On Device Resource</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Software.Resource.OnDeviceResource#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link IoTML.Software.Resource.OnDeviceResource#getDeviceBroker <em>Device Broker</em>}</li>
+ * <li>{@link IoTML.Software.Resource.OnDeviceResource#getMemoryBroker <em>Memory Broker</em>}</li>
+ * </ul>
+ *
+ * @see IoTML.Software.Resource.ResourcePackage#getOnDeviceResource()
+ * @model
+ * @generated
+ */
+public interface OnDeviceResource extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see IoTML.Software.Resource.ResourcePackage#getOnDeviceResource_Base_Class()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link IoTML.Software.Resource.OnDeviceResource#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+ /**
+ * Returns the value of the '<em><b>Device Broker</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Device Broker</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Device Broker</em>' reference.
+ * @see #setDeviceBroker(DeviceBroker)
+ * @see IoTML.Software.Resource.ResourcePackage#getOnDeviceResource_DeviceBroker()
+ * @model ordered="false"
+ * @generated
+ */
+ DeviceBroker getDeviceBroker();
+
+ /**
+ * Sets the value of the '{@link IoTML.Software.Resource.OnDeviceResource#getDeviceBroker <em>Device Broker</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Device Broker</em>' reference.
+ * @see #getDeviceBroker()
+ * @generated
+ */
+ void setDeviceBroker(DeviceBroker value);
+
+ /**
+ * Returns the value of the '<em><b>Memory Broker</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Memory Broker</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Memory Broker</em>' reference.
+ * @see #setMemoryBroker(MemoryBroker)
+ * @see IoTML.Software.Resource.ResourcePackage#getOnDeviceResource_MemoryBroker()
+ * @model ordered="false"
+ * @generated
+ */
+ MemoryBroker getMemoryBroker();
+
+ /**
+ * Sets the value of the '{@link IoTML.Software.Resource.OnDeviceResource#getMemoryBroker <em>Memory Broker</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Memory Broker</em>' reference.
+ * @see #getMemoryBroker()
+ * @generated
+ */
+ void setMemoryBroker(MemoryBroker value);
+
+} // OnDeviceResource
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/ResourceFactory.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/ResourceFactory.java
new file mode 100644
index 0000000..b2d3e8e
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/ResourceFactory.java
@@ -0,0 +1,51 @@
+/**
+ */
+package IoTML.Software.Resource;
+
+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 IoTML.Software.Resource.ResourcePackage
+ * @generated
+ */
+public interface ResourceFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ResourceFactory eINSTANCE = IoTML.Software.Resource.impl.ResourceFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Network Resource</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Network Resource</em>'.
+ * @generated
+ */
+ NetworkResource createNetworkResource();
+
+ /**
+ * Returns a new object of class '<em>On Device Resource</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>On Device Resource</em>'.
+ * @generated
+ */
+ OnDeviceResource createOnDeviceResource();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ ResourcePackage getResourcePackage();
+
+} //ResourceFactory
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/ResourcePackage.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/ResourcePackage.java
new file mode 100644
index 0000000..2c6bec4
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/ResourcePackage.java
@@ -0,0 +1,272 @@
+/**
+ */
+package IoTML.Software.Resource;
+
+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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Resource.ResourceFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface ResourcePackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Resource";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http:///IoTML/Software/Resource.ecore";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "IoTML.Software.Resource";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ResourcePackage eINSTANCE = IoTML.Software.Resource.impl.ResourcePackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link IoTML.Software.Resource.impl.NetworkResourceImpl <em>Network Resource</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Resource.impl.NetworkResourceImpl
+ * @see IoTML.Software.Resource.impl.ResourcePackageImpl#getNetworkResource()
+ * @generated
+ */
+ int NETWORK_RESOURCE = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NETWORK_RESOURCE__BASE_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Network Resource</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NETWORK_RESOURCE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link IoTML.Software.Resource.impl.OnDeviceResourceImpl <em>On Device Resource</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Resource.impl.OnDeviceResourceImpl
+ * @see IoTML.Software.Resource.impl.ResourcePackageImpl#getOnDeviceResource()
+ * @generated
+ */
+ int ON_DEVICE_RESOURCE = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ON_DEVICE_RESOURCE__BASE_CLASS = 0;
+
+ /**
+ * The feature id for the '<em><b>Device Broker</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ON_DEVICE_RESOURCE__DEVICE_BROKER = 1;
+
+ /**
+ * The feature id for the '<em><b>Memory Broker</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ON_DEVICE_RESOURCE__MEMORY_BROKER = 2;
+
+ /**
+ * The number of structural features of the '<em>On Device Resource</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ON_DEVICE_RESOURCE_FEATURE_COUNT = 3;
+
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Software.Resource.NetworkResource <em>Network Resource</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Network Resource</em>'.
+ * @see IoTML.Software.Resource.NetworkResource
+ * @generated
+ */
+ EClass getNetworkResource();
+
+ /**
+ * Returns the meta object for the reference '{@link IoTML.Software.Resource.NetworkResource#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see IoTML.Software.Resource.NetworkResource#getBase_Class()
+ * @see #getNetworkResource()
+ * @generated
+ */
+ EReference getNetworkResource_Base_Class();
+
+ /**
+ * Returns the meta object for class '{@link IoTML.Software.Resource.OnDeviceResource <em>On Device Resource</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>On Device Resource</em>'.
+ * @see IoTML.Software.Resource.OnDeviceResource
+ * @generated
+ */
+ EClass getOnDeviceResource();
+
+ /**
+ * Returns the meta object for the reference '{@link IoTML.Software.Resource.OnDeviceResource#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see IoTML.Software.Resource.OnDeviceResource#getBase_Class()
+ * @see #getOnDeviceResource()
+ * @generated
+ */
+ EReference getOnDeviceResource_Base_Class();
+
+ /**
+ * Returns the meta object for the reference '{@link IoTML.Software.Resource.OnDeviceResource#getDeviceBroker <em>Device Broker</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Device Broker</em>'.
+ * @see IoTML.Software.Resource.OnDeviceResource#getDeviceBroker()
+ * @see #getOnDeviceResource()
+ * @generated
+ */
+ EReference getOnDeviceResource_DeviceBroker();
+
+ /**
+ * Returns the meta object for the reference '{@link IoTML.Software.Resource.OnDeviceResource#getMemoryBroker <em>Memory Broker</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Memory Broker</em>'.
+ * @see IoTML.Software.Resource.OnDeviceResource#getMemoryBroker()
+ * @see #getOnDeviceResource()
+ * @generated
+ */
+ EReference getOnDeviceResource_MemoryBroker();
+
+ /**
+ * 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
+ */
+ ResourceFactory getResourceFactory();
+
+ /**
+ * <!-- 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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link IoTML.Software.Resource.impl.NetworkResourceImpl <em>Network Resource</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Resource.impl.NetworkResourceImpl
+ * @see IoTML.Software.Resource.impl.ResourcePackageImpl#getNetworkResource()
+ * @generated
+ */
+ EClass NETWORK_RESOURCE = eINSTANCE.getNetworkResource();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference NETWORK_RESOURCE__BASE_CLASS = eINSTANCE.getNetworkResource_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link IoTML.Software.Resource.impl.OnDeviceResourceImpl <em>On Device Resource</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see IoTML.Software.Resource.impl.OnDeviceResourceImpl
+ * @see IoTML.Software.Resource.impl.ResourcePackageImpl#getOnDeviceResource()
+ * @generated
+ */
+ EClass ON_DEVICE_RESOURCE = eINSTANCE.getOnDeviceResource();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ON_DEVICE_RESOURCE__BASE_CLASS = eINSTANCE.getOnDeviceResource_Base_Class();
+
+ /**
+ * The meta object literal for the '<em><b>Device Broker</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ON_DEVICE_RESOURCE__DEVICE_BROKER = eINSTANCE.getOnDeviceResource_DeviceBroker();
+
+ /**
+ * The meta object literal for the '<em><b>Memory Broker</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ON_DEVICE_RESOURCE__MEMORY_BROKER = eINSTANCE.getOnDeviceResource_MemoryBroker();
+
+ }
+
+} //ResourcePackage
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/impl/NetworkResourceImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/impl/NetworkResourceImpl.java
new file mode 100644
index 0000000..a26f9b3
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/impl/NetworkResourceImpl.java
@@ -0,0 +1,151 @@
+/**
+ */
+package IoTML.Software.Resource.impl;
+
+import IoTML.Software.Resource.NetworkResource;
+import IoTML.Software.Resource.ResourcePackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Network Resource</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Software.Resource.impl.NetworkResourceImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class NetworkResourceImpl extends MinimalEObjectImpl.Container implements NetworkResource {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NetworkResourceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ResourcePackage.Literals.NETWORK_RESOURCE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ResourcePackage.NETWORK_RESOURCE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ResourcePackage.NETWORK_RESOURCE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ResourcePackage.NETWORK_RESOURCE__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ResourcePackage.NETWORK_RESOURCE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ResourcePackage.NETWORK_RESOURCE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ResourcePackage.NETWORK_RESOURCE__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //NetworkResourceImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/impl/OnDeviceResourceImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/impl/OnDeviceResourceImpl.java
new file mode 100644
index 0000000..295d949
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/impl/OnDeviceResourceImpl.java
@@ -0,0 +1,274 @@
+/**
+ */
+package IoTML.Software.Resource.impl;
+
+import IoTML.Software.Resource.OnDeviceResource;
+import IoTML.Software.Resource.ResourcePackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+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.papyrus.MARTE.MARTE_DesignModel.SRM.SW_Brokering.DeviceBroker;
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.SRM.SW_Brokering.MemoryBroker;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>On Device Resource</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link IoTML.Software.Resource.impl.OnDeviceResourceImpl#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link IoTML.Software.Resource.impl.OnDeviceResourceImpl#getDeviceBroker <em>Device Broker</em>}</li>
+ * <li>{@link IoTML.Software.Resource.impl.OnDeviceResourceImpl#getMemoryBroker <em>Memory Broker</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OnDeviceResourceImpl extends MinimalEObjectImpl.Container implements OnDeviceResource {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * The cached value of the '{@link #getDeviceBroker() <em>Device Broker</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDeviceBroker()
+ * @generated
+ * @ordered
+ */
+ protected DeviceBroker deviceBroker;
+
+ /**
+ * The cached value of the '{@link #getMemoryBroker() <em>Memory Broker</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMemoryBroker()
+ * @generated
+ * @ordered
+ */
+ protected MemoryBroker memoryBroker;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OnDeviceResourceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ResourcePackage.Literals.ON_DEVICE_RESOURCE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ResourcePackage.ON_DEVICE_RESOURCE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ResourcePackage.ON_DEVICE_RESOURCE__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DeviceBroker getDeviceBroker() {
+ if (deviceBroker != null && deviceBroker.eIsProxy()) {
+ InternalEObject oldDeviceBroker = (InternalEObject)deviceBroker;
+ deviceBroker = (DeviceBroker)eResolveProxy(oldDeviceBroker);
+ if (deviceBroker != oldDeviceBroker) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ResourcePackage.ON_DEVICE_RESOURCE__DEVICE_BROKER, oldDeviceBroker, deviceBroker));
+ }
+ }
+ return deviceBroker;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DeviceBroker basicGetDeviceBroker() {
+ return deviceBroker;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDeviceBroker(DeviceBroker newDeviceBroker) {
+ DeviceBroker oldDeviceBroker = deviceBroker;
+ deviceBroker = newDeviceBroker;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ResourcePackage.ON_DEVICE_RESOURCE__DEVICE_BROKER, oldDeviceBroker, deviceBroker));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MemoryBroker getMemoryBroker() {
+ if (memoryBroker != null && memoryBroker.eIsProxy()) {
+ InternalEObject oldMemoryBroker = (InternalEObject)memoryBroker;
+ memoryBroker = (MemoryBroker)eResolveProxy(oldMemoryBroker);
+ if (memoryBroker != oldMemoryBroker) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ResourcePackage.ON_DEVICE_RESOURCE__MEMORY_BROKER, oldMemoryBroker, memoryBroker));
+ }
+ }
+ return memoryBroker;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MemoryBroker basicGetMemoryBroker() {
+ return memoryBroker;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMemoryBroker(MemoryBroker newMemoryBroker) {
+ MemoryBroker oldMemoryBroker = memoryBroker;
+ memoryBroker = newMemoryBroker;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ResourcePackage.ON_DEVICE_RESOURCE__MEMORY_BROKER, oldMemoryBroker, memoryBroker));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ResourcePackage.ON_DEVICE_RESOURCE__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ case ResourcePackage.ON_DEVICE_RESOURCE__DEVICE_BROKER:
+ if (resolve) return getDeviceBroker();
+ return basicGetDeviceBroker();
+ case ResourcePackage.ON_DEVICE_RESOURCE__MEMORY_BROKER:
+ if (resolve) return getMemoryBroker();
+ return basicGetMemoryBroker();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ResourcePackage.ON_DEVICE_RESOURCE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ case ResourcePackage.ON_DEVICE_RESOURCE__DEVICE_BROKER:
+ setDeviceBroker((DeviceBroker)newValue);
+ return;
+ case ResourcePackage.ON_DEVICE_RESOURCE__MEMORY_BROKER:
+ setMemoryBroker((MemoryBroker)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ResourcePackage.ON_DEVICE_RESOURCE__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ case ResourcePackage.ON_DEVICE_RESOURCE__DEVICE_BROKER:
+ setDeviceBroker((DeviceBroker)null);
+ return;
+ case ResourcePackage.ON_DEVICE_RESOURCE__MEMORY_BROKER:
+ setMemoryBroker((MemoryBroker)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ResourcePackage.ON_DEVICE_RESOURCE__BASE_CLASS:
+ return base_Class != null;
+ case ResourcePackage.ON_DEVICE_RESOURCE__DEVICE_BROKER:
+ return deviceBroker != null;
+ case ResourcePackage.ON_DEVICE_RESOURCE__MEMORY_BROKER:
+ return memoryBroker != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //OnDeviceResourceImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/impl/ResourceFactoryImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/impl/ResourceFactoryImpl.java
new file mode 100644
index 0000000..842d313
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/impl/ResourceFactoryImpl.java
@@ -0,0 +1,104 @@
+/**
+ */
+package IoTML.Software.Resource.impl;
+
+import IoTML.Software.Resource.*;
+
+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 ResourceFactoryImpl extends EFactoryImpl implements ResourceFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ResourceFactory init() {
+ try {
+ ResourceFactory theResourceFactory = (ResourceFactory)EPackage.Registry.INSTANCE.getEFactory(ResourcePackage.eNS_URI);
+ if (theResourceFactory != null) {
+ return theResourceFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new ResourceFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ResourceFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case ResourcePackage.NETWORK_RESOURCE: return createNetworkResource();
+ case ResourcePackage.ON_DEVICE_RESOURCE: return createOnDeviceResource();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NetworkResource createNetworkResource() {
+ NetworkResourceImpl networkResource = new NetworkResourceImpl();
+ return networkResource;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OnDeviceResource createOnDeviceResource() {
+ OnDeviceResourceImpl onDeviceResource = new OnDeviceResourceImpl();
+ return onDeviceResource;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ResourcePackage getResourcePackage() {
+ return (ResourcePackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ public static ResourcePackage getPackage() {
+ return ResourcePackage.eINSTANCE;
+ }
+
+} //ResourceFactoryImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/impl/ResourcePackageImpl.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/impl/ResourcePackageImpl.java
new file mode 100644
index 0000000..b974459
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/impl/ResourcePackageImpl.java
@@ -0,0 +1,325 @@
+/**
+ */
+package IoTML.Software.Resource.impl;
+
+import IoTML.Animate.AnimatePackage;
+
+import IoTML.Animate.impl.AnimatePackageImpl;
+
+import IoTML.Hardware.Actuator.ActuatorPackage;
+
+import IoTML.Hardware.Actuator.impl.ActuatorPackageImpl;
+
+import IoTML.Hardware.Core.CorePackage;
+
+import IoTML.Hardware.Core.impl.CorePackageImpl;
+
+import IoTML.Hardware.Network.NetworkPackage;
+
+import IoTML.Hardware.Network.impl.NetworkPackageImpl;
+
+import IoTML.Hardware.Sensor.SensorPackage;
+
+import IoTML.Hardware.Sensor.impl.SensorPackageImpl;
+
+import IoTML.Hybrid.HybridPackage;
+
+import IoTML.Hybrid.impl.HybridPackageImpl;
+
+import IoTML.Software.Artefact.ArtefactPackage;
+
+import IoTML.Software.Artefact.impl.ArtefactPackageImpl;
+
+import IoTML.Software.Core.Structure.StructurePackage;
+
+import IoTML.Software.Core.Structure.impl.StructurePackageImpl;
+
+import IoTML.Software.Resource.NetworkResource;
+import IoTML.Software.Resource.OnDeviceResource;
+import IoTML.Software.Resource.ResourceFactory;
+import IoTML.Software.Resource.ResourcePackage;
+
+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;
+
+import org.eclipse.papyrus.MARTE.MARTEPackage;
+
+import org.eclipse.papyrus.MARTE.MARTE_DesignModel.SRM.SW_Brokering.SW_BrokeringPackage;
+
+import org.eclipse.papyrus.MARTE_Library.BasicNFP_Types.BasicNFP_TypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.GRM_BasicTypes.GRM_BasicTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_DataTypes.MARTE_DataTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MARTE_PrimitivesTypes.MARTE_PrimitivesTypesPackage;
+
+import org.eclipse.papyrus.MARTE_Library.MeasurementUnits.MeasurementUnitsPackage;
+
+import org.eclipse.papyrus.MARTE_Library.RS_Library.RS_LibraryPackage;
+
+import org.eclipse.papyrus.MARTE_Library.TimeLibrary.TimeLibraryPackage;
+
+import org.eclipse.papyrus.MARTE_Library.TimeTypesLibrary.TimeTypesLibraryPackage;
+
+import org.eclipse.papyrus.sysml14.sysmlPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ResourcePackageImpl extends EPackageImpl implements ResourcePackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass networkResourceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass onDeviceResourceEClass = 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 IoTML.Software.Resource.ResourcePackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private ResourcePackageImpl() {
+ super(eNS_URI, ResourceFactory.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 ResourcePackage#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 ResourcePackage init() {
+ if (isInited) return (ResourcePackage)EPackage.Registry.INSTANCE.getEPackage(ResourcePackage.eNS_URI);
+
+ // Obtain or create and register package
+ ResourcePackageImpl theResourcePackage = (ResourcePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ResourcePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ResourcePackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ MARTEPackage.eINSTANCE.eClass();
+ MeasurementUnitsPackage.eINSTANCE.eClass();
+ GRM_BasicTypesPackage.eINSTANCE.eClass();
+ MARTE_DataTypesPackage.eINSTANCE.eClass();
+ BasicNFP_TypesPackage.eINSTANCE.eClass();
+ TimeTypesLibraryPackage.eINSTANCE.eClass();
+ TimeLibraryPackage.eINSTANCE.eClass();
+ RS_LibraryPackage.eINSTANCE.eClass();
+ MARTE_PrimitivesTypesPackage.eINSTANCE.eClass();
+ sysmlPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ AnimatePackageImpl theAnimatePackage = (AnimatePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(AnimatePackage.eNS_URI) instanceof AnimatePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(AnimatePackage.eNS_URI) : AnimatePackage.eINSTANCE);
+ ActuatorPackageImpl theActuatorPackage = (ActuatorPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ActuatorPackage.eNS_URI) instanceof ActuatorPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ActuatorPackage.eNS_URI) : ActuatorPackage.eINSTANCE);
+ SensorPackageImpl theSensorPackage = (SensorPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SensorPackage.eNS_URI) instanceof SensorPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SensorPackage.eNS_URI) : SensorPackage.eINSTANCE);
+ NetworkPackageImpl theNetworkPackage = (NetworkPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(NetworkPackage.eNS_URI) instanceof NetworkPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(NetworkPackage.eNS_URI) : NetworkPackage.eINSTANCE);
+ CorePackageImpl theCorePackage = (CorePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI) instanceof CorePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI) : CorePackage.eINSTANCE);
+ HybridPackageImpl theHybridPackage = (HybridPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(HybridPackage.eNS_URI) instanceof HybridPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(HybridPackage.eNS_URI) : HybridPackage.eINSTANCE);
+ ArtefactPackageImpl theArtefactPackage = (ArtefactPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ArtefactPackage.eNS_URI) instanceof ArtefactPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ArtefactPackage.eNS_URI) : ArtefactPackage.eINSTANCE);
+ StructurePackageImpl theStructurePackage = (StructurePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(StructurePackage.eNS_URI) instanceof StructurePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(StructurePackage.eNS_URI) : StructurePackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theResourcePackage.createPackageContents();
+ theAnimatePackage.createPackageContents();
+ theActuatorPackage.createPackageContents();
+ theSensorPackage.createPackageContents();
+ theNetworkPackage.createPackageContents();
+ theCorePackage.createPackageContents();
+ theHybridPackage.createPackageContents();
+ theArtefactPackage.createPackageContents();
+ theStructurePackage.createPackageContents();
+
+ // Initialize created meta-data
+ theResourcePackage.initializePackageContents();
+ theAnimatePackage.initializePackageContents();
+ theActuatorPackage.initializePackageContents();
+ theSensorPackage.initializePackageContents();
+ theNetworkPackage.initializePackageContents();
+ theCorePackage.initializePackageContents();
+ theHybridPackage.initializePackageContents();
+ theArtefactPackage.initializePackageContents();
+ theStructurePackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theResourcePackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(ResourcePackage.eNS_URI, theResourcePackage);
+ return theResourcePackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNetworkResource() {
+ return networkResourceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNetworkResource_Base_Class() {
+ return (EReference)networkResourceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOnDeviceResource() {
+ return onDeviceResourceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOnDeviceResource_Base_Class() {
+ return (EReference)onDeviceResourceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOnDeviceResource_DeviceBroker() {
+ return (EReference)onDeviceResourceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOnDeviceResource_MemoryBroker() {
+ return (EReference)onDeviceResourceEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ResourceFactory getResourceFactory() {
+ return (ResourceFactory)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
+ networkResourceEClass = createEClass(NETWORK_RESOURCE);
+ createEReference(networkResourceEClass, NETWORK_RESOURCE__BASE_CLASS);
+
+ onDeviceResourceEClass = createEClass(ON_DEVICE_RESOURCE);
+ createEReference(onDeviceResourceEClass, ON_DEVICE_RESOURCE__BASE_CLASS);
+ createEReference(onDeviceResourceEClass, ON_DEVICE_RESOURCE__DEVICE_BROKER);
+ createEReference(onDeviceResourceEClass, ON_DEVICE_RESOURCE__MEMORY_BROKER);
+ }
+
+ /**
+ * <!-- 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);
+
+ // Obtain other dependent packages
+ UMLPackage theUMLPackage = (UMLPackage)EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
+ SW_BrokeringPackage theSW_BrokeringPackage = (SW_BrokeringPackage)EPackage.Registry.INSTANCE.getEPackage(SW_BrokeringPackage.eNS_URI);
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(networkResourceEClass, NetworkResource.class, "NetworkResource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getNetworkResource_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, NetworkResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(onDeviceResourceEClass, OnDeviceResource.class, "OnDeviceResource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getOnDeviceResource_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, OnDeviceResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getOnDeviceResource_DeviceBroker(), theSW_BrokeringPackage.getDeviceBroker(), null, "deviceBroker", null, 0, 1, OnDeviceResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getOnDeviceResource_MemoryBroker(), theSW_BrokeringPackage.getMemoryBroker(), null, "memoryBroker", null, 0, 1, OnDeviceResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //ResourcePackageImpl
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/util/ResourceAdapterFactory.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/util/ResourceAdapterFactory.java
new file mode 100644
index 0000000..ca5481c
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/util/ResourceAdapterFactory.java
@@ -0,0 +1,133 @@
+/**
+ */
+package IoTML.Software.Resource.util;
+
+import IoTML.Software.Resource.*;
+
+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 IoTML.Software.Resource.ResourcePackage
+ * @generated
+ */
+public class ResourceAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ResourcePackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ResourceAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = ResourcePackage.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
+ */
+ 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 ResourceSwitch modelSwitch =
+ new ResourceSwitch() {
+ public Object caseNetworkResource(NetworkResource object) {
+ return createNetworkResourceAdapter();
+ }
+ public Object caseOnDeviceResource(OnDeviceResource object) {
+ return createOnDeviceResourceAdapter();
+ }
+ public Object 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
+ */
+ public Adapter createAdapter(Notifier target) {
+ return (Adapter)modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Software.Resource.NetworkResource <em>Network Resource</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 IoTML.Software.Resource.NetworkResource
+ * @generated
+ */
+ public Adapter createNetworkResourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link IoTML.Software.Resource.OnDeviceResource <em>On Device Resource</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 IoTML.Software.Resource.OnDeviceResource
+ * @generated
+ */
+ public Adapter createOnDeviceResourceAdapter() {
+ 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;
+ }
+
+} //ResourceAdapterFactory
diff --git a/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/util/ResourceSwitch.java b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/util/ResourceSwitch.java
new file mode 100644
index 0000000..9996f6e
--- /dev/null
+++ b/org.eclipse.papyrus.iotml.profile/src/IoTML/Software/Resource/util/ResourceSwitch.java
@@ -0,0 +1,147 @@
+/**
+ */
+package IoTML.Software.Resource.util;
+
+import IoTML.Software.Resource.*;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- 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 IoTML.Software.Resource.ResourcePackage
+ * @generated
+ */
+public class ResourceSwitch {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ResourcePackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ResourceSwitch() {
+ if (modelPackage == null) {
+ modelPackage = ResourcePackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * 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
+ */
+ public Object doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch((EClass)eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case ResourcePackage.NETWORK_RESOURCE: {
+ NetworkResource networkResource = (NetworkResource)theEObject;
+ Object result = caseNetworkResource(networkResource);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ResourcePackage.ON_DEVICE_RESOURCE: {
+ OnDeviceResource onDeviceResource = (OnDeviceResource)theEObject;
+ Object result = caseOnDeviceResource(onDeviceResource);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Network Resource</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>Network Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseNetworkResource(NetworkResource object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>On Device Resource</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>On Device Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseOnDeviceResource(OnDeviceResource 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
+ */
+ public Object defaultCase(EObject object) {
+ return null;
+ }
+
+} //ResourceSwitch