From 3e83115734b314a69eeeeba95a2432af7c7fca28 Mon Sep 17 00:00:00 2001
From: Stefan Herrnleben <s.herrnleben@syslex.de>
Date: Thu, 27 Jul 2017 14:49:18 +0200
Subject: [PATCH] remove java files from git and generate them via maven

---
 .../META-INF/MANIFEST.MF                      |    3 -
 .../build.properties                          |    6 +-
 .../model/DNIMM3AP.xcore                      |    3 +-
 tools.descartes.dni.adaptation/plugin.xml     |   40 -
 tools.descartes.dni.adaptation/pom.xml        |  141 +-
 .../resources-test/scenario0B.dni             |  229 -
 .../resources-test/scenario0B.dniap           |   10 -
 .../dni/dnimm3/tools/ParserTest.java          |   59 -
 .../descartes/dni/dnimm3/tools/UtilTest.java  |   27 -
 .../dni/dnimm3ap/AdaptableEndPerformance.java |   67 -
 .../AdaptableIntermediatePerformance.java     |  121 -
 .../descartes/dni/dnimm3ap/AdaptableLink.java |  104 -
 .../dnimm3ap/AdaptableLinkPerformance.java    |   94 -
 .../dnimm3ap/AdaptableNetworkInterface.java   |   58 -
 .../AdaptableNetworkInterfacePerformance.java |   94 -
 .../descartes/dni/dnimm3ap/AdaptableNode.java |  138 -
 .../dnimm3ap/AdaptableSdnNodePerformance.java |   75 -
 .../dni/dnimm3ap/AdaptationGroups.java        |   58 -
 .../dni/dnimm3ap/AdaptationPoints.java        |  105 -
 .../dni/dnimm3ap/AdaptationRepositories.java  |  160 -
 .../dni/dnimm3ap/AlternativeConstantLong.java |   18 -
 .../AlternativeConstantLongVariableSet.java   |   18 -
 .../dni/dnimm3ap/AlternativeParameterSet.java |   40 -
 .../dni/dnimm3ap/AlternativeVariable.java     |   18 -
 .../dni/dnimm3ap/AlternativeVariableSet.java  |   18 -
 .../descartes/dni/dnimm3ap/DNIAPFactory.java  |  168 -
 .../descartes/dni/dnimm3ap/DNIAPPackage.java  | 2526 -----
 .../dni/dnimm3ap/IAdaptableEntity.java        |   52 -
 .../dnimm3ap/IAdaptableGroupableEntity.java   |   18 -
 .../dni/dnimm3ap/IAdaptationGroup.java        |   19 -
 .../dni/dnimm3ap/LinkAdaptationGroup.java     |   42 -
 .../dni/dnimm3ap/NodeAdaptationGroup.java     |   42 -
 .../impl/AdaptableEndPerformanceImpl.java     |  269 -
 .../AdaptableIntermediatePerformanceImpl.java |  401 -
 .../dni/dnimm3ap/impl/AdaptableLinkImpl.java  |  381 -
 .../impl/AdaptableLinkPerformanceImpl.java    |  335 -
 .../impl/AdaptableNetworkInterfaceImpl.java   |  232 -
 ...ptableNetworkInterfacePerformanceImpl.java |  335 -
 .../dni/dnimm3ap/impl/AdaptableNodeImpl.java  |  451 -
 .../impl/AdaptableSdnNodePerformanceImpl.java |  266 -
 .../dnimm3ap/impl/AdaptationGroupsImpl.java   |  190 -
 .../dnimm3ap/impl/AdaptationPointsImpl.java   |  302 -
 .../impl/AdaptationRepositoriesImpl.java      |  412 -
 .../impl/AlternativeConstantLongImpl.java     |   39 -
 ...lternativeConstantLongVariableSetImpl.java |  185 -
 .../impl/AlternativeVariableImpl.java         |   39 -
 .../impl/AlternativeVariableSetImpl.java      |  185 -
 .../dni/dnimm3ap/impl/DNIAPFactoryImpl.java   |  249 -
 .../dni/dnimm3ap/impl/DNIAPPackageImpl.java   | 1142 ---
 .../impl/LinkAdaptationGroupImpl.java         |  444 -
 .../impl/NodeAdaptationGroupImpl.java         |  444 -
 .../DNIAPActionBarContributor.java            |  425 -
 .../dnimm3ap/presentation/DNIAPEditor.java    | 1825 ----
 .../presentation/DNIAPModelWizard.java        |  627 --
 .../AdaptableEndPerformanceItemProvider.java  |  222 -
 ...leIntermediatePerformanceItemProvider.java |  260 -
 .../provider/AdaptableLinkItemProvider.java   |  250 -
 .../AdaptableLinkPerformanceItemProvider.java |  252 -
 ...AdaptableNetworkInterfaceItemProvider.java |  204 -
 ...tworkInterfacePerformanceItemProvider.java |  252 -
 .../provider/AdaptableNodeItemProvider.java   |  296 -
 ...aptableSdnNodePerformanceItemProvider.java |  227 -
 .../AdaptationGroupsItemProvider.java         |  175 -
 .../AdaptationPointsItemProvider.java         |  199 -
 .../AdaptationRepositoriesItemProvider.java   |  217 -
 .../AlternativeConstantLongItemProvider.java  |  109 -
 ...veConstantLongVariableSetItemProvider.java |  591 --
 .../AlternativeVariableItemProvider.java      |  109 -
 .../AlternativeVariableSetItemProvider.java   |  591 --
 .../DNIAPItemProviderAdapterFactory.java      |  535 -
 .../dnimm3ap/provider/Dnimm3apEditPlugin.java |   94 -
 .../LinkAdaptationGroupItemProvider.java      |  255 -
 .../NodeAdaptationGroupItemProvider.java      |  255 -
 .../dni/dnimm3ap/tools/DNIAPParser.java       |   65 -
 .../dni/dnimm3ap/tools/DNIAPUtil.java         |   17 -
 .../dnimm3ap/util/DNIAPAdapterFactory.java    |  520 -
 .../dni/dnimm3ap/util/DNIAPSwitch.java        |  586 --
 tools.descartes.dni.core/META-INF/MANIFEST.MF |    3 -
 tools.descartes.dni.core/build.properties     |    2 +-
 tools.descartes.dni.core/model/DNIMM3.xcore   |    3 +-
 .../model/Example-SPECjEnterprise2010_6.xmi   |   38 -
 .../model/output.genmodel                     |  283 -
 tools.descartes.dni.core/plugin.xml           |   87 -
 tools.descartes.dni.core/pom.xml              |  145 +-
 .../resources-test/scenario0A.dni             |  222 -
 .../resources-test/scenario0B.dni             |  229 -
 .../dni/dnimm3/tools/ParserTest.java          |   58 -
 .../descartes/dni/dnimm3/tools/UtilTest.java  |   24 -
 .../descartes/dni/dnimm3/AbstractAction.java  |   18 -
 .../dni/dnimm3/AddressableEntity.java         |   41 -
 .../descartes/dni/dnimm3/BranchAction.java    |   40 -
 .../tools/descartes/dni/dnimm3/Common.java    |   17 -
 .../dni/dnimm3/CommunicatingApplication.java  |   71 -
 .../dni/dnimm3/ConstantDoubleVariable.java    |   49 -
 .../dni/dnimm3/ConstantLongVariable.java      |   49 -
 .../descartes/dni/dnimm3/DNIFactory.java      |  573 --
 .../descartes/dni/dnimm3/DNIPackage.java      | 8813 -----------------
 .../tools/descartes/dni/dnimm3/DNIUnit.java   |   18 -
 .../tools/descartes/dni/dnimm3/DataUnit.java  |   53 -
 .../descartes/dni/dnimm3/Dependency.java      |   50 -
 .../tools/descartes/dni/dnimm3/Direction.java |  159 -
 .../dni/dnimm3/DiscreteFunction.java          |   40 -
 .../src/tools/descartes/dni/dnimm3/End.java   |  115 -
 .../descartes/dni/dnimm3/EndPerformance.java  |   78 -
 .../dni/dnimm3/EndPerformanceType.java        |   42 -
 .../tools/descartes/dni/dnimm3/Entity.java    |   17 -
 .../descartes/dni/dnimm3/EntityAddress.java   |   78 -
 .../descartes/dni/dnimm3/EntityTypes.java     |   41 -
 .../dni/dnimm3/ExponentialFunction.java       |   49 -
 .../descartes/dni/dnimm3/FloatCoordinate.java |   77 -
 .../src/tools/descartes/dni/dnimm3/Flow.java  |  103 -
 .../tools/descartes/dni/dnimm3/FlowRoute.java |  158 -
 .../descartes/dni/dnimm3/FlowTraffic.java     |   69 -
 .../tools/descartes/dni/dnimm3/Function.java  |   17 -
 .../dni/dnimm3/GenericFlowTraffic.java        |   49 -
 .../descartes/dni/dnimm3/GenericWorkload.java |   40 -
 .../src/tools/descartes/dni/dnimm3/Hop.java   |   77 -
 .../src/tools/descartes/dni/dnimm3/IType.java |   18 -
 .../descartes/dni/dnimm3/ITypedEntity.java    |   17 -
 .../descartes/dni/dnimm3/Identifier.java      |   94 -
 .../descartes/dni/dnimm3/Intermediate.java    |   95 -
 .../dni/dnimm3/IntermediatePerformance.java   |  132 -
 .../dnimm3/IntermediatePerformanceType.java   |   42 -
 .../src/tools/descartes/dni/dnimm3/Link.java  |  113 -
 .../dni/dnimm3/LinkPerformanceType.java       |   42 -
 .../tools/descartes/dni/dnimm3/LinkType.java  |   42 -
 .../descartes/dni/dnimm3/LoopAction.java      |   76 -
 .../descartes/dni/dnimm3/NamedElement.java    |   77 -
 .../dni/dnimm3/NetworkConfiguration.java      |   95 -
 .../dni/dnimm3/NetworkInfrastructure.java     |  185 -
 .../dni/dnimm3/NetworkInterface.java          |  151 -
 .../NetworkInterfacePerformanceType.java      |   42 -
 .../dni/dnimm3/NetworkInterfaceType.java      |   42 -
 .../descartes/dni/dnimm3/NetworkProtocol.java |   78 -
 .../dni/dnimm3/NetworkStructure.java          |   58 -
 .../descartes/dni/dnimm3/NetworkTraffic.java  |   58 -
 .../src/tools/descartes/dni/dnimm3/Node.java  |  276 -
 .../tools/descartes/dni/dnimm3/NodeType.java  |   42 -
 .../descartes/dni/dnimm3/PerformanceLink.java |  105 -
 .../dnimm3/PerformanceNetworkInterface.java   |  161 -
 .../dni/dnimm3/PerformanceSdnNode.java        |  105 -
 .../dni/dnimm3/PerformanceSpecification.java  |   18 -
 .../descartes/dni/dnimm3/ProtocolLayer.java   |  107 -
 .../descartes/dni/dnimm3/ProtocolStack.java   |   40 -
 .../dni/dnimm3/ProtocolsRepository.java       |   58 -
 .../descartes/dni/dnimm3/RandomVariable.java  |   49 -
 .../src/tools/descartes/dni/dnimm3/Route.java |  103 -
 .../dni/dnimm3/RoutesRepository.java          |   75 -
 .../src/tools/descartes/dni/dnimm3/SDN.java   |   96 -
 .../descartes/dni/dnimm3/SdnControlFlow.java  |   49 -
 .../descartes/dni/dnimm3/SdnController.java   |   61 -
 .../dni/dnimm3/SdnControllerApplication.java  |  106 -
 .../descartes/dni/dnimm3/SdnFlowRule.java     |  188 -
 .../dni/dnimm3/SdnNodePerformanceType.java    |   42 -
 .../descartes/dni/dnimm3/SequenceAction.java  |   40 -
 .../src/tools/descartes/dni/dnimm3/Speed.java |  241 -
 .../tools/descartes/dni/dnimm3/SpeedUnit.java |   83 -
 .../descartes/dni/dnimm3/StartAction.java     |   17 -
 .../descartes/dni/dnimm3/StopAction.java      |   17 -
 .../src/tools/descartes/dni/dnimm3/Time.java  |  241 -
 .../tools/descartes/dni/dnimm3/TimeUnit.java  |   52 -
 .../descartes/dni/dnimm3/TrafficSource.java   |   69 -
 .../descartes/dni/dnimm3/TransmitAction.java  |   49 -
 .../descartes/dni/dnimm3/UnitPrefix.java      |  268 -
 .../tools/descartes/dni/dnimm3/Variable.java  |   17 -
 .../descartes/dni/dnimm3/WaitAction.java      |   49 -
 .../tools/descartes/dni/dnimm3/Workload.java  |   18 -
 .../dni/dnimm3/impl/BranchActionImpl.java     |  153 -
 .../descartes/dni/dnimm3/impl/CommonImpl.java |   39 -
 .../impl/CommunicatingApplicationImpl.java    |  415 -
 .../impl/ConstantDoubleVariableImpl.java      |  244 -
 .../dnimm3/impl/ConstantLongVariableImpl.java |  244 -
 .../dni/dnimm3/impl/DNIFactoryImpl.java       |  843 --
 .../dni/dnimm3/impl/DNIPackageImpl.java       | 3420 -------
 .../dni/dnimm3/impl/DataUnitImpl.java         |  164 -
 .../dni/dnimm3/impl/DirectionImpl.java        |  543 -
 .../dni/dnimm3/impl/DiscreteFunctionImpl.java |  222 -
 .../descartes/dni/dnimm3/impl/EndImpl.java    |  347 -
 .../dni/dnimm3/impl/EndPerformanceImpl.java   |  277 -
 .../dnimm3/impl/EndPerformanceTypeImpl.java   |  443 -
 .../dni/dnimm3/impl/EntityAddressImpl.java    |  225 -
 .../dni/dnimm3/impl/EntityTypesImpl.java      |  153 -
 .../dnimm3/impl/ExponentialFunctionImpl.java  |  244 -
 .../dni/dnimm3/impl/FloatCoordinateImpl.java  |  217 -
 .../descartes/dni/dnimm3/impl/FlowImpl.java   |  460 -
 .../dni/dnimm3/impl/FlowRouteImpl.java        |  568 --
 .../dni/dnimm3/impl/FlowTrafficImpl.java      |  233 -
 .../dnimm3/impl/GenericFlowTrafficImpl.java   |  175 -
 .../dni/dnimm3/impl/GenericWorkloadImpl.java  |  153 -
 .../descartes/dni/dnimm3/impl/HopImpl.java    |  236 -
 .../dni/dnimm3/impl/IdentifierImpl.java       |  226 -
 .../dni/dnimm3/impl/IntermediateImpl.java     |  299 -
 .../impl/IntermediatePerformanceImpl.java     |  409 -
 .../impl/IntermediatePerformanceTypeImpl.java |  443 -
 .../descartes/dni/dnimm3/impl/LinkImpl.java   |  530 -
 .../dnimm3/impl/LinkPerformanceTypeImpl.java  |  443 -
 .../dni/dnimm3/impl/LinkTypeImpl.java         |  443 -
 .../dni/dnimm3/impl/LoopActionImpl.java       |  243 -
 .../dnimm3/impl/NetworkConfigurationImpl.java |  289 -
 .../impl/NetworkInfrastructureImpl.java       |  499 -
 .../dni/dnimm3/impl/NetworkInterfaceImpl.java |  803 --
 .../NetworkInterfacePerformanceTypeImpl.java  |  443 -
 .../dnimm3/impl/NetworkInterfaceTypeImpl.java |  443 -
 .../dni/dnimm3/impl/NetworkProtocolImpl.java  |  359 -
 .../dni/dnimm3/impl/NetworkStructureImpl.java |  190 -
 .../dni/dnimm3/impl/NetworkTrafficImpl.java   |  190 -
 .../descartes/dni/dnimm3/impl/NodeImpl.java   |  874 --
 .../dni/dnimm3/impl/NodeTypeImpl.java         |  443 -
 .../dni/dnimm3/impl/PerformanceLinkImpl.java  |  343 -
 .../impl/PerformanceNetworkInterfaceImpl.java |  466 -
 .../dnimm3/impl/PerformanceSdnNodeImpl.java   |  343 -
 .../dni/dnimm3/impl/ProtocolLayerImpl.java    |  514 -
 .../dni/dnimm3/impl/ProtocolStackImpl.java    |  311 -
 .../dnimm3/impl/ProtocolsRepositoryImpl.java  |  190 -
 .../dni/dnimm3/impl/RandomVariableImpl.java   |  243 -
 .../descartes/dni/dnimm3/impl/RouteImpl.java  |  453 -
 .../dni/dnimm3/impl/RoutesRepositoryImpl.java |  227 -
 .../descartes/dni/dnimm3/impl/SDNImpl.java    |  298 -
 .../dni/dnimm3/impl/SdnControlFlowImpl.java   |  156 -
 .../impl/SdnControllerApplicationImpl.java    |  341 -
 .../dni/dnimm3/impl/SdnControllerImpl.java    |  206 -
 .../dni/dnimm3/impl/SdnFlowRuleImpl.java      |  455 -
 .../impl/SdnNodePerformanceTypeImpl.java      |  443 -
 .../dni/dnimm3/impl/SequenceActionImpl.java   |  153 -
 .../dni/dnimm3/impl/SpeedUnitImpl.java        |  219 -
 .../dni/dnimm3/impl/StartActionImpl.java      |   39 -
 .../dni/dnimm3/impl/StopActionImpl.java       |   39 -
 .../dni/dnimm3/impl/TimeUnitImpl.java         |  164 -
 .../dni/dnimm3/impl/TrafficSourceImpl.java    |  458 -
 .../dni/dnimm3/impl/TransmitActionImpl.java   |  157 -
 .../dni/dnimm3/impl/WaitActionImpl.java       |  176 -
 .../presentation/DNIActionBarContributor.java |  425 -
 .../dni/dnimm3/presentation/DNIEditor.java    | 1822 ----
 .../dnimm3/presentation/DNIModelWizard.java   |  627 --
 .../provider/BranchActionItemProvider.java    |  198 -
 .../dnimm3/provider/CommonItemProvider.java   |  120 -
 .../CommunicatingApplicationItemProvider.java |  220 -
 .../ConstantDoubleVariableItemProvider.java   |  207 -
 .../ConstantLongVariableItemProvider.java     |  207 -
 .../DNIItemProviderAdapterFactory.java        | 1615 ---
 .../dnimm3/provider/DataUnitItemProvider.java |  160 -
 .../provider/DirectionItemProvider.java       |  273 -
 .../DiscreteFunctionItemProvider.java         |  185 -
 .../dni/dnimm3/provider/Dnimm3EditPlugin.java |   91 -
 .../dni/dnimm3/provider/EndItemProvider.java  |  219 -
 .../provider/EndPerformanceItemProvider.java  |  212 -
 .../EndPerformanceTypeItemProvider.java       |  253 -
 .../provider/EntityAddressItemProvider.java   |  181 -
 .../provider/EntityTypesItemProvider.java     |  203 -
 .../ExponentialFunctionItemProvider.java      |  207 -
 .../provider/FloatCoordinateItemProvider.java |  180 -
 .../dni/dnimm3/provider/FlowItemProvider.java |  250 -
 .../provider/FlowRouteItemProvider.java       |  290 -
 .../provider/FlowTrafficItemProvider.java     |  170 -
 .../GenericFlowTrafficItemProvider.java       |  165 -
 .../provider/GenericWorkloadItemProvider.java |  198 -
 .../dni/dnimm3/provider/HopItemProvider.java  |  192 -
 .../provider/IdentifierItemProvider.java      |  171 -
 .../provider/IntermediateItemProvider.java    |  196 -
 .../IntermediatePerformanceItemProvider.java  |  290 -
 ...termediatePerformanceTypeItemProvider.java |  253 -
 .../dni/dnimm3/provider/LinkItemProvider.java |  267 -
 .../LinkPerformanceTypeItemProvider.java      |  253 -
 .../dnimm3/provider/LinkTypeItemProvider.java |  253 -
 .../provider/LoopActionItemProvider.java      |  225 -
 .../NetworkConfigurationItemProvider.java     |  182 -
 .../NetworkInfrastructureItemProvider.java    |  244 -
 .../NetworkInterfaceItemProvider.java         |  371 -
 ...kInterfacePerformanceTypeItemProvider.java |  253 -
 .../NetworkInterfaceTypeItemProvider.java     |  253 -
 .../provider/NetworkProtocolItemProvider.java |  204 -
 .../NetworkStructureItemProvider.java         |  175 -
 .../provider/NetworkTrafficItemProvider.java  |  190 -
 .../dni/dnimm3/provider/NodeItemProvider.java |  340 -
 .../dnimm3/provider/NodeTypeItemProvider.java |  253 -
 .../provider/PerformanceLinkItemProvider.java |  262 -
 ...rformanceNetworkInterfaceItemProvider.java |  304 -
 .../PerformanceSdnNodeItemProvider.java       |  222 -
 .../provider/ProtocolLayerItemProvider.java   |  225 -
 .../provider/ProtocolStackItemProvider.java   |  197 -
 .../ProtocolsRepositoryItemProvider.java      |  175 -
 .../provider/RandomVariableItemProvider.java  |  190 -
 .../dnimm3/provider/RouteItemProvider.java    |  243 -
 .../RoutesRepositoryItemProvider.java         |  182 -
 .../dni/dnimm3/provider/SDNItemProvider.java  |  215 -
 .../provider/SdnControlFlowItemProvider.java  |  124 -
 .../SdnControllerApplicationItemProvider.java |  216 -
 .../provider/SdnControllerItemProvider.java   |  169 -
 .../provider/SdnFlowRuleItemProvider.java     |  273 -
 .../SdnNodePerformanceTypeItemProvider.java   |  253 -
 .../provider/SequenceActionItemProvider.java  |  198 -
 .../provider/SpeedUnitItemProvider.java       |  184 -
 .../provider/StartActionItemProvider.java     |  120 -
 .../provider/StopActionItemProvider.java      |  120 -
 .../dnimm3/provider/TimeUnitItemProvider.java |  160 -
 .../provider/TrafficSourceItemProvider.java   |  227 -
 .../provider/TransmitActionItemProvider.java  |  146 -
 .../provider/WaitActionItemProvider.java      |  188 -
 .../descartes/dni/dnimm3/tools/DNIParser.java |   65 -
 .../descartes/dni/dnimm3/tools/DNIUtil.java   |   17 -
 .../dni/dnimm3/util/DNIAdapterFactory.java    | 1434 ---
 .../descartes/dni/dnimm3/util/DNISwitch.java  | 1754 ----
 tools.descartes.dni.core/text/description.txt |  276 -
 303 files changed, 219 insertions(+), 81568 deletions(-)
 delete mode 100644 tools.descartes.dni.adaptation/resources-test/scenario0B.dni
 delete mode 100644 tools.descartes.dni.adaptation/resources-test/scenario0B.dniap
 delete mode 100644 tools.descartes.dni.adaptation/src-test/tools/descartes/dni/dnimm3/tools/ParserTest.java
 delete mode 100644 tools.descartes.dni.adaptation/src-test/tools/descartes/dni/dnimm3/tools/UtilTest.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableEndPerformance.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableIntermediatePerformance.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableLink.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableLinkPerformance.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNetworkInterface.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNetworkInterfacePerformance.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNode.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableSdnNodePerformance.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationGroups.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationPoints.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationRepositories.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AlternativeConstantLong.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AlternativeConstantLongVariableSet.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AlternativeParameterSet.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AlternativeVariable.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AlternativeVariableSet.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPFactory.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPPackage.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/IAdaptableEntity.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/IAdaptableGroupableEntity.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/IAdaptationGroup.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/LinkAdaptationGroup.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/NodeAdaptationGroup.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableEndPerformanceImpl.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableIntermediatePerformanceImpl.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableLinkImpl.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableLinkPerformanceImpl.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNetworkInterfaceImpl.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNetworkInterfacePerformanceImpl.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNodeImpl.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableSdnNodePerformanceImpl.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationGroupsImpl.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationPointsImpl.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationRepositoriesImpl.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AlternativeConstantLongImpl.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AlternativeConstantLongVariableSetImpl.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AlternativeVariableImpl.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AlternativeVariableSetImpl.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPFactoryImpl.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPPackageImpl.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/LinkAdaptationGroupImpl.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/NodeAdaptationGroupImpl.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/presentation/DNIAPActionBarContributor.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/presentation/DNIAPEditor.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/presentation/DNIAPModelWizard.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableEndPerformanceItemProvider.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableIntermediatePerformanceItemProvider.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableLinkItemProvider.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableLinkPerformanceItemProvider.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNetworkInterfaceItemProvider.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNetworkInterfacePerformanceItemProvider.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNodeItemProvider.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableSdnNodePerformanceItemProvider.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptationGroupsItemProvider.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptationPointsItemProvider.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptationRepositoriesItemProvider.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeConstantLongItemProvider.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeConstantLongVariableSetItemProvider.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeVariableItemProvider.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeVariableSetItemProvider.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/DNIAPItemProviderAdapterFactory.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/Dnimm3apEditPlugin.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/LinkAdaptationGroupItemProvider.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/NodeAdaptationGroupItemProvider.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/tools/DNIAPParser.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/tools/DNIAPUtil.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/util/DNIAPAdapterFactory.java
 delete mode 100644 tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/util/DNIAPSwitch.java
 delete mode 100644 tools.descartes.dni.core/model/Example-SPECjEnterprise2010_6.xmi
 delete mode 100644 tools.descartes.dni.core/model/output.genmodel
 delete mode 100644 tools.descartes.dni.core/resources-test/scenario0A.dni
 delete mode 100644 tools.descartes.dni.core/resources-test/scenario0B.dni
 delete mode 100644 tools.descartes.dni.core/src-test/tools/descartes/dni/dnimm3/tools/ParserTest.java
 delete mode 100644 tools.descartes.dni.core/src-test/tools/descartes/dni/dnimm3/tools/UtilTest.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/AbstractAction.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/AddressableEntity.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/BranchAction.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Common.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/CommunicatingApplication.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ConstantDoubleVariable.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ConstantLongVariable.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/DNIFactory.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/DNIPackage.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/DNIUnit.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/DataUnit.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Dependency.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Direction.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/DiscreteFunction.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/End.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/EndPerformance.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/EndPerformanceType.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Entity.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/EntityAddress.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/EntityTypes.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ExponentialFunction.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/FloatCoordinate.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Flow.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/FlowRoute.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/FlowTraffic.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Function.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/GenericFlowTraffic.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/GenericWorkload.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Hop.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/IType.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ITypedEntity.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Identifier.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Intermediate.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/IntermediatePerformance.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/IntermediatePerformanceType.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Link.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/LinkPerformanceType.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/LinkType.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/LoopAction.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NamedElement.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkConfiguration.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkInfrastructure.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkInterface.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkInterfacePerformanceType.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkInterfaceType.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkProtocol.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkStructure.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkTraffic.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Node.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NodeType.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/PerformanceLink.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/PerformanceNetworkInterface.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/PerformanceSdnNode.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/PerformanceSpecification.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ProtocolLayer.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ProtocolStack.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ProtocolsRepository.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/RandomVariable.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Route.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/RoutesRepository.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SDN.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SdnControlFlow.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SdnController.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SdnControllerApplication.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SdnFlowRule.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SdnNodePerformanceType.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SequenceAction.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Speed.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SpeedUnit.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/StartAction.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/StopAction.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Time.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/TimeUnit.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/TrafficSource.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/TransmitAction.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/UnitPrefix.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Variable.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/WaitAction.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Workload.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/BranchActionImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/CommonImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/CommunicatingApplicationImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ConstantDoubleVariableImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ConstantLongVariableImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DNIFactoryImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DNIPackageImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DataUnitImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DirectionImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DiscreteFunctionImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/EndImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/EndPerformanceImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/EndPerformanceTypeImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/EntityAddressImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/EntityTypesImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ExponentialFunctionImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/FloatCoordinateImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/FlowImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/FlowRouteImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/FlowTrafficImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/GenericFlowTrafficImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/GenericWorkloadImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/HopImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/IdentifierImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/IntermediateImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/IntermediatePerformanceImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/IntermediatePerformanceTypeImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/LinkImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/LinkPerformanceTypeImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/LinkTypeImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/LoopActionImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkConfigurationImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkInfrastructureImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkInterfaceImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkInterfacePerformanceTypeImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkInterfaceTypeImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkProtocolImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkStructureImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkTrafficImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NodeImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NodeTypeImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/PerformanceLinkImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/PerformanceNetworkInterfaceImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/PerformanceSdnNodeImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ProtocolLayerImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ProtocolStackImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ProtocolsRepositoryImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/RandomVariableImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/RouteImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/RoutesRepositoryImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SDNImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SdnControlFlowImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SdnControllerApplicationImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SdnControllerImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SdnFlowRuleImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SdnNodePerformanceTypeImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SequenceActionImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SpeedUnitImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/StartActionImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/StopActionImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/TimeUnitImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/TrafficSourceImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/TransmitActionImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/WaitActionImpl.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/presentation/DNIActionBarContributor.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/presentation/DNIEditor.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/presentation/DNIModelWizard.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/BranchActionItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/CommonItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/CommunicatingApplicationItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ConstantDoubleVariableItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ConstantLongVariableItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/DNIItemProviderAdapterFactory.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/DataUnitItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/DirectionItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/DiscreteFunctionItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/Dnimm3EditPlugin.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/EndItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/EndPerformanceItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/EndPerformanceTypeItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/EntityAddressItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/EntityTypesItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ExponentialFunctionItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/FloatCoordinateItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/FlowItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/FlowRouteItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/FlowTrafficItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/GenericFlowTrafficItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/GenericWorkloadItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/HopItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/IdentifierItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/IntermediateItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/IntermediatePerformanceItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/IntermediatePerformanceTypeItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/LinkItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/LinkPerformanceTypeItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/LinkTypeItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/LoopActionItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkConfigurationItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkInfrastructureItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkInterfaceItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkInterfacePerformanceTypeItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkInterfaceTypeItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkProtocolItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkStructureItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkTrafficItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NodeItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NodeTypeItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/PerformanceLinkItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/PerformanceNetworkInterfaceItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/PerformanceSdnNodeItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ProtocolLayerItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ProtocolStackItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ProtocolsRepositoryItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/RandomVariableItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/RouteItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/RoutesRepositoryItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SDNItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SdnControlFlowItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SdnControllerApplicationItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SdnControllerItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SdnFlowRuleItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SdnNodePerformanceTypeItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SequenceActionItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SpeedUnitItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/StartActionItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/StopActionItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/TimeUnitItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/TrafficSourceItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/TransmitActionItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/WaitActionItemProvider.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/tools/DNIParser.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/tools/DNIUtil.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/util/DNIAdapterFactory.java
 delete mode 100644 tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/util/DNISwitch.java
 delete mode 100644 tools.descartes.dni.core/text/description.txt

diff --git a/tools.descartes.dni.adaptation/META-INF/MANIFEST.MF b/tools.descartes.dni.adaptation/META-INF/MANIFEST.MF
index 9cd829c2..14c72089 100644
--- a/tools.descartes.dni.adaptation/META-INF/MANIFEST.MF
+++ b/tools.descartes.dni.adaptation/META-INF/MANIFEST.MF
@@ -4,14 +4,11 @@ Bundle-Name: %pluginName
 Bundle-SymbolicName: tools.descartes.dni.adaptation;singleton:=true
 Bundle-Version: 0.1.0.qualifier
 Bundle-ClassPath: .
-Bundle-Activator: tools.descartes.dni.dnimm3ap.provider.Dnimm3apEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: tools.descartes.dni.dnimm3ap,
  tools.descartes.dni.dnimm3ap.impl,
- tools.descartes.dni.dnimm3ap.presentation,
- tools.descartes.dni.dnimm3ap.provider,
  tools.descartes.dni.dnimm3ap.util
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.core.resources;visibility:=reexport,
diff --git a/tools.descartes.dni.adaptation/build.properties b/tools.descartes.dni.adaptation/build.properties
index 0e617c1a..2b6e33c8 100644
--- a/tools.descartes.dni.adaptation/build.properties
+++ b/tools.descartes.dni.adaptation/build.properties
@@ -1,10 +1,6 @@
-#
-
 bin.includes = .,\
                icons/,\
                META-INF/,\
                plugin.xml,\
                plugin.properties
-jars.compile.order = .
-source.. = src
-output.. = bin
+jars.compile.order = .
\ No newline at end of file
diff --git a/tools.descartes.dni.adaptation/model/DNIMM3AP.xcore b/tools.descartes.dni.adaptation/model/DNIMM3AP.xcore
index 203e73e9..517279d4 100644
--- a/tools.descartes.dni.adaptation/model/DNIMM3AP.xcore
+++ b/tools.descartes.dni.adaptation/model/DNIMM3AP.xcore
@@ -1,6 +1,5 @@
 @Ecore(nsURI="http://descartes.tools/dni-adaptation-metamodel-3.1")
-@GenModel(modelDirectory="/tools.descartes.dni.adaptation/src", editDirectory="/tools.descartes.dni.adaptation/src",
-	editorDirectory="/tools.descartes.dni.adaptation/src", fileExtensions="dniap", prefix="DNIAP", suppressEMFTypes="true")
+@GenModel(fileExtensions="dniap", prefix="DNIAP", suppressEMFTypes="true")
 package tools.descartes.dni.dnimm3ap
 
 //
diff --git a/tools.descartes.dni.adaptation/plugin.xml b/tools.descartes.dni.adaptation/plugin.xml
index a6100ac2..d573c557 100644
--- a/tools.descartes.dni.adaptation/plugin.xml
+++ b/tools.descartes.dni.adaptation/plugin.xml
@@ -14,44 +14,4 @@
             genModel="model/DNIMM3AP.xcore"/>
    </extension>
 
-   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
-      <!-- @generated DNIMM3AP -->
-      <factory
-            uri="http://descartes.tools/dni-adaptation-metamodel-3.1"
-            class="tools.descartes.dni.dnimm3ap.provider.DNIAPItemProviderAdapterFactory"
-            supportedTypes=
-              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
-               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
-               org.eclipse.emf.edit.provider.ITreeItemContentProvider
-               org.eclipse.emf.edit.provider.IItemLabelProvider
-               org.eclipse.emf.edit.provider.IItemPropertySource"/>
-   </extension>
-
-   <extension point="org.eclipse.ui.newWizards">
-      <!-- @generated DNIMM3AP -->
-      <category
-            id="org.eclipse.emf.ecore.Wizard.category.ID"
-            name="%_UI_Wizard_category"/>
-      <wizard
-            id="tools.descartes.dni.dnimm3ap.presentation.DNIAPModelWizardID"
-            name="%_UI_DNIAPModelWizard_label"
-            class="tools.descartes.dni.dnimm3ap.presentation.DNIAPModelWizard"
-            category="org.eclipse.emf.ecore.Wizard.category.ID"
-            icon="icons/full/obj16/DNIAPModelFile.gif">
-         <description>%_UI_DNIAPModelWizard_description</description>
-         <selection class="org.eclipse.core.resources.IResource"/>
-      </wizard>
-   </extension>
-
-   <extension point="org.eclipse.ui.editors">
-      <!-- @generated DNIMM3AP -->
-      <editor
-            id="tools.descartes.dni.dnimm3ap.presentation.DNIAPEditorID"
-            name="%_UI_DNIAPEditor_label"
-            icon="icons/full/obj16/DNIAPModelFile.gif"
-            extensions="dniap"
-            class="tools.descartes.dni.dnimm3ap.presentation.DNIAPEditor"
-            contributorClass="tools.descartes.dni.dnimm3ap.presentation.DNIAPActionBarContributor">
-      </editor>
-   </extension>
 </plugin>
diff --git a/tools.descartes.dni.adaptation/pom.xml b/tools.descartes.dni.adaptation/pom.xml
index 3eda09db..28e29758 100644
--- a/tools.descartes.dni.adaptation/pom.xml
+++ b/tools.descartes.dni.adaptation/pom.xml
@@ -5,6 +5,10 @@
 	<artifactId>adaptation-metamodel</artifactId>
 	<version>3.1.0-SNAPSHOT</version>
 
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+	</properties>
+
 	<distributionManagement>
 		<repository>
 			<id>se-uw-nexus</id>
@@ -33,26 +37,113 @@
 	</repositories>
 
 	<build>
-		<sourceDirectory>src</sourceDirectory>
+
+		<sourceDirectory>src-gen</sourceDirectory>
 		<testSourceDirectory>src-test</testSourceDirectory>
+
 		<plugins>
 			<plugin>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<version>3.6.1</version>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-clean-plugin</artifactId>
+				<version>3.0.0</version>
 				<configuration>
-					<source />
-					<target />
-					<excludes>
-						<!-- Exclude Editor from compile -->
-						<exclude>tools/descartes/dni/dnimm3ap/presentation/*</exclude>
-					</excludes>
+					<filesets>
+						<fileset>
+							<directory>src-gen</directory>
+						</fileset>
+					</filesets>
 				</configuration>
 			</plugin>
 			<plugin>
-				<artifactId>maven-resources-plugin</artifactId>
-				<version>2.7</version>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>build-helper-maven-plugin</artifactId>
+				<version>3.0.0</version>
+				<executions>
+					<execution>
+						<goals>
+							<goal>add-source</goal>
+						</goals>
+						<configuration>
+							<sources>
+								<source>target/xtext-temp/stubs/</source>
+							</sources>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.eclipse.xtext</groupId>
+				<artifactId>xtext-maven-plugin</artifactId>
+				<version>2.12.0</version>
+				<executions>
+					<execution>
+						<goals>
+							<goal>generate</goal>
+						</goals>
+					</execution>
+				</executions>
+				<configuration>
+					<languages>
+						<language>
+							<setup>org.eclipse.xtext.ecore.EcoreSupport</setup>
+						</language>
+						<language>
+							<setup>org.eclipse.emf.codegen.ecore.xtext.GenModelSupport</setup>
+						</language>
+						<language>
+							<setup>org.eclipse.emf.ecore.xcore.XcoreStandaloneSetup</setup>
+						</language>
+					</languages>
+					<sourceRoots>
+						<root>${project.basedir}/model</root>
+					</sourceRoots>
+				</configuration>
+				<dependencies>
+					<dependency>
+						<groupId>org.osgi</groupId>
+						<artifactId>org.osgi.core</artifactId>
+						<version>4.3.1</version>
+					</dependency>
+					<dependency>
+						<groupId>org.eclipse.core</groupId>
+						<artifactId>org.eclipse.core.resources</artifactId>
+						<version>3.7.100</version>
+					</dependency>
+					<dependency>
+						<groupId>org.eclipse.text</groupId>
+						<artifactId>org.eclipse.text</artifactId>
+						<version>3.5.101</version>
+					</dependency>
+					<dependency>
+						<groupId>org.eclipse.emf</groupId>
+						<artifactId>org.eclipse.emf.codegen.ecore.xtext</artifactId>
+						<version>1.2.0</version>
+					</dependency>
+					<dependency>
+						<groupId>org.eclipse.emf</groupId>
+						<artifactId>org.eclipse.emf.ecore.xcore.lib</artifactId>
+						<version>1.1.100</version>
+					</dependency>
+					<dependency>
+						<groupId>org.eclipse.emf</groupId>
+						<artifactId>org.eclipse.emf.ecore.xcore</artifactId>
+						<version>1.3.1</version>
+					</dependency>
+					<dependency>
+						<groupId>tools.descartes.dni</groupId>
+						<artifactId>core-metamodel</artifactId>
+						<version>3.1.0-SNAPSHOT</version>
+					</dependency>
+				</dependencies>
 			</plugin>
 		</plugins>
+
+		<resources>
+			<resource>
+				<directory>model</directory>
+			</resource>
+		</resources>
+
 	</build>
 
 	<dependencies>
@@ -66,43 +157,21 @@
 			<artifactId>org.eclipse.emf.ecore</artifactId>
 			<version>2.12.0</version>
 		</dependency>
-		<dependency>
-			<groupId>org.eclipse.emf</groupId>
-			<artifactId>org.eclipse.emf.ecore.xmi</artifactId>
-			<version>2.12.0</version>
-		</dependency>
 		<dependency>
 			<groupId>org.eclipse.emf</groupId>
 			<artifactId>org.eclipse.emf.ecore.xcore.lib</artifactId>
 			<version>1.1.100</version>
 		</dependency>
 		<dependency>
-			<groupId>org.eclipse.emf</groupId>
-			<artifactId>edit</artifactId>
-			<version>2.3.0-v200706262000</version>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.emf.common</groupId>
-			<artifactId>ui</artifactId>
-			<version>2.3.0-v200706262000</version>
-		</dependency>
-		<dependency>
-			<groupId>com.google.guava</groupId>
-			<artifactId>guava</artifactId>
-			<version>15.0</version>
-		</dependency>
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>4.12</version>
-			<scope>test</scope>
+			<groupId>org.eclipse.xtext</groupId>
+			<artifactId>org.eclipse.xtext.xbase.lib</artifactId>
+			<version>2.12.0</version>
 		</dependency>
 		<dependency>
 			<groupId>tools.descartes.dni</groupId>
 			<artifactId>core-metamodel</artifactId>
 			<version>3.1.0-SNAPSHOT</version>
 		</dependency>
-
 	</dependencies>
 
 </project>
\ No newline at end of file
diff --git a/tools.descartes.dni.adaptation/resources-test/scenario0B.dni b/tools.descartes.dni.adaptation/resources-test/scenario0B.dni
deleted file mode 100644
index a41ee331..00000000
--- a/tools.descartes.dni.adaptation/resources-test/scenario0B.dni
+++ /dev/null
@@ -1,229 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<dnimm3:NetworkInfrastructure xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dnimm3="http://descartes.tools/dni-core-metamodel-3.1" xmi:id="_YRLUIOlEEeWVGvgYicTWCQ" dataCenterName="ntwrk_infr">
-  <traffic xmi:id="_YRLUIelEEeWVGvgYicTWCQ">
-    <flows xmi:id="_GzM58ERgEeafFpwgYSzDXA" name="Traffic_send" sourceSoftware="_P7pXEEReEeafFpwgYSzDXA" destinationSoftware="_PmoJUEReEeafFpwgYSzDXA">
-      <generatedTraffic xsi:type="dnimm3:GenericFlowTraffic" xmi:id="_GzM58URgEeafFpwgYSzDXA">
-        <dataSize xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_GzM58kRgEeafFpwgYSzDXA" value="100.0">
-          <unit xsi:type="dnimm3:DataUnit" xmi:id="_GzM580RgEeafFpwgYSzDXA" prefix="M"/>
-        </dataSize>
-      </generatedTraffic>
-    </flows>
-    <software xmi:id="_PmoJUEReEeafFpwgYSzDXA" name="Requester" deployedOn="_d4soIERbEeafFpwgYSzDXA"/>
-    <software xmi:id="_P7pXEEReEeafFpwgYSzDXA" name="Sender" deployedOn="_2prOc0RbEeafFpwgYSzDXA">
-      <trafficSources xmi:id="_3OkHYERfEeafFpwgYSzDXA" name="ts_send">
-        <workload xsi:type="dnimm3:GenericWorkload" xmi:id="_7wGY4ERfEeafFpwgYSzDXA">
-          <actions xsi:type="dnimm3:StartAction" xmi:id="_-MeUsERfEeafFpwgYSzDXA"/>
-          <actions xsi:type="dnimm3:WaitAction" xmi:id="__-YXMERfEeafFpwgYSzDXA">
-            <waitTime xsi:type="dnimm3:ConstantLongVariable" xmi:id="_BUvGIERgEeafFpwgYSzDXA" value="20">
-              <unit xsi:type="dnimm3:TimeUnit" xmi:id="_D4rpkERgEeafFpwgYSzDXA" unit="ms"/>
-            </waitTime>
-          </actions>
-          <actions xsi:type="dnimm3:LoopAction" xmi:id="_TWrBkERgEeafFpwgYSzDXA">
-            <intern xsi:type="dnimm3:SequenceAction" xmi:id="_dX09cERgEeafFpwgYSzDXA">
-              <intern xsi:type="dnimm3:TransmitAction" xmi:id="_eFfUsERgEeafFpwgYSzDXA" flowTraffic="_GzM58URgEeafFpwgYSzDXA"/>
-              <intern xsi:type="dnimm3:WaitAction" xmi:id="_e86E4ERgEeafFpwgYSzDXA">
-                <waitTime xsi:type="dnimm3:ConstantLongVariable" xmi:id="_hwwFgERgEeafFpwgYSzDXA" value="2">
-                  <unit xsi:type="dnimm3:TimeUnit" xmi:id="_jLwD4ERgEeafFpwgYSzDXA"/>
-                </waitTime>
-              </intern>
-            </intern>
-            <numIterations xsi:type="dnimm3:ConstantLongVariable" xmi:id="_lKj58ERgEeafFpwgYSzDXA" value="100"/>
-          </actions>
-          <actions xsi:type="dnimm3:StopAction" xmi:id="_Q_RsYERgEeafFpwgYSzDXA"/>
-        </workload>
-      </trafficSources>
-    </software>
-  </traffic>
-  <structure xmi:id="_YRLUKOlEEeWVGvgYicTWCQ">
-    <nodes xmi:id="_I59kYERbEeafFpwgYSzDXA" uid="_FTXDQG1HEeeLKum3LCNExw" name="C10" isPhysical="true" entityType="//@entityTypes/@types.2">
-      <interfaces xmi:id="_l4UxIERbEeafFpwgYSzDXA" name="C10_i1" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_Celj8ElfEeaTI4FV-m29jw">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_Dd66AElfEeaTI4FV-m29jw" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_EtC_kElfEeaTI4FV-m29jw" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <sdntype xsi:type="dnimm3:Common" xmi:id="_mxxhoERbEeafFpwgYSzDXA"/>
-      <end xmi:id="_d4soIERbEeafFpwgYSzDXA" software="_PmoJUEReEeafFpwgYSzDXA"/>
-    </nodes>
-    <nodes xmi:id="_2prOcERbEeafFpwgYSzDXA" name="C39" entityType="//@entityTypes/@types.2">
-      <interfaces xmi:id="_2prOcURbEeafFpwgYSzDXA" name="C39_i1" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_6jaTYE4PEeaBkM5VNV3dKg">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_6jaTYU4PEeaBkM5VNV3dKg" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_6jaTYk4PEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <sdntype xsi:type="dnimm3:Common" xmi:id="_2prOckRbEeafFpwgYSzDXA"/>
-      <end xmi:id="_2prOc0RbEeafFpwgYSzDXA" software="_P7pXEEReEeafFpwgYSzDXA"/>
-    </nodes>
-    <nodes xmi:id="_81U4YERbEeafFpwgYSzDXA" name="SW40" entityType="//@entityTypes/@types.1">
-      <interfaces xmi:id="_81U4YURbEeafFpwgYSzDXA" name="SW40_i_C10" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_KE_7sElfEeaTI4FV-m29jw">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_KE_7sUlfEeaTI4FV-m29jw" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_KE_7sklfEeaTI4FV-m29jw" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <interfaces xmi:id="__7h0UERbEeafFpwgYSzDXA" name="SW40_i_SW00" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_-8IAEE4PEeaBkM5VNV3dKg">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_-8IAEU4PEeaBkM5VNV3dKg" value="10">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_-8IAEk4PEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <sdntype xsi:type="dnimm3:Common" xmi:id="_81U4YkRbEeafFpwgYSzDXA"/>
-      <intermediate xmi:id="_-CrC0E3_EeaBkM5VNV3dKg">
-        <performance xmi:id="_-YStgE3_EeaBkM5VNV3dKg">
-          <forwardingLatency xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_q4RS4GLZEea1es0BNrNkVA" value="5.0">
-            <unit xsi:type="dnimm3:TimeUnit" xmi:id="_r-YmYGLZEea1es0BNrNkVA" unit="us"/>
-          </forwardingLatency>
-          <forwardingBandwidthBPS xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_oTGGEE4BEeaBkM5VNV3dKg" value="128.0">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_qJK24E4BEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </forwardingBandwidthBPS>
-          <switchingCapacityPPS xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_J8kB8E4AEeaBkM5VNV3dKg" value="96.0">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_Lq7BME4AEeaBkM5VNV3dKg" unit="packetsPerSec" prefix="M"/>
-          </switchingCapacityPPS>
-        </performance>
-      </intermediate>
-    </nodes>
-    <nodes xmi:id="_C-3pgERcEeafFpwgYSzDXA" name="SW00" entityType="//@entityTypes/@types.0">
-      <interfaces xmi:id="_C-3pgURcEeafFpwgYSzDXA" name="SW00_i_SW40" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_LTRFoElfEeaTI4FV-m29jw">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_LTRFoUlfEeaTI4FV-m29jw" value="40">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_LTRFoklfEeaTI4FV-m29jw" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <interfaces xmi:id="_C-3pgkRcEeafFpwgYSzDXA" name="SW00_i_C16" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_vczLUE4PEeaBkM5VNV3dKg">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_vczLUU4PEeaBkM5VNV3dKg" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_vczLUk4PEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <interfaces xmi:id="_GcqJkERdEeafFpwgYSzDXA" name="SW00_i_SW35" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_2sTe8E4PEeaBkM5VNV3dKg">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_2sTe8U4PEeaBkM5VNV3dKg" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_2sTe8k4PEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <sdntype xsi:type="dnimm3:Common" xmi:id="_C-3pg0RcEeafFpwgYSzDXA"/>
-      <intermediate xmi:id="_RnyZgE4GEeaBkM5VNV3dKg">
-        <performance xmi:id="_RnyZgU4GEeaBkM5VNV3dKg">
-          <forwardingLatency xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_A8Q5EGLbEea1es0BNrNkVA" value="1.5">
-            <unit xsi:type="dnimm3:TimeUnit" xmi:id="_ayAIAGLbEea1es0BNrNkVA" unit="us"/>
-          </forwardingLatency>
-          <forwardingBandwidthBPS xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_RnyZhE4GEeaBkM5VNV3dKg" value="960.0">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_RnyZhU4GEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </forwardingBandwidthBPS>
-          <switchingCapacityPPS xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_RnyZhk4GEeaBkM5VNV3dKg" value="714.2">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_RnyZh04GEeaBkM5VNV3dKg" unit="packetsPerSec" prefix="M"/>
-          </switchingCapacityPPS>
-        </performance>
-      </intermediate>
-    </nodes>
-    <nodes xmi:id="_DIopgERcEeafFpwgYSzDXA" uid="_0rWSsG1HEeeLKum3LCNExw" name="SW35" isPhysical="true" entityType="//@entityTypes/@types.0">
-      <interfaces xmi:id="_DIopgURcEeafFpwgYSzDXA" name="SW35_i1" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_4d_fAE4PEeaBkM5VNV3dKg">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_4d_fAU4PEeaBkM5VNV3dKg" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_4d_fAk4PEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <interfaces xmi:id="_DIopgkRcEeafFpwgYSzDXA" name="SW35_i2" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_4m6KcE4PEeaBkM5VNV3dKg">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_4m6KcU4PEeaBkM5VNV3dKg" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_4m6Kck4PEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <sdntype xsi:type="dnimm3:Common" xmi:id="_P3_J4FJmEeaaxa87zqCaAg"/>
-      <intermediate xmi:id="_YYS_0E4NEeaBkM5VNV3dKg">
-        <performance xmi:id="_Z045oE4NEeaBkM5VNV3dKg">
-          <forwardingLatency xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_GWIgwGLbEea1es0BNrNkVA" value="3.4">
-            <unit xsi:type="dnimm3:TimeUnit" xmi:id="_ZORrcGLbEea1es0BNrNkVA" unit="us"/>
-          </forwardingLatency>
-          <forwardingBandwidthBPS xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_Z045o04NEeaBkM5VNV3dKg" value="101.8">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_Z045pE4NEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </forwardingBandwidthBPS>
-          <switchingCapacityPPS xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_Z045pU4NEeaBkM5VNV3dKg" value="75.7">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_Z045pk4NEeaBkM5VNV3dKg" unit="packetsPerSec" prefix="M"/>
-          </switchingCapacityPPS>
-        </performance>
-      </intermediate>
-    </nodes>
-    <nodes xmi:id="_SSrKwERcEeafFpwgYSzDXA" uid="_0qD5QG1HEeeLKum3LCNExw" name="C16" isPhysical="true" entityType="//@entityTypes/@types.2">
-      <interfaces xmi:id="_SSrKwURcEeafFpwgYSzDXA" name="C16_i1" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_skMmgE4PEeaBkM5VNV3dKg">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_skMmgU4PEeaBkM5VNV3dKg" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_skMmgk4PEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <sdntype xsi:type="dnimm3:Common" xmi:id="_WUeMQERcEeafFpwgYSzDXA"/>
-      <end xmi:id="_SSrKw0RcEeafFpwgYSzDXA"/>
-    </nodes>
-    <links xmi:id="_ZRjocERcEeafFpwgYSzDXA" uid="_Kld2EG1HEeeLKum3LCNExw" name="Link_C10_i1&lt;-->SW40_i_C10" connects="_l4UxIERbEeafFpwgYSzDXA _81U4YURbEeafFpwgYSzDXA" entityType="//@entityTypes/@types.4">
-      <performance xmi:id="_dP6e8ERdEeafFpwgYSzDXA">
-        <maxSupportedBandwidth xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_gmOTcERdEeafFpwgYSzDXA" value="1.0">
-          <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_i-5bAERdEeafFpwgYSzDXA" prefix="G"/>
-        </maxSupportedBandwidth>
-      </performance>
-    </links>
-    <links xmi:id="_h5nqcERcEeafFpwgYSzDXA" uid="_Ku430G1HEeeLKum3LCNExw" name="Link_SW00_i_SW40&lt;-->SW40_i_SW00" description="" connects="_C-3pgURcEeafFpwgYSzDXA __7h0UERbEeafFpwgYSzDXA" entityType="//@entityTypes/@types.4">
-      <performance xmi:id="_yV0hsERdEeafFpwgYSzDXA">
-        <maxSupportedBandwidth xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_yV0hsURdEeafFpwgYSzDXA" value="10.0">
-          <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_yV0hskRdEeafFpwgYSzDXA" prefix="G"/>
-        </maxSupportedBandwidth>
-      </performance>
-    </links>
-    <links xmi:id="_iJHfAERcEeafFpwgYSzDXA" uid="_KzDmIG1HEeeLKum3LCNExw" name="Link_SW00_i_C16&lt;-->C16_i1" connects="_C-3pgkRcEeafFpwgYSzDXA _SSrKwURcEeafFpwgYSzDXA" entityType="//@entityTypes/@types.4">
-      <performance xmi:id="_0apgMERdEeafFpwgYSzDXA">
-        <maxSupportedBandwidth xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_0apgMURdEeafFpwgYSzDXA" value="1.0">
-          <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_0apgMkRdEeafFpwgYSzDXA" prefix="G"/>
-        </maxSupportedBandwidth>
-      </performance>
-    </links>
-    <links xmi:id="_iSCKcERcEeafFpwgYSzDXA" uid="_K2PdAG1HEeeLKum3LCNExw" name="Link_SW00_i_SW35&lt;-->SW35_i1" connects="_GcqJkERdEeafFpwgYSzDXA _DIopgURcEeafFpwgYSzDXA" entityType="//@entityTypes/@types.4">
-      <performance xmi:id="_myWegERdEeafFpwgYSzDXA">
-        <maxSupportedBandwidth xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_myWegURdEeafFpwgYSzDXA" value="1.0">
-          <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_myWegkRdEeafFpwgYSzDXA" prefix="G"/>
-        </maxSupportedBandwidth>
-      </performance>
-    </links>
-    <links xmi:id="_iZv8AERcEeafFpwgYSzDXA" uid="_K6ENEG1HEeeLKum3LCNExw" name="Link_SW35_i2&lt;-->C39_i1" connects="_DIopgkRcEeafFpwgYSzDXA _2prOcURbEeafFpwgYSzDXA" entityType="//@entityTypes/@types.3">
-      <performance xmi:id="_nYf4gERdEeafFpwgYSzDXA">
-        <maxSupportedBandwidth xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_nYf4gURdEeafFpwgYSzDXA" value="1.0">
-          <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_nYf4gkRdEeafFpwgYSzDXA" prefix="G"/>
-        </maxSupportedBandwidth>
-      </performance>
-    </links>
-  </structure>
-  <configuration xmi:id="_YRLUTOlEEeWVGvgYicTWCQ">
-    <protocolsAndStacks xmi:id="_YRLUTelEEeWVGvgYicTWCQ">
-      <stacks xmi:id="_YRLUTulEEeWVGvgYicTWCQ" uid="_yxkrANrdEeWEHbr8cSx2OQ" name="Stack TCP/IP/Eth" description="">
-        <layers xmi:id="_YRLUT-lEEeWVGvgYicTWCQ" uid="_zMMxgNrdEeWEHbr8cSx2OQ" name="Layer TCP" protocol="_YRLUU-lEEeWVGvgYicTWCQ" isCarriedBy="_YRLUUOlEEeWVGvgYicTWCQ"/>
-        <layers xmi:id="_YRLUUOlEEeWVGvgYicTWCQ" uid="_zUIlgNrdEeWEHbr8cSx2OQ" name="Layer IP" protocol="_YRLUUulEEeWVGvgYicTWCQ" isCarriedBy="_YRLUUelEEeWVGvgYicTWCQ" carries="_YRLUT-lEEeWVGvgYicTWCQ"/>
-        <layers xmi:id="_YRLUUelEEeWVGvgYicTWCQ" uid="_2MNl4NrdEeWEHbr8cSx2OQ" name="Ethernet" protocol="_YRLUVOlEEeWVGvgYicTWCQ" carries="_YRLUUOlEEeWVGvgYicTWCQ"/>
-      </stacks>
-      <protocols xmi:id="_YRLUUulEEeWVGvgYicTWCQ" uid="_y46CENrdEeWEHbr8cSx2OQ" name="IP"/>
-      <protocols xmi:id="_YRLUU-lEEeWVGvgYicTWCQ" uid="_-X-tcNrdEeWEHbr8cSx2OQ" name="TCP"/>
-      <protocols xmi:id="_YRLUVOlEEeWVGvgYicTWCQ" uid="_0y-iENrdEeWEHbr8cSx2OQ" name="Eth"/>
-    </protocolsAndStacks>
-    <routes xmi:id="_YRLUVelEEeWVGvgYicTWCQ">
-      <directions xmi:id="_caOa0ERiEeafFpwgYSzDXA" name="send_C39-SW35" onNode="_2prOcERbEeafFpwgYSzDXA" flow="_GzM58ERgEeafFpwgYSzDXA" via="_2prOcURbEeafFpwgYSzDXA"/>
-      <directions xmi:id="_jbW7QERiEeafFpwgYSzDXA" name="send_SW35-SW01" onNode="_DIopgERcEeafFpwgYSzDXA" flow="_GzM58ERgEeafFpwgYSzDXA" via="_DIopgURcEeafFpwgYSzDXA"/>
-      <directions xmi:id="_jlWkwERiEeafFpwgYSzDXA" name="send_SW01-SW40" onNode="_C-3pgERcEeafFpwgYSzDXA" flow="_GzM58ERgEeafFpwgYSzDXA" via="_C-3pgURcEeafFpwgYSzDXA"/>
-      <directions xmi:id="_kLRVQERiEeafFpwgYSzDXA" name="send_SW40-SW35" onNode="_81U4YERbEeafFpwgYSzDXA" flow="_GzM58ERgEeafFpwgYSzDXA" via="_81U4YURbEeafFpwgYSzDXA"/>
-    </routes>
-  </configuration>
-  <entityTypes>
-    <types xsi:type="dnimm3:NodeType" name="HP 2920" entities="_C-3pgERcEeafFpwgYSzDXA _DIopgERcEeafFpwgYSzDXA"/>
-    <types xsi:type="dnimm3:NodeType" name="Cisco 2960" entities="_81U4YERbEeafFpwgYSzDXA"/>
-    <types xsi:type="dnimm3:NodeType" name="HP-Server" entities="_I59kYERbEeafFpwgYSzDXA _SSrKwERcEeafFpwgYSzDXA _2prOcERbEeafFpwgYSzDXA"/>
-    <types xsi:type="dnimm3:LinkType" name="Cable blue" description="" entities="_iZv8AERcEeafFpwgYSzDXA"/>
-    <types xsi:type="dnimm3:LinkType" name="Cable red" description="" entities="_ZRjocERcEeafFpwgYSzDXA _iJHfAERcEeafFpwgYSzDXA _iSCKcERcEeafFpwgYSzDXA _h5nqcERcEeafFpwgYSzDXA"/>
-  </entityTypes>
-</dnimm3:NetworkInfrastructure>
diff --git a/tools.descartes.dni.adaptation/resources-test/scenario0B.dniap b/tools.descartes.dni.adaptation/resources-test/scenario0B.dniap
deleted file mode 100644
index 0ae641e3..00000000
--- a/tools.descartes.dni.adaptation/resources-test/scenario0B.dniap
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<dnimm3ap:AdaptationPoints xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dnimm3="http://descartes.tools/dni-core-metamodel-3.1" xmlns:dnimm3ap="http://descartes.tools/dni-adaptation-metamodel-3.1">
-  <repositories>
-    <nodes>
-      <entityType xsi:type="dnimm3:NodeType" href="scenario0B.dni#//@entityTypes/@types.1"/>
-    </nodes>
-  </repositories>
-  <groups/>
-  <networkInfrastructure href="scenario0B.dni#_YRLUIOlEEeWVGvgYicTWCQ"/>
-</dnimm3ap:AdaptationPoints>
diff --git a/tools.descartes.dni.adaptation/src-test/tools/descartes/dni/dnimm3/tools/ParserTest.java b/tools.descartes.dni.adaptation/src-test/tools/descartes/dni/dnimm3/tools/ParserTest.java
deleted file mode 100644
index 301c017b..00000000
--- a/tools.descartes.dni.adaptation/src-test/tools/descartes/dni/dnimm3/tools/ParserTest.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package tools.descartes.dni.dnimm3.tools;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-import tools.descartes.dni.dnimm3ap.AdaptationPoints;
-import tools.descartes.dni.dnimm3ap.impl.AdaptationPointsImpl;
-import tools.descartes.dni.dnimm3ap.impl.DNIAPFactoryImpl;
-import tools.descartes.dni.dnimm3ap.tools.DNIAPParser;
-
-public class ParserTest {
-
-	@Test
-	public void shouldConvertFileToModel() {
-		File file = new File("resources-test/scenario0B.dniap");
-		AdaptationPointsImpl adaptationPoints = DNIAPParser.convertToModel(file);
-		Assert.assertTrue(adaptationPoints.getRepositories().getNodes().size() > 0);
-	}
-
-	@Test
-	public void shouldConvertFileToModelWithNetworkStructure() {
-		File file = new File("resources-test/scenario0B.dniap");
-		AdaptationPointsImpl adaptationPoints = DNIAPParser.convertToModel(file);
-		Assert.assertEquals(6, adaptationPoints.getNetworkInfrastructure().getStructure().getNodes().size());
-	}
-
-	@Test
-	public void shouldConvertModelToFile() throws IOException {
-		DNIAPFactoryImpl factory = new DNIAPFactoryImpl();
-		AdaptationPoints model = factory.createAdaptationPoints();
-		File file = File.createTempFile("junit-dni-", ".dniap");
-		file.deleteOnExit();
-		DNIAPParser.writeToFile(model, file);
-		Assert.assertTrue(file.length() > 100);
-	}
-
-	@Test
-	public void shouldConvertModelToByteArray() throws IOException {
-		DNIAPFactoryImpl factory = new DNIAPFactoryImpl();
-		AdaptationPoints model = factory.createAdaptationPoints();
-		byte[] bytes = DNIAPParser.convertToByteArray(model);
-		Assert.assertTrue(bytes.length > 10);
-	}
-
-	@Test
-	public void shouldConvertByteArrayToModel() throws IOException {
-		Path path = Paths.get("resources-test/scenario0B.dniap");
-		byte[] data = Files.readAllBytes(path);
-		AdaptationPoints adaptationPoints = DNIAPParser.convertToModel(data);
-		Assert.assertTrue(adaptationPoints.getRepositories().getNodes().size() > 0);
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src-test/tools/descartes/dni/dnimm3/tools/UtilTest.java b/tools.descartes.dni.adaptation/src-test/tools/descartes/dni/dnimm3/tools/UtilTest.java
deleted file mode 100644
index 98c70dce..00000000
--- a/tools.descartes.dni.adaptation/src-test/tools/descartes/dni/dnimm3/tools/UtilTest.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package tools.descartes.dni.dnimm3.tools;
-
-import java.io.File;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-import tools.descartes.dni.dnimm3ap.impl.AdaptationPointsImpl;
-import tools.descartes.dni.dnimm3ap.tools.DNIAPParser;
-import tools.descartes.dni.dnimm3ap.tools.DNIAPUtil;
-
-public class UtilTest {
-
-	@Test
-	public void shouldCloneModel() {
-		File file = new File("resources-test/scenario0B.dniap");
-		AdaptationPointsImpl adaptationPoints1 = DNIAPParser.convertToModel(file);
-		AdaptationPointsImpl adaptationPoints2 = DNIAPUtil.cloneModel(adaptationPoints1);
-		Assert.assertNotEquals(adaptationPoints1, adaptationPoints2);
-		Assert.assertEquals(adaptationPoints1.getNetworkInfrastructure().getStructure().getNodes().size(),
-				adaptationPoints2.getNetworkInfrastructure().getStructure().getNodes().size());
-		Assert.assertEquals(
-				adaptationPoints1.getNetworkInfrastructure().getStructure().getNodes().get(0).getUid_generated(),
-				adaptationPoints2.getNetworkInfrastructure().getStructure().getNodes().get(0).getUid_generated());
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableEndPerformance.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableEndPerformance.java
deleted file mode 100644
index 673e89a1..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableEndPerformance.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import tools.descartes.dni.dnimm3.EndPerformanceType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Adaptable End Performance</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableEndPerformance#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableEndPerformance#getSoftwareLayersDelay <em>Software Layers Delay</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableEndPerformance()
- * @model
- * @generated
- */
-public interface AdaptableEndPerformance extends IAdaptableEntity<EndPerformanceType> {
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableEndPerformance_Name()
-	 * @model unique="false" transient="true" changeable="false" volatile="true" derived="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='&lt;%tools.descartes.dni.dnimm3.EndPerformanceType%&gt; _entityType = this.getEntityType();\nboolean _tripleNotEquals = (_entityType != null);\nif (_tripleNotEquals)\n{\n\treturn this.getEntityType().getName();\n}\nelse\n{\n\treturn \"Unspecified entity type\";\n}'"
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Returns the value of the '<em><b>Software Layers Delay</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Software Layers Delay</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Software Layers Delay</em>' containment reference.
-	 * @see #setSoftwareLayersDelay(AlternativeVariable)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableEndPerformance_SoftwareLayersDelay()
-	 * @model containment="true"
-	 * @generated
-	 */
-	AlternativeVariable getSoftwareLayersDelay();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptableEndPerformance#getSoftwareLayersDelay <em>Software Layers Delay</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Software Layers Delay</em>' containment reference.
-	 * @see #getSoftwareLayersDelay()
-	 * @generated
-	 */
-	void setSoftwareLayersDelay(AlternativeVariable value);
-
-} // AdaptableEndPerformance
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableIntermediatePerformance.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableIntermediatePerformance.java
deleted file mode 100644
index 29741b31..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableIntermediatePerformance.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import tools.descartes.dni.dnimm3.IntermediatePerformanceType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Adaptable Intermediate Performance</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance#getForwardingLatency <em>Forwarding Latency</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance#getSwitchingCapacityPPS <em>Switching Capacity PPS</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance#getForwardingBandwidthBPS <em>Forwarding Bandwidth BPS</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableIntermediatePerformance()
- * @model
- * @generated
- */
-public interface AdaptableIntermediatePerformance extends IAdaptableEntity<IntermediatePerformanceType> {
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableIntermediatePerformance_Name()
-	 * @model unique="false" transient="true" changeable="false" volatile="true" derived="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='&lt;%tools.descartes.dni.dnimm3.IntermediatePerformanceType%&gt; _entityType = this.getEntityType();\nboolean _tripleNotEquals = (_entityType != null);\nif (_tripleNotEquals)\n{\n\treturn this.getEntityType().getName();\n}\nelse\n{\n\treturn \"Unspecified entity type\";\n}'"
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Returns the value of the '<em><b>Forwarding Latency</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Forwarding Latency</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Forwarding Latency</em>' containment reference.
-	 * @see #setForwardingLatency(AlternativeVariable)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableIntermediatePerformance_ForwardingLatency()
-	 * @model containment="true"
-	 * @generated
-	 */
-	AlternativeVariable getForwardingLatency();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance#getForwardingLatency <em>Forwarding Latency</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Forwarding Latency</em>' containment reference.
-	 * @see #getForwardingLatency()
-	 * @generated
-	 */
-	void setForwardingLatency(AlternativeVariable value);
-
-	/**
-	 * Returns the value of the '<em><b>Switching Capacity PPS</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Switching Capacity PPS</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Switching Capacity PPS</em>' containment reference.
-	 * @see #setSwitchingCapacityPPS(AlternativeVariable)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableIntermediatePerformance_SwitchingCapacityPPS()
-	 * @model containment="true"
-	 * @generated
-	 */
-	AlternativeVariable getSwitchingCapacityPPS();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance#getSwitchingCapacityPPS <em>Switching Capacity PPS</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Switching Capacity PPS</em>' containment reference.
-	 * @see #getSwitchingCapacityPPS()
-	 * @generated
-	 */
-	void setSwitchingCapacityPPS(AlternativeVariable value);
-
-	/**
-	 * Returns the value of the '<em><b>Forwarding Bandwidth BPS</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Forwarding Bandwidth BPS</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Forwarding Bandwidth BPS</em>' containment reference.
-	 * @see #setForwardingBandwidthBPS(AlternativeVariable)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableIntermediatePerformance_ForwardingBandwidthBPS()
-	 * @model containment="true"
-	 * @generated
-	 */
-	AlternativeVariable getForwardingBandwidthBPS();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance#getForwardingBandwidthBPS <em>Forwarding Bandwidth BPS</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Forwarding Bandwidth BPS</em>' containment reference.
-	 * @see #getForwardingBandwidthBPS()
-	 * @generated
-	 */
-	void setForwardingBandwidthBPS(AlternativeVariable value);
-
-} // AdaptableIntermediatePerformance
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableLink.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableLink.java
deleted file mode 100644
index 1da2d830..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableLink.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import java.util.List;
-import tools.descartes.dni.dnimm3.LinkType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Adaptable Link</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getLinkPerformance <em>Link Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getNetworkInterface <em>Network Interface</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getAdaptationGroup <em>Adaptation Group</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableLink()
- * @model
- * @generated
- */
-public interface AdaptableLink extends IAdaptableEntity<LinkType>, IAdaptableGroupableEntity {
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableLink_Name()
-	 * @model unique="false" transient="true" changeable="false" volatile="true" derived="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='&lt;%tools.descartes.dni.dnimm3.LinkType%&gt; _entityType = this.getEntityType();\nboolean _tripleNotEquals = (_entityType != null);\nif (_tripleNotEquals)\n{\n\treturn this.getEntityType().getName();\n}\nelse\n{\n\treturn \"Unspecified entity type\";\n}'"
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Returns the value of the '<em><b>Link Performance</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Link Performance</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>Link Performance</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableLink_LinkPerformance()
-	 * @model
-	 * @generated
-	 */
-	List<AdaptableLinkPerformance> getLinkPerformance();
-
-	/**
-	 * Returns the value of the '<em><b>Network Interface</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Network Interface</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>Network Interface</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableLink_NetworkInterface()
-	 * @model
-	 * @generated
-	 */
-	List<AdaptableNetworkInterface> getNetworkInterface();
-
-	/**
-	 * Returns the value of the '<em><b>Adaptation Group</b></em>' reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3ap.LinkAdaptationGroup#getItems <em>Items</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Adaptation Group</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Adaptation Group</em>' reference.
-	 * @see #setAdaptationGroup(LinkAdaptationGroup)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableLink_AdaptationGroup()
-	 * @see tools.descartes.dni.dnimm3ap.LinkAdaptationGroup#getItems
-	 * @model opposite="items"
-	 * @generated
-	 */
-	LinkAdaptationGroup getAdaptationGroup();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getAdaptationGroup <em>Adaptation Group</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Adaptation Group</em>' reference.
-	 * @see #getAdaptationGroup()
-	 * @generated
-	 */
-	void setAdaptationGroup(LinkAdaptationGroup value);
-
-} // AdaptableLink
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableLinkPerformance.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableLinkPerformance.java
deleted file mode 100644
index 236dce60..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableLinkPerformance.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import tools.descartes.dni.dnimm3.LinkPerformanceType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Adaptable Link Performance</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance#getPropagationDelay <em>Propagation Delay</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance#getMaximalSupportedBandwidth <em>Maximal Supported Bandwidth</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableLinkPerformance()
- * @model
- * @generated
- */
-public interface AdaptableLinkPerformance extends IAdaptableEntity<LinkPerformanceType> {
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableLinkPerformance_Name()
-	 * @model unique="false" transient="true" changeable="false" volatile="true" derived="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='&lt;%tools.descartes.dni.dnimm3.LinkPerformanceType%&gt; _entityType = this.getEntityType();\nboolean _tripleNotEquals = (_entityType != null);\nif (_tripleNotEquals)\n{\n\treturn this.getEntityType().getName();\n}\nelse\n{\n\treturn \"Unspecified entity type\";\n}'"
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Returns the value of the '<em><b>Propagation Delay</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Propagation Delay</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Propagation Delay</em>' containment reference.
-	 * @see #setPropagationDelay(AlternativeVariable)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableLinkPerformance_PropagationDelay()
-	 * @model containment="true"
-	 * @generated
-	 */
-	AlternativeVariable getPropagationDelay();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance#getPropagationDelay <em>Propagation Delay</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Propagation Delay</em>' containment reference.
-	 * @see #getPropagationDelay()
-	 * @generated
-	 */
-	void setPropagationDelay(AlternativeVariable value);
-
-	/**
-	 * Returns the value of the '<em><b>Maximal Supported Bandwidth</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Maximal Supported Bandwidth</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Maximal Supported Bandwidth</em>' containment reference.
-	 * @see #setMaximalSupportedBandwidth(AlternativeVariable)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableLinkPerformance_MaximalSupportedBandwidth()
-	 * @model containment="true"
-	 * @generated
-	 */
-	AlternativeVariable getMaximalSupportedBandwidth();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance#getMaximalSupportedBandwidth <em>Maximal Supported Bandwidth</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Maximal Supported Bandwidth</em>' containment reference.
-	 * @see #getMaximalSupportedBandwidth()
-	 * @generated
-	 */
-	void setMaximalSupportedBandwidth(AlternativeVariable value);
-
-} // AdaptableLinkPerformance
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNetworkInterface.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNetworkInterface.java
deleted file mode 100644
index b4a1b7c5..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNetworkInterface.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import java.util.List;
-import tools.descartes.dni.dnimm3.NetworkInterfaceType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Adaptable Network Interface</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface#getNetworkInterfacePerformance <em>Network Interface Performance</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNetworkInterface()
- * @model
- * @generated
- */
-public interface AdaptableNetworkInterface extends IAdaptableEntity<NetworkInterfaceType> {
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNetworkInterface_Name()
-	 * @model unique="false" transient="true" changeable="false" volatile="true" derived="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='&lt;%tools.descartes.dni.dnimm3.NetworkInterfaceType%&gt; _entityType = this.getEntityType();\nboolean _tripleNotEquals = (_entityType != null);\nif (_tripleNotEquals)\n{\n\treturn this.getEntityType().getName();\n}\nelse\n{\n\treturn \"Unspecified entity type\";\n}'"
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Returns the value of the '<em><b>Network Interface Performance</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Network Interface Performance</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>Network Interface Performance</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNetworkInterface_NetworkInterfacePerformance()
-	 * @model
-	 * @generated
-	 */
-	List<AdaptableNetworkInterfacePerformance> getNetworkInterfacePerformance();
-
-} // AdaptableNetworkInterface
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNetworkInterfacePerformance.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNetworkInterfacePerformance.java
deleted file mode 100644
index 86b3da7f..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNetworkInterfacePerformance.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import tools.descartes.dni.dnimm3.NetworkInterfacePerformanceType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Adaptable Network Interface Performance</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance#getPacketProcessingTime <em>Packet Processing Time</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance#getInterfaceThroughput <em>Interface Throughput</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNetworkInterfacePerformance()
- * @model
- * @generated
- */
-public interface AdaptableNetworkInterfacePerformance extends IAdaptableEntity<NetworkInterfacePerformanceType> {
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNetworkInterfacePerformance_Name()
-	 * @model unique="false" transient="true" changeable="false" volatile="true" derived="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='&lt;%tools.descartes.dni.dnimm3.NetworkInterfacePerformanceType%&gt; _entityType = this.getEntityType();\nboolean _tripleNotEquals = (_entityType != null);\nif (_tripleNotEquals)\n{\n\treturn this.getEntityType().getName();\n}\nelse\n{\n\treturn \"Unspecified entity type\";\n}'"
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Returns the value of the '<em><b>Packet Processing Time</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Packet Processing Time</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Packet Processing Time</em>' containment reference.
-	 * @see #setPacketProcessingTime(AlternativeVariable)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNetworkInterfacePerformance_PacketProcessingTime()
-	 * @model containment="true"
-	 * @generated
-	 */
-	AlternativeVariable getPacketProcessingTime();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance#getPacketProcessingTime <em>Packet Processing Time</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Packet Processing Time</em>' containment reference.
-	 * @see #getPacketProcessingTime()
-	 * @generated
-	 */
-	void setPacketProcessingTime(AlternativeVariable value);
-
-	/**
-	 * Returns the value of the '<em><b>Interface Throughput</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Interface Throughput</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Interface Throughput</em>' containment reference.
-	 * @see #setInterfaceThroughput(AlternativeVariable)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNetworkInterfacePerformance_InterfaceThroughput()
-	 * @model containment="true"
-	 * @generated
-	 */
-	AlternativeVariable getInterfaceThroughput();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance#getInterfaceThroughput <em>Interface Throughput</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Interface Throughput</em>' containment reference.
-	 * @see #getInterfaceThroughput()
-	 * @generated
-	 */
-	void setInterfaceThroughput(AlternativeVariable value);
-
-} // AdaptableNetworkInterfacePerformance
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNode.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNode.java
deleted file mode 100644
index 6db96747..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNode.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import java.util.List;
-import tools.descartes.dni.dnimm3.NodeType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Adaptable Node</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getEndPerformance <em>End Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getIntermediatePerformance <em>Intermediate Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getSdnNodePerformance <em>Sdn Node Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getNetworkInterface <em>Network Interface</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getAdaptationGroup <em>Adaptation Group</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNode()
- * @model
- * @generated
- */
-public interface AdaptableNode extends IAdaptableEntity<NodeType>, IAdaptableGroupableEntity {
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNode_Name()
-	 * @model unique="false" transient="true" changeable="false" volatile="true" derived="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='&lt;%tools.descartes.dni.dnimm3.NodeType%&gt; _entityType = this.getEntityType();\nboolean _tripleNotEquals = (_entityType != null);\nif (_tripleNotEquals)\n{\n\treturn this.getEntityType().getName();\n}\nelse\n{\n\treturn \"Unspecified entity type\";\n}'"
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Returns the value of the '<em><b>End Performance</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableEndPerformance}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>End Performance</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>End Performance</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNode_EndPerformance()
-	 * @model
-	 * @generated
-	 */
-	List<AdaptableEndPerformance> getEndPerformance();
-
-	/**
-	 * Returns the value of the '<em><b>Intermediate Performance</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Intermediate Performance</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>Intermediate Performance</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNode_IntermediatePerformance()
-	 * @model
-	 * @generated
-	 */
-	List<AdaptableIntermediatePerformance> getIntermediatePerformance();
-
-	/**
-	 * Returns the value of the '<em><b>Sdn Node Performance</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Sdn Node Performance</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>Sdn Node Performance</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNode_SdnNodePerformance()
-	 * @model
-	 * @generated
-	 */
-	List<AdaptableSdnNodePerformance> getSdnNodePerformance();
-
-	/**
-	 * Returns the value of the '<em><b>Network Interface</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Network Interface</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>Network Interface</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNode_NetworkInterface()
-	 * @model
-	 * @generated
-	 */
-	List<AdaptableNetworkInterface> getNetworkInterface();
-
-	/**
-	 * Returns the value of the '<em><b>Adaptation Group</b></em>' reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3ap.NodeAdaptationGroup#getItems <em>Items</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Adaptation Group</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Adaptation Group</em>' reference.
-	 * @see #setAdaptationGroup(NodeAdaptationGroup)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNode_AdaptationGroup()
-	 * @see tools.descartes.dni.dnimm3ap.NodeAdaptationGroup#getItems
-	 * @model opposite="items"
-	 * @generated
-	 */
-	NodeAdaptationGroup getAdaptationGroup();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getAdaptationGroup <em>Adaptation Group</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Adaptation Group</em>' reference.
-	 * @see #getAdaptationGroup()
-	 * @generated
-	 */
-	void setAdaptationGroup(NodeAdaptationGroup value);
-
-} // AdaptableNode
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableSdnNodePerformance.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableSdnNodePerformance.java
deleted file mode 100644
index 485f07f3..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableSdnNodePerformance.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import java.util.List;
-import tools.descartes.dni.dnimm3.SdnNodePerformanceType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Adaptable Sdn Node Performance</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance#getSoftwareSwitchingPerformance <em>Software Switching Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance#getHardwareSwitchingPerformance <em>Hardware Switching Performance</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableSdnNodePerformance()
- * @model
- * @generated
- */
-public interface AdaptableSdnNodePerformance extends IAdaptableEntity<SdnNodePerformanceType> {
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableSdnNodePerformance_Name()
-	 * @model unique="false" transient="true" changeable="false" volatile="true" derived="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='&lt;%tools.descartes.dni.dnimm3.SdnNodePerformanceType%&gt; _entityType = this.getEntityType();\nboolean _tripleNotEquals = (_entityType != null);\nif (_tripleNotEquals)\n{\n\treturn this.getEntityType().getName();\n}\nelse\n{\n\treturn \"Unspecified entity type\";\n}'"
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Returns the value of the '<em><b>Software Switching Performance</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Software Switching Performance</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>Software Switching Performance</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableSdnNodePerformance_SoftwareSwitchingPerformance()
-	 * @model
-	 * @generated
-	 */
-	List<AdaptableIntermediatePerformance> getSoftwareSwitchingPerformance();
-
-	/**
-	 * Returns the value of the '<em><b>Hardware Switching Performance</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Hardware Switching Performance</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>Hardware Switching Performance</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableSdnNodePerformance_HardwareSwitchingPerformance()
-	 * @model
-	 * @generated
-	 */
-	List<AdaptableIntermediatePerformance> getHardwareSwitchingPerformance();
-
-} // AdaptableSdnNodePerformance
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationGroups.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationGroups.java
deleted file mode 100644
index a47f18fe..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationGroups.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import java.util.List;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Adaptation Groups</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationGroups#getNodes <em>Nodes</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationGroups#getLinks <em>Links</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationGroups()
- * @model
- * @generated
- */
-public interface AdaptationGroups extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Nodes</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.NodeAdaptationGroup}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Nodes</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>Nodes</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationGroups_Nodes()
-	 * @model containment="true"
-	 * @generated
-	 */
-	List<NodeAdaptationGroup> getNodes();
-
-	/**
-	 * Returns the value of the '<em><b>Links</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.LinkAdaptationGroup}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Links</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>Links</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationGroups_Links()
-	 * @model containment="true"
-	 * @generated
-	 */
-	List<LinkAdaptationGroup> getLinks();
-
-} // AdaptationGroups
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationPoints.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationPoints.java
deleted file mode 100644
index 80659cc6..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationPoints.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import org.eclipse.emf.ecore.EObject;
-import tools.descartes.dni.dnimm3.NetworkInfrastructure;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Adaptation Points</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationPoints#getRepositories <em>Repositories</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationPoints#getGroups <em>Groups</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationPoints#getNetworkInfrastructure <em>Network Infrastructure</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationPoints()
- * @model
- * @generated
- */
-public interface AdaptationPoints extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Repositories</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Repositories</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Repositories</em>' containment reference.
-	 * @see #setRepositories(AdaptationRepositories)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationPoints_Repositories()
-	 * @model containment="true"
-	 * @generated
-	 */
-	AdaptationRepositories getRepositories();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptationPoints#getRepositories <em>Repositories</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Repositories</em>' containment reference.
-	 * @see #getRepositories()
-	 * @generated
-	 */
-	void setRepositories(AdaptationRepositories value);
-
-	/**
-	 * Returns the value of the '<em><b>Groups</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Groups</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>Groups</em>' containment reference.
-	 * @see #setGroups(AdaptationGroups)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationPoints_Groups()
-	 * @model containment="true"
-	 * @generated
-	 */
-	AdaptationGroups getGroups();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptationPoints#getGroups <em>Groups</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Groups</em>' containment reference.
-	 * @see #getGroups()
-	 * @generated
-	 */
-	void setGroups(AdaptationGroups value);
-
-	/**
-	 * Returns the value of the '<em><b>Network Infrastructure</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Network Infrastructure</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Network Infrastructure</em>' reference.
-	 * @see #setNetworkInfrastructure(NetworkInfrastructure)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationPoints_NetworkInfrastructure()
-	 * @model
-	 * @generated
-	 */
-	NetworkInfrastructure getNetworkInfrastructure();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptationPoints#getNetworkInfrastructure <em>Network Infrastructure</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Network Infrastructure</em>' reference.
-	 * @see #getNetworkInfrastructure()
-	 * @generated
-	 */
-	void setNetworkInfrastructure(NetworkInfrastructure value);
-
-} // AdaptationPoints
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationRepositories.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationRepositories.java
deleted file mode 100644
index 0edbded9..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationRepositories.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import java.util.List;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Adaptation Repositories</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNodes <em>Nodes</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getEndPerformances <em>End Performances</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getIntermediatePerformances <em>Intermediate Performances</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getSdnNodePerformances <em>Sdn Node Performances</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNetworkInterfaces <em>Network Interfaces</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNetworkInterfacePerformances <em>Network Interface Performances</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getLinks <em>Links</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getLinkPerformances <em>Link Performances</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories()
- * @model
- * @generated
- */
-public interface AdaptationRepositories extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Nodes</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableNode}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Nodes</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>Nodes</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_Nodes()
-	 * @model containment="true"
-	 * @generated
-	 */
-	List<AdaptableNode> getNodes();
-
-	/**
-	 * Returns the value of the '<em><b>End Performances</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableEndPerformance}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>End Performances</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>End Performances</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_EndPerformances()
-	 * @model containment="true"
-	 * @generated
-	 */
-	List<AdaptableEndPerformance> getEndPerformances();
-
-	/**
-	 * Returns the value of the '<em><b>Intermediate Performances</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Intermediate Performances</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>Intermediate Performances</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_IntermediatePerformances()
-	 * @model containment="true"
-	 * @generated
-	 */
-	List<AdaptableIntermediatePerformance> getIntermediatePerformances();
-
-	/**
-	 * Returns the value of the '<em><b>Sdn Node Performances</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Sdn Node Performances</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>Sdn Node Performances</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_SdnNodePerformances()
-	 * @model containment="true"
-	 * @generated
-	 */
-	List<AdaptableSdnNodePerformance> getSdnNodePerformances();
-
-	/**
-	 * Returns the value of the '<em><b>Network Interfaces</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Network Interfaces</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>Network Interfaces</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_NetworkInterfaces()
-	 * @model containment="true"
-	 * @generated
-	 */
-	List<AdaptableNetworkInterface> getNetworkInterfaces();
-
-	/**
-	 * Returns the value of the '<em><b>Network Interface Performances</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Network Interface Performances</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>Network Interface Performances</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_NetworkInterfacePerformances()
-	 * @model containment="true"
-	 * @generated
-	 */
-	List<AdaptableNetworkInterfacePerformance> getNetworkInterfacePerformances();
-
-	/**
-	 * Returns the value of the '<em><b>Links</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableLink}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Links</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>Links</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_Links()
-	 * @model containment="true"
-	 * @generated
-	 */
-	List<AdaptableLink> getLinks();
-
-	/**
-	 * Returns the value of the '<em><b>Link Performances</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Link Performances</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>Link Performances</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_LinkPerformances()
-	 * @model containment="true"
-	 * @generated
-	 */
-	List<AdaptableLinkPerformance> getLinkPerformances();
-
-} // AdaptationRepositories
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AlternativeConstantLong.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AlternativeConstantLong.java
deleted file mode 100644
index 869f9c2e..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AlternativeConstantLong.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Alternative Constant Long</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAlternativeConstantLong()
- * @model abstract="true"
- * @generated
- */
-public interface AlternativeConstantLong extends EObject {
-} // AlternativeConstantLong
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AlternativeConstantLongVariableSet.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AlternativeConstantLongVariableSet.java
deleted file mode 100644
index 4db30d2e..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AlternativeConstantLongVariableSet.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import tools.descartes.dni.dnimm3.ConstantLongVariable;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Alternative Constant Long Variable Set</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAlternativeConstantLongVariableSet()
- * @model
- * @generated
- */
-public interface AlternativeConstantLongVariableSet extends AlternativeConstantLong, AlternativeParameterSet<ConstantLongVariable> {
-} // AlternativeConstantLongVariableSet
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AlternativeParameterSet.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AlternativeParameterSet.java
deleted file mode 100644
index 20ae3940..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AlternativeParameterSet.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import java.util.List;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Alternative Parameter Set</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AlternativeParameterSet#getAlternative <em>Alternative</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAlternativeParameterSet()
- * @model interface="true" abstract="true"
- * @generated
- */
-public interface AlternativeParameterSet<P> extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Alternative</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Alternative</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>Alternative</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAlternativeParameterSet_Alternative()
-	 * @model kind="reference" containment="true"
-	 * @generated
-	 */
-	List<P> getAlternative();
-
-} // AlternativeParameterSet
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AlternativeVariable.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AlternativeVariable.java
deleted file mode 100644
index 6592eb3d..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AlternativeVariable.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Alternative Variable</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAlternativeVariable()
- * @model abstract="true"
- * @generated
- */
-public interface AlternativeVariable extends EObject {
-} // AlternativeVariable
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AlternativeVariableSet.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AlternativeVariableSet.java
deleted file mode 100644
index 8e509b25..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AlternativeVariableSet.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import tools.descartes.dni.dnimm3.Variable;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Alternative Variable Set</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAlternativeVariableSet()
- * @model
- * @generated
- */
-public interface AlternativeVariableSet extends AlternativeVariable, AlternativeParameterSet<Variable> {
-} // AlternativeVariableSet
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPFactory.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPFactory.java
deleted file mode 100644
index 69b6f211..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPFactory.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-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 tools.descartes.dni.dnimm3ap.DNIAPPackage
- * @generated
- */
-public interface DNIAPFactory extends EFactory {
-	/**
-	 * The singleton instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	DNIAPFactory eINSTANCE = tools.descartes.dni.dnimm3ap.impl.DNIAPFactoryImpl.init();
-
-	/**
-	 * Returns a new object of class '<em>Adaptation Points</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Adaptation Points</em>'.
-	 * @generated
-	 */
-	AdaptationPoints createAdaptationPoints();
-
-	/**
-	 * Returns a new object of class '<em>Adaptation Repositories</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Adaptation Repositories</em>'.
-	 * @generated
-	 */
-	AdaptationRepositories createAdaptationRepositories();
-
-	/**
-	 * Returns a new object of class '<em>Adaptable Node</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Adaptable Node</em>'.
-	 * @generated
-	 */
-	AdaptableNode createAdaptableNode();
-
-	/**
-	 * Returns a new object of class '<em>Adaptable Link</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Adaptable Link</em>'.
-	 * @generated
-	 */
-	AdaptableLink createAdaptableLink();
-
-	/**
-	 * Returns a new object of class '<em>Adaptable Link Performance</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Adaptable Link Performance</em>'.
-	 * @generated
-	 */
-	AdaptableLinkPerformance createAdaptableLinkPerformance();
-
-	/**
-	 * Returns a new object of class '<em>Adaptable End Performance</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Adaptable End Performance</em>'.
-	 * @generated
-	 */
-	AdaptableEndPerformance createAdaptableEndPerformance();
-
-	/**
-	 * Returns a new object of class '<em>Adaptable Intermediate Performance</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Adaptable Intermediate Performance</em>'.
-	 * @generated
-	 */
-	AdaptableIntermediatePerformance createAdaptableIntermediatePerformance();
-
-	/**
-	 * Returns a new object of class '<em>Adaptable Sdn Node Performance</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Adaptable Sdn Node Performance</em>'.
-	 * @generated
-	 */
-	AdaptableSdnNodePerformance createAdaptableSdnNodePerformance();
-
-	/**
-	 * Returns a new object of class '<em>Adaptable Network Interface</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Adaptable Network Interface</em>'.
-	 * @generated
-	 */
-	AdaptableNetworkInterface createAdaptableNetworkInterface();
-
-	/**
-	 * Returns a new object of class '<em>Adaptable Network Interface Performance</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Adaptable Network Interface Performance</em>'.
-	 * @generated
-	 */
-	AdaptableNetworkInterfacePerformance createAdaptableNetworkInterfacePerformance();
-
-	/**
-	 * Returns a new object of class '<em>Adaptation Groups</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Adaptation Groups</em>'.
-	 * @generated
-	 */
-	AdaptationGroups createAdaptationGroups();
-
-	/**
-	 * Returns a new object of class '<em>Node Adaptation Group</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Node Adaptation Group</em>'.
-	 * @generated
-	 */
-	NodeAdaptationGroup createNodeAdaptationGroup();
-
-	/**
-	 * Returns a new object of class '<em>Link Adaptation Group</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Link Adaptation Group</em>'.
-	 * @generated
-	 */
-	LinkAdaptationGroup createLinkAdaptationGroup();
-
-	/**
-	 * Returns a new object of class '<em>Alternative Variable Set</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Alternative Variable Set</em>'.
-	 * @generated
-	 */
-	AlternativeVariableSet createAlternativeVariableSet();
-
-	/**
-	 * Returns a new object of class '<em>Alternative Constant Long Variable Set</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Alternative Constant Long Variable Set</em>'.
-	 * @generated
-	 */
-	AlternativeConstantLongVariableSet createAlternativeConstantLongVariableSet();
-
-	/**
-	 * Returns the package supported by this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the package supported by this factory.
-	 * @generated
-	 */
-	DNIAPPackage getDNIAPPackage();
-
-} //DNIAPFactory
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPPackage.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPPackage.java
deleted file mode 100644
index 5eee0477..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPPackage.java
+++ /dev/null
@@ -1,2526 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-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 tools.descartes.dni.dnimm3.DNIPackage;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Package</b> for the model.
- * It contains accessors for the meta objects to represent
- * <ul>
- *   <li>each class,</li>
- *   <li>each feature of each class,</li>
- *   <li>each operation of each class,</li>
- *   <li>each enum,</li>
- *   <li>and each data type</li>
- * </ul>
- * <!-- end-user-doc -->
- * @see tools.descartes.dni.dnimm3ap.DNIAPFactory
- * @model kind="package"
- *        annotation="http://www.eclipse.org/emf/2002/GenModel modelDirectory='/tools.descartes.dni.adaptation/src' editDirectory='/tools.descartes.dni.adaptation/src' editorDirectory='/tools.descartes.dni.adaptation/src' fileExtensions='dniap' prefix='DNIAP' suppressEMFTypes='true' basePackage='tools.descartes.dni'"
- * @generated
- */
-public interface DNIAPPackage extends EPackage {
-	/**
-	 * The package name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNAME = "dnimm3ap";
-
-	/**
-	 * The package namespace URI.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNS_URI = "http://descartes.tools/dni-adaptation-metamodel-3.1";
-
-	/**
-	 * The package namespace name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNS_PREFIX = "dnimm3ap";
-
-	/**
-	 * The singleton instance of the package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	DNIAPPackage eINSTANCE = tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl.init();
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptationPointsImpl <em>Adaptation Points</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AdaptationPointsImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptationPoints()
-	 * @generated
-	 */
-	int ADAPTATION_POINTS = 0;
-
-	/**
-	 * The feature id for the '<em><b>Repositories</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTATION_POINTS__REPOSITORIES = 0;
-
-	/**
-	 * The feature id for the '<em><b>Groups</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTATION_POINTS__GROUPS = 1;
-
-	/**
-	 * The feature id for the '<em><b>Network Infrastructure</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTATION_POINTS__NETWORK_INFRASTRUCTURE = 2;
-
-	/**
-	 * The number of structural features of the '<em>Adaptation Points</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTATION_POINTS_FEATURE_COUNT = 3;
-
-	/**
-	 * The number of operations of the '<em>Adaptation Points</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTATION_POINTS_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl <em>Adaptation Repositories</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptationRepositories()
-	 * @generated
-	 */
-	int ADAPTATION_REPOSITORIES = 1;
-
-	/**
-	 * The feature id for the '<em><b>Nodes</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTATION_REPOSITORIES__NODES = 0;
-
-	/**
-	 * The feature id for the '<em><b>End Performances</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTATION_REPOSITORIES__END_PERFORMANCES = 1;
-
-	/**
-	 * The feature id for the '<em><b>Intermediate Performances</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES = 2;
-
-	/**
-	 * The feature id for the '<em><b>Sdn Node Performances</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES = 3;
-
-	/**
-	 * The feature id for the '<em><b>Network Interfaces</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTATION_REPOSITORIES__NETWORK_INTERFACES = 4;
-
-	/**
-	 * The feature id for the '<em><b>Network Interface Performances</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES = 5;
-
-	/**
-	 * The feature id for the '<em><b>Links</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTATION_REPOSITORIES__LINKS = 6;
-
-	/**
-	 * The feature id for the '<em><b>Link Performances</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTATION_REPOSITORIES__LINK_PERFORMANCES = 7;
-
-	/**
-	 * The number of structural features of the '<em>Adaptation Repositories</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTATION_REPOSITORIES_FEATURE_COUNT = 8;
-
-	/**
-	 * The number of operations of the '<em>Adaptation Repositories</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTATION_REPOSITORIES_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.IAdaptableEntity <em>IAdaptable Entity</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.IAdaptableEntity
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getIAdaptableEntity()
-	 * @generated
-	 */
-	int IADAPTABLE_ENTITY = 2;
-
-	/**
-	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IADAPTABLE_ENTITY__ENTITY_TYPE = 0;
-
-	/**
-	 * The number of structural features of the '<em>IAdaptable Entity</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IADAPTABLE_ENTITY_FEATURE_COUNT = 1;
-
-	/**
-	 * The number of operations of the '<em>IAdaptable Entity</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IADAPTABLE_ENTITY_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.IAdaptableGroupableEntity <em>IAdaptable Groupable Entity</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.IAdaptableGroupableEntity
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getIAdaptableGroupableEntity()
-	 * @generated
-	 */
-	int IADAPTABLE_GROUPABLE_ENTITY = 3;
-
-	/**
-	 * The number of structural features of the '<em>IAdaptable Groupable Entity</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IADAPTABLE_GROUPABLE_ENTITY_FEATURE_COUNT = 0;
-
-	/**
-	 * The number of operations of the '<em>IAdaptable Groupable Entity</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IADAPTABLE_GROUPABLE_ENTITY_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl <em>Adaptable Node</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableNode()
-	 * @generated
-	 */
-	int ADAPTABLE_NODE = 4;
-
-	/**
-	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NODE__ENTITY_TYPE = IADAPTABLE_ENTITY__ENTITY_TYPE;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NODE__NAME = IADAPTABLE_ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>End Performance</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NODE__END_PERFORMANCE = IADAPTABLE_ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Intermediate Performance</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE = IADAPTABLE_ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Sdn Node Performance</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NODE__SDN_NODE_PERFORMANCE = IADAPTABLE_ENTITY_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Network Interface</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NODE__NETWORK_INTERFACE = IADAPTABLE_ENTITY_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Adaptation Group</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NODE__ADAPTATION_GROUP = IADAPTABLE_ENTITY_FEATURE_COUNT + 5;
-
-	/**
-	 * The number of structural features of the '<em>Adaptable Node</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NODE_FEATURE_COUNT = IADAPTABLE_ENTITY_FEATURE_COUNT + 6;
-
-	/**
-	 * The number of operations of the '<em>Adaptable Node</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NODE_OPERATION_COUNT = IADAPTABLE_ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkImpl <em>Adaptable Link</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableLinkImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableLink()
-	 * @generated
-	 */
-	int ADAPTABLE_LINK = 5;
-
-	/**
-	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_LINK__ENTITY_TYPE = IADAPTABLE_ENTITY__ENTITY_TYPE;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_LINK__NAME = IADAPTABLE_ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Link Performance</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_LINK__LINK_PERFORMANCE = IADAPTABLE_ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Network Interface</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_LINK__NETWORK_INTERFACE = IADAPTABLE_ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Adaptation Group</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_LINK__ADAPTATION_GROUP = IADAPTABLE_ENTITY_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of structural features of the '<em>Adaptable Link</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_LINK_FEATURE_COUNT = IADAPTABLE_ENTITY_FEATURE_COUNT + 4;
-
-	/**
-	 * The number of operations of the '<em>Adaptable Link</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_LINK_OPERATION_COUNT = IADAPTABLE_ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkPerformanceImpl <em>Adaptable Link Performance</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableLinkPerformanceImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableLinkPerformance()
-	 * @generated
-	 */
-	int ADAPTABLE_LINK_PERFORMANCE = 6;
-
-	/**
-	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_LINK_PERFORMANCE__ENTITY_TYPE = IADAPTABLE_ENTITY__ENTITY_TYPE;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_LINK_PERFORMANCE__NAME = IADAPTABLE_ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Propagation Delay</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_LINK_PERFORMANCE__PROPAGATION_DELAY = IADAPTABLE_ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Maximal Supported Bandwidth</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_LINK_PERFORMANCE__MAXIMAL_SUPPORTED_BANDWIDTH = IADAPTABLE_ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of structural features of the '<em>Adaptable Link Performance</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_LINK_PERFORMANCE_FEATURE_COUNT = IADAPTABLE_ENTITY_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of operations of the '<em>Adaptable Link Performance</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_LINK_PERFORMANCE_OPERATION_COUNT = IADAPTABLE_ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableEndPerformanceImpl <em>Adaptable End Performance</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableEndPerformanceImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableEndPerformance()
-	 * @generated
-	 */
-	int ADAPTABLE_END_PERFORMANCE = 7;
-
-	/**
-	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_END_PERFORMANCE__ENTITY_TYPE = IADAPTABLE_ENTITY__ENTITY_TYPE;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_END_PERFORMANCE__NAME = IADAPTABLE_ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Software Layers Delay</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_END_PERFORMANCE__SOFTWARE_LAYERS_DELAY = IADAPTABLE_ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Adaptable End Performance</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_END_PERFORMANCE_FEATURE_COUNT = IADAPTABLE_ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of operations of the '<em>Adaptable End Performance</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_END_PERFORMANCE_OPERATION_COUNT = IADAPTABLE_ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableIntermediatePerformanceImpl <em>Adaptable Intermediate Performance</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableIntermediatePerformanceImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableIntermediatePerformance()
-	 * @generated
-	 */
-	int ADAPTABLE_INTERMEDIATE_PERFORMANCE = 8;
-
-	/**
-	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_INTERMEDIATE_PERFORMANCE__ENTITY_TYPE = IADAPTABLE_ENTITY__ENTITY_TYPE;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_INTERMEDIATE_PERFORMANCE__NAME = IADAPTABLE_ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Forwarding Latency</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY = IADAPTABLE_ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Switching Capacity PPS</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS = IADAPTABLE_ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Forwarding Bandwidth BPS</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS = IADAPTABLE_ENTITY_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of structural features of the '<em>Adaptable Intermediate Performance</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_INTERMEDIATE_PERFORMANCE_FEATURE_COUNT = IADAPTABLE_ENTITY_FEATURE_COUNT + 4;
-
-	/**
-	 * The number of operations of the '<em>Adaptable Intermediate Performance</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_INTERMEDIATE_PERFORMANCE_OPERATION_COUNT = IADAPTABLE_ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableSdnNodePerformanceImpl <em>Adaptable Sdn Node Performance</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableSdnNodePerformanceImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableSdnNodePerformance()
-	 * @generated
-	 */
-	int ADAPTABLE_SDN_NODE_PERFORMANCE = 9;
-
-	/**
-	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_SDN_NODE_PERFORMANCE__ENTITY_TYPE = IADAPTABLE_ENTITY__ENTITY_TYPE;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_SDN_NODE_PERFORMANCE__NAME = IADAPTABLE_ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Software Switching Performance</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE = IADAPTABLE_ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Hardware Switching Performance</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE = IADAPTABLE_ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of structural features of the '<em>Adaptable Sdn Node Performance</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_SDN_NODE_PERFORMANCE_FEATURE_COUNT = IADAPTABLE_ENTITY_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of operations of the '<em>Adaptable Sdn Node Performance</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_SDN_NODE_PERFORMANCE_OPERATION_COUNT = IADAPTABLE_ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfaceImpl <em>Adaptable Network Interface</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfaceImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableNetworkInterface()
-	 * @generated
-	 */
-	int ADAPTABLE_NETWORK_INTERFACE = 10;
-
-	/**
-	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NETWORK_INTERFACE__ENTITY_TYPE = IADAPTABLE_ENTITY__ENTITY_TYPE;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NETWORK_INTERFACE__NAME = IADAPTABLE_ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Network Interface Performance</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE = IADAPTABLE_ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Adaptable Network Interface</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NETWORK_INTERFACE_FEATURE_COUNT = IADAPTABLE_ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of operations of the '<em>Adaptable Network Interface</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NETWORK_INTERFACE_OPERATION_COUNT = IADAPTABLE_ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfacePerformanceImpl <em>Adaptable Network Interface Performance</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfacePerformanceImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableNetworkInterfacePerformance()
-	 * @generated
-	 */
-	int ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE = 11;
-
-	/**
-	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__ENTITY_TYPE = IADAPTABLE_ENTITY__ENTITY_TYPE;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__NAME = IADAPTABLE_ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Packet Processing Time</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__PACKET_PROCESSING_TIME = IADAPTABLE_ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Interface Throughput</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__INTERFACE_THROUGHPUT = IADAPTABLE_ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of structural features of the '<em>Adaptable Network Interface Performance</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_FEATURE_COUNT = IADAPTABLE_ENTITY_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of operations of the '<em>Adaptable Network Interface Performance</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_OPERATION_COUNT = IADAPTABLE_ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptationGroupsImpl <em>Adaptation Groups</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AdaptationGroupsImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptationGroups()
-	 * @generated
-	 */
-	int ADAPTATION_GROUPS = 12;
-
-	/**
-	 * The feature id for the '<em><b>Nodes</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTATION_GROUPS__NODES = 0;
-
-	/**
-	 * The feature id for the '<em><b>Links</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTATION_GROUPS__LINKS = 1;
-
-	/**
-	 * The number of structural features of the '<em>Adaptation Groups</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTATION_GROUPS_FEATURE_COUNT = 2;
-
-	/**
-	 * The number of operations of the '<em>Adaptation Groups</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTATION_GROUPS_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.IAdaptationGroup <em>IAdaptation Group</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.IAdaptationGroup
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getIAdaptationGroup()
-	 * @generated
-	 */
-	int IADAPTATION_GROUP = 13;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IADAPTATION_GROUP__NAME = DNIPackage.NAMED_ELEMENT__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IADAPTATION_GROUP__DESCRIPTION = DNIPackage.NAMED_ELEMENT__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IADAPTATION_GROUP__UID = DNIPackage.NAMED_ELEMENT_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IADAPTATION_GROUP__UID_GENERATED = DNIPackage.NAMED_ELEMENT_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>IAdaptation Group</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IADAPTATION_GROUP_FEATURE_COUNT = DNIPackage.NAMED_ELEMENT_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of operations of the '<em>IAdaptation Group</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IADAPTATION_GROUP_OPERATION_COUNT = DNIPackage.NAMED_ELEMENT_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.NodeAdaptationGroupImpl <em>Node Adaptation Group</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.NodeAdaptationGroupImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getNodeAdaptationGroup()
-	 * @generated
-	 */
-	int NODE_ADAPTATION_GROUP = 14;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE_ADAPTATION_GROUP__NAME = IADAPTATION_GROUP__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE_ADAPTATION_GROUP__DESCRIPTION = IADAPTATION_GROUP__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE_ADAPTATION_GROUP__UID = IADAPTATION_GROUP__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE_ADAPTATION_GROUP__UID_GENERATED = IADAPTATION_GROUP__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Items</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE_ADAPTATION_GROUP__ITEMS = IADAPTATION_GROUP_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Node Adaptation Group</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE_ADAPTATION_GROUP_FEATURE_COUNT = IADAPTATION_GROUP_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Node Adaptation Group</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE_ADAPTATION_GROUP_OPERATION_COUNT = IADAPTATION_GROUP_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.LinkAdaptationGroupImpl <em>Link Adaptation Group</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.LinkAdaptationGroupImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getLinkAdaptationGroup()
-	 * @generated
-	 */
-	int LINK_ADAPTATION_GROUP = 15;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_ADAPTATION_GROUP__NAME = IADAPTATION_GROUP__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_ADAPTATION_GROUP__DESCRIPTION = IADAPTATION_GROUP__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_ADAPTATION_GROUP__UID = IADAPTATION_GROUP__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_ADAPTATION_GROUP__UID_GENERATED = IADAPTATION_GROUP__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Items</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_ADAPTATION_GROUP__ITEMS = IADAPTATION_GROUP_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Link Adaptation Group</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_ADAPTATION_GROUP_FEATURE_COUNT = IADAPTATION_GROUP_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Link Adaptation Group</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_ADAPTATION_GROUP_OPERATION_COUNT = IADAPTATION_GROUP_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.AlternativeParameterSet <em>Alternative Parameter Set</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.AlternativeParameterSet
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAlternativeParameterSet()
-	 * @generated
-	 */
-	int ALTERNATIVE_PARAMETER_SET = 16;
-
-	/**
-	 * The feature id for the '<em><b>Alternative</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ALTERNATIVE_PARAMETER_SET__ALTERNATIVE = 0;
-
-	/**
-	 * The number of structural features of the '<em>Alternative Parameter Set</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ALTERNATIVE_PARAMETER_SET_FEATURE_COUNT = 1;
-
-	/**
-	 * The number of operations of the '<em>Alternative Parameter Set</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ALTERNATIVE_PARAMETER_SET_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AlternativeVariableImpl <em>Alternative Variable</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AlternativeVariableImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAlternativeVariable()
-	 * @generated
-	 */
-	int ALTERNATIVE_VARIABLE = 17;
-
-	/**
-	 * The number of structural features of the '<em>Alternative Variable</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ALTERNATIVE_VARIABLE_FEATURE_COUNT = 0;
-
-	/**
-	 * The number of operations of the '<em>Alternative Variable</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ALTERNATIVE_VARIABLE_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AlternativeVariableSetImpl <em>Alternative Variable Set</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AlternativeVariableSetImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAlternativeVariableSet()
-	 * @generated
-	 */
-	int ALTERNATIVE_VARIABLE_SET = 18;
-
-	/**
-	 * The feature id for the '<em><b>Alternative</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ALTERNATIVE_VARIABLE_SET__ALTERNATIVE = ALTERNATIVE_VARIABLE_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Alternative Variable Set</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ALTERNATIVE_VARIABLE_SET_FEATURE_COUNT = ALTERNATIVE_VARIABLE_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Alternative Variable Set</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ALTERNATIVE_VARIABLE_SET_OPERATION_COUNT = ALTERNATIVE_VARIABLE_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AlternativeConstantLongImpl <em>Alternative Constant Long</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AlternativeConstantLongImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAlternativeConstantLong()
-	 * @generated
-	 */
-	int ALTERNATIVE_CONSTANT_LONG = 19;
-
-	/**
-	 * The number of structural features of the '<em>Alternative Constant Long</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ALTERNATIVE_CONSTANT_LONG_FEATURE_COUNT = 0;
-
-	/**
-	 * The number of operations of the '<em>Alternative Constant Long</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ALTERNATIVE_CONSTANT_LONG_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AlternativeConstantLongVariableSetImpl <em>Alternative Constant Long Variable Set</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AlternativeConstantLongVariableSetImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAlternativeConstantLongVariableSet()
-	 * @generated
-	 */
-	int ALTERNATIVE_CONSTANT_LONG_VARIABLE_SET = 20;
-
-	/**
-	 * The feature id for the '<em><b>Alternative</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ALTERNATIVE_CONSTANT_LONG_VARIABLE_SET__ALTERNATIVE = ALTERNATIVE_CONSTANT_LONG_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Alternative Constant Long Variable Set</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ALTERNATIVE_CONSTANT_LONG_VARIABLE_SET_FEATURE_COUNT = ALTERNATIVE_CONSTANT_LONG_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Alternative Constant Long Variable Set</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ALTERNATIVE_CONSTANT_LONG_VARIABLE_SET_OPERATION_COUNT = ALTERNATIVE_CONSTANT_LONG_OPERATION_COUNT + 0;
-
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AdaptationPoints <em>Adaptation Points</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Adaptation Points</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationPoints
-	 * @generated
-	 */
-	EClass getAdaptationPoints();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3ap.AdaptationPoints#getRepositories <em>Repositories</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Repositories</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationPoints#getRepositories()
-	 * @see #getAdaptationPoints()
-	 * @generated
-	 */
-	EReference getAdaptationPoints_Repositories();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3ap.AdaptationPoints#getGroups <em>Groups</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Groups</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationPoints#getGroups()
-	 * @see #getAdaptationPoints()
-	 * @generated
-	 */
-	EReference getAdaptationPoints_Groups();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3ap.AdaptationPoints#getNetworkInfrastructure <em>Network Infrastructure</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Network Infrastructure</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationPoints#getNetworkInfrastructure()
-	 * @see #getAdaptationPoints()
-	 * @generated
-	 */
-	EReference getAdaptationPoints_NetworkInfrastructure();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories <em>Adaptation Repositories</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Adaptation Repositories</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories
-	 * @generated
-	 */
-	EClass getAdaptationRepositories();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNodes <em>Nodes</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Nodes</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNodes()
-	 * @see #getAdaptationRepositories()
-	 * @generated
-	 */
-	EReference getAdaptationRepositories_Nodes();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getEndPerformances <em>End Performances</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>End Performances</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getEndPerformances()
-	 * @see #getAdaptationRepositories()
-	 * @generated
-	 */
-	EReference getAdaptationRepositories_EndPerformances();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getIntermediatePerformances <em>Intermediate Performances</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Intermediate Performances</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getIntermediatePerformances()
-	 * @see #getAdaptationRepositories()
-	 * @generated
-	 */
-	EReference getAdaptationRepositories_IntermediatePerformances();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getSdnNodePerformances <em>Sdn Node Performances</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Sdn Node Performances</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getSdnNodePerformances()
-	 * @see #getAdaptationRepositories()
-	 * @generated
-	 */
-	EReference getAdaptationRepositories_SdnNodePerformances();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNetworkInterfaces <em>Network Interfaces</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Network Interfaces</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNetworkInterfaces()
-	 * @see #getAdaptationRepositories()
-	 * @generated
-	 */
-	EReference getAdaptationRepositories_NetworkInterfaces();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNetworkInterfacePerformances <em>Network Interface Performances</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Network Interface Performances</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNetworkInterfacePerformances()
-	 * @see #getAdaptationRepositories()
-	 * @generated
-	 */
-	EReference getAdaptationRepositories_NetworkInterfacePerformances();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getLinks <em>Links</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Links</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getLinks()
-	 * @see #getAdaptationRepositories()
-	 * @generated
-	 */
-	EReference getAdaptationRepositories_Links();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getLinkPerformances <em>Link Performances</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Link Performances</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getLinkPerformances()
-	 * @see #getAdaptationRepositories()
-	 * @generated
-	 */
-	EReference getAdaptationRepositories_LinkPerformances();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.IAdaptableEntity <em>IAdaptable Entity</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>IAdaptable Entity</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.IAdaptableEntity
-	 * @generated
-	 */
-	EClass getIAdaptableEntity();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3ap.IAdaptableEntity#getEntityType <em>Entity Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Entity Type</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.IAdaptableEntity#getEntityType()
-	 * @see #getIAdaptableEntity()
-	 * @generated
-	 */
-	EReference getIAdaptableEntity_EntityType();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.IAdaptableGroupableEntity <em>IAdaptable Groupable Entity</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>IAdaptable Groupable Entity</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.IAdaptableGroupableEntity
-	 * @generated
-	 */
-	EClass getIAdaptableGroupableEntity();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AdaptableNode <em>Adaptable Node</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Adaptable Node</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableNode
-	 * @generated
-	 */
-	EClass getAdaptableNode();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableNode#getName()
-	 * @see #getAdaptableNode()
-	 * @generated
-	 */
-	EAttribute getAdaptableNode_Name();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getEndPerformance <em>End Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>End Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableNode#getEndPerformance()
-	 * @see #getAdaptableNode()
-	 * @generated
-	 */
-	EReference getAdaptableNode_EndPerformance();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getIntermediatePerformance <em>Intermediate Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Intermediate Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableNode#getIntermediatePerformance()
-	 * @see #getAdaptableNode()
-	 * @generated
-	 */
-	EReference getAdaptableNode_IntermediatePerformance();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getSdnNodePerformance <em>Sdn Node Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Sdn Node Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableNode#getSdnNodePerformance()
-	 * @see #getAdaptableNode()
-	 * @generated
-	 */
-	EReference getAdaptableNode_SdnNodePerformance();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getNetworkInterface <em>Network Interface</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Network Interface</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableNode#getNetworkInterface()
-	 * @see #getAdaptableNode()
-	 * @generated
-	 */
-	EReference getAdaptableNode_NetworkInterface();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getAdaptationGroup <em>Adaptation Group</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Adaptation Group</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableNode#getAdaptationGroup()
-	 * @see #getAdaptableNode()
-	 * @generated
-	 */
-	EReference getAdaptableNode_AdaptationGroup();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AdaptableLink <em>Adaptable Link</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Adaptable Link</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableLink
-	 * @generated
-	 */
-	EClass getAdaptableLink();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableLink#getName()
-	 * @see #getAdaptableLink()
-	 * @generated
-	 */
-	EAttribute getAdaptableLink_Name();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getLinkPerformance <em>Link Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Link Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableLink#getLinkPerformance()
-	 * @see #getAdaptableLink()
-	 * @generated
-	 */
-	EReference getAdaptableLink_LinkPerformance();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getNetworkInterface <em>Network Interface</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Network Interface</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableLink#getNetworkInterface()
-	 * @see #getAdaptableLink()
-	 * @generated
-	 */
-	EReference getAdaptableLink_NetworkInterface();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getAdaptationGroup <em>Adaptation Group</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Adaptation Group</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableLink#getAdaptationGroup()
-	 * @see #getAdaptableLink()
-	 * @generated
-	 */
-	EReference getAdaptableLink_AdaptationGroup();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance <em>Adaptable Link Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Adaptable Link Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance
-	 * @generated
-	 */
-	EClass getAdaptableLinkPerformance();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance#getName()
-	 * @see #getAdaptableLinkPerformance()
-	 * @generated
-	 */
-	EAttribute getAdaptableLinkPerformance_Name();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance#getPropagationDelay <em>Propagation Delay</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Propagation Delay</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance#getPropagationDelay()
-	 * @see #getAdaptableLinkPerformance()
-	 * @generated
-	 */
-	EReference getAdaptableLinkPerformance_PropagationDelay();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance#getMaximalSupportedBandwidth <em>Maximal Supported Bandwidth</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Maximal Supported Bandwidth</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance#getMaximalSupportedBandwidth()
-	 * @see #getAdaptableLinkPerformance()
-	 * @generated
-	 */
-	EReference getAdaptableLinkPerformance_MaximalSupportedBandwidth();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AdaptableEndPerformance <em>Adaptable End Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Adaptable End Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableEndPerformance
-	 * @generated
-	 */
-	EClass getAdaptableEndPerformance();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3ap.AdaptableEndPerformance#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableEndPerformance#getName()
-	 * @see #getAdaptableEndPerformance()
-	 * @generated
-	 */
-	EAttribute getAdaptableEndPerformance_Name();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3ap.AdaptableEndPerformance#getSoftwareLayersDelay <em>Software Layers Delay</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Software Layers Delay</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableEndPerformance#getSoftwareLayersDelay()
-	 * @see #getAdaptableEndPerformance()
-	 * @generated
-	 */
-	EReference getAdaptableEndPerformance_SoftwareLayersDelay();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance <em>Adaptable Intermediate Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Adaptable Intermediate Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance
-	 * @generated
-	 */
-	EClass getAdaptableIntermediatePerformance();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance#getName()
-	 * @see #getAdaptableIntermediatePerformance()
-	 * @generated
-	 */
-	EAttribute getAdaptableIntermediatePerformance_Name();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance#getForwardingLatency <em>Forwarding Latency</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Forwarding Latency</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance#getForwardingLatency()
-	 * @see #getAdaptableIntermediatePerformance()
-	 * @generated
-	 */
-	EReference getAdaptableIntermediatePerformance_ForwardingLatency();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance#getSwitchingCapacityPPS <em>Switching Capacity PPS</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Switching Capacity PPS</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance#getSwitchingCapacityPPS()
-	 * @see #getAdaptableIntermediatePerformance()
-	 * @generated
-	 */
-	EReference getAdaptableIntermediatePerformance_SwitchingCapacityPPS();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance#getForwardingBandwidthBPS <em>Forwarding Bandwidth BPS</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Forwarding Bandwidth BPS</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance#getForwardingBandwidthBPS()
-	 * @see #getAdaptableIntermediatePerformance()
-	 * @generated
-	 */
-	EReference getAdaptableIntermediatePerformance_ForwardingBandwidthBPS();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance <em>Adaptable Sdn Node Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Adaptable Sdn Node Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance
-	 * @generated
-	 */
-	EClass getAdaptableSdnNodePerformance();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance#getName()
-	 * @see #getAdaptableSdnNodePerformance()
-	 * @generated
-	 */
-	EAttribute getAdaptableSdnNodePerformance_Name();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance#getSoftwareSwitchingPerformance <em>Software Switching Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Software Switching Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance#getSoftwareSwitchingPerformance()
-	 * @see #getAdaptableSdnNodePerformance()
-	 * @generated
-	 */
-	EReference getAdaptableSdnNodePerformance_SoftwareSwitchingPerformance();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance#getHardwareSwitchingPerformance <em>Hardware Switching Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Hardware Switching Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance#getHardwareSwitchingPerformance()
-	 * @see #getAdaptableSdnNodePerformance()
-	 * @generated
-	 */
-	EReference getAdaptableSdnNodePerformance_HardwareSwitchingPerformance();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface <em>Adaptable Network Interface</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Adaptable Network Interface</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface
-	 * @generated
-	 */
-	EClass getAdaptableNetworkInterface();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface#getName()
-	 * @see #getAdaptableNetworkInterface()
-	 * @generated
-	 */
-	EAttribute getAdaptableNetworkInterface_Name();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface#getNetworkInterfacePerformance <em>Network Interface Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Network Interface Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface#getNetworkInterfacePerformance()
-	 * @see #getAdaptableNetworkInterface()
-	 * @generated
-	 */
-	EReference getAdaptableNetworkInterface_NetworkInterfacePerformance();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance <em>Adaptable Network Interface Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Adaptable Network Interface Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance
-	 * @generated
-	 */
-	EClass getAdaptableNetworkInterfacePerformance();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance#getName()
-	 * @see #getAdaptableNetworkInterfacePerformance()
-	 * @generated
-	 */
-	EAttribute getAdaptableNetworkInterfacePerformance_Name();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance#getPacketProcessingTime <em>Packet Processing Time</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Packet Processing Time</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance#getPacketProcessingTime()
-	 * @see #getAdaptableNetworkInterfacePerformance()
-	 * @generated
-	 */
-	EReference getAdaptableNetworkInterfacePerformance_PacketProcessingTime();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance#getInterfaceThroughput <em>Interface Throughput</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Interface Throughput</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance#getInterfaceThroughput()
-	 * @see #getAdaptableNetworkInterfacePerformance()
-	 * @generated
-	 */
-	EReference getAdaptableNetworkInterfacePerformance_InterfaceThroughput();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AdaptationGroups <em>Adaptation Groups</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Adaptation Groups</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationGroups
-	 * @generated
-	 */
-	EClass getAdaptationGroups();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptationGroups#getNodes <em>Nodes</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Nodes</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationGroups#getNodes()
-	 * @see #getAdaptationGroups()
-	 * @generated
-	 */
-	EReference getAdaptationGroups_Nodes();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptationGroups#getLinks <em>Links</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Links</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationGroups#getLinks()
-	 * @see #getAdaptationGroups()
-	 * @generated
-	 */
-	EReference getAdaptationGroups_Links();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.IAdaptationGroup <em>IAdaptation Group</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>IAdaptation Group</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.IAdaptationGroup
-	 * @generated
-	 */
-	EClass getIAdaptationGroup();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.NodeAdaptationGroup <em>Node Adaptation Group</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Node Adaptation Group</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.NodeAdaptationGroup
-	 * @generated
-	 */
-	EClass getNodeAdaptationGroup();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3ap.NodeAdaptationGroup#getItems <em>Items</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Items</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.NodeAdaptationGroup#getItems()
-	 * @see #getNodeAdaptationGroup()
-	 * @generated
-	 */
-	EReference getNodeAdaptationGroup_Items();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.LinkAdaptationGroup <em>Link Adaptation Group</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Link Adaptation Group</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.LinkAdaptationGroup
-	 * @generated
-	 */
-	EClass getLinkAdaptationGroup();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3ap.LinkAdaptationGroup#getItems <em>Items</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Items</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.LinkAdaptationGroup#getItems()
-	 * @see #getLinkAdaptationGroup()
-	 * @generated
-	 */
-	EReference getLinkAdaptationGroup_Items();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AlternativeParameterSet <em>Alternative Parameter Set</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Alternative Parameter Set</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AlternativeParameterSet
-	 * @generated
-	 */
-	EClass getAlternativeParameterSet();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AlternativeParameterSet#getAlternative <em>Alternative</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Alternative</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AlternativeParameterSet#getAlternative()
-	 * @see #getAlternativeParameterSet()
-	 * @generated
-	 */
-	EReference getAlternativeParameterSet_Alternative();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AlternativeVariable <em>Alternative Variable</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Alternative Variable</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AlternativeVariable
-	 * @generated
-	 */
-	EClass getAlternativeVariable();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AlternativeVariableSet <em>Alternative Variable Set</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Alternative Variable Set</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AlternativeVariableSet
-	 * @generated
-	 */
-	EClass getAlternativeVariableSet();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AlternativeConstantLong <em>Alternative Constant Long</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Alternative Constant Long</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AlternativeConstantLong
-	 * @generated
-	 */
-	EClass getAlternativeConstantLong();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AlternativeConstantLongVariableSet <em>Alternative Constant Long Variable Set</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Alternative Constant Long Variable Set</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AlternativeConstantLongVariableSet
-	 * @generated
-	 */
-	EClass getAlternativeConstantLongVariableSet();
-
-	/**
-	 * 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
-	 */
-	DNIAPFactory getDNIAPFactory();
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * Defines literals for the meta objects that represent
-	 * <ul>
-	 *   <li>each class,</li>
-	 *   <li>each feature of each class,</li>
-	 *   <li>each operation of each class,</li>
-	 *   <li>each enum,</li>
-	 *   <li>and each data type</li>
-	 * </ul>
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	interface Literals {
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptationPointsImpl <em>Adaptation Points</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AdaptationPointsImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptationPoints()
-		 * @generated
-		 */
-		EClass ADAPTATION_POINTS = eINSTANCE.getAdaptationPoints();
-
-		/**
-		 * The meta object literal for the '<em><b>Repositories</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTATION_POINTS__REPOSITORIES = eINSTANCE.getAdaptationPoints_Repositories();
-
-		/**
-		 * The meta object literal for the '<em><b>Groups</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTATION_POINTS__GROUPS = eINSTANCE.getAdaptationPoints_Groups();
-
-		/**
-		 * The meta object literal for the '<em><b>Network Infrastructure</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTATION_POINTS__NETWORK_INFRASTRUCTURE = eINSTANCE.getAdaptationPoints_NetworkInfrastructure();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl <em>Adaptation Repositories</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptationRepositories()
-		 * @generated
-		 */
-		EClass ADAPTATION_REPOSITORIES = eINSTANCE.getAdaptationRepositories();
-
-		/**
-		 * The meta object literal for the '<em><b>Nodes</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTATION_REPOSITORIES__NODES = eINSTANCE.getAdaptationRepositories_Nodes();
-
-		/**
-		 * The meta object literal for the '<em><b>End Performances</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTATION_REPOSITORIES__END_PERFORMANCES = eINSTANCE.getAdaptationRepositories_EndPerformances();
-
-		/**
-		 * The meta object literal for the '<em><b>Intermediate Performances</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES = eINSTANCE.getAdaptationRepositories_IntermediatePerformances();
-
-		/**
-		 * The meta object literal for the '<em><b>Sdn Node Performances</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES = eINSTANCE.getAdaptationRepositories_SdnNodePerformances();
-
-		/**
-		 * The meta object literal for the '<em><b>Network Interfaces</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTATION_REPOSITORIES__NETWORK_INTERFACES = eINSTANCE.getAdaptationRepositories_NetworkInterfaces();
-
-		/**
-		 * The meta object literal for the '<em><b>Network Interface Performances</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES = eINSTANCE.getAdaptationRepositories_NetworkInterfacePerformances();
-
-		/**
-		 * The meta object literal for the '<em><b>Links</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTATION_REPOSITORIES__LINKS = eINSTANCE.getAdaptationRepositories_Links();
-
-		/**
-		 * The meta object literal for the '<em><b>Link Performances</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTATION_REPOSITORIES__LINK_PERFORMANCES = eINSTANCE.getAdaptationRepositories_LinkPerformances();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.IAdaptableEntity <em>IAdaptable Entity</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.IAdaptableEntity
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getIAdaptableEntity()
-		 * @generated
-		 */
-		EClass IADAPTABLE_ENTITY = eINSTANCE.getIAdaptableEntity();
-
-		/**
-		 * The meta object literal for the '<em><b>Entity Type</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference IADAPTABLE_ENTITY__ENTITY_TYPE = eINSTANCE.getIAdaptableEntity_EntityType();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.IAdaptableGroupableEntity <em>IAdaptable Groupable Entity</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.IAdaptableGroupableEntity
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getIAdaptableGroupableEntity()
-		 * @generated
-		 */
-		EClass IADAPTABLE_GROUPABLE_ENTITY = eINSTANCE.getIAdaptableGroupableEntity();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl <em>Adaptable Node</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableNode()
-		 * @generated
-		 */
-		EClass ADAPTABLE_NODE = eINSTANCE.getAdaptableNode();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ADAPTABLE_NODE__NAME = eINSTANCE.getAdaptableNode_Name();
-
-		/**
-		 * The meta object literal for the '<em><b>End Performance</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_NODE__END_PERFORMANCE = eINSTANCE.getAdaptableNode_EndPerformance();
-
-		/**
-		 * The meta object literal for the '<em><b>Intermediate Performance</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE = eINSTANCE.getAdaptableNode_IntermediatePerformance();
-
-		/**
-		 * The meta object literal for the '<em><b>Sdn Node Performance</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_NODE__SDN_NODE_PERFORMANCE = eINSTANCE.getAdaptableNode_SdnNodePerformance();
-
-		/**
-		 * The meta object literal for the '<em><b>Network Interface</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_NODE__NETWORK_INTERFACE = eINSTANCE.getAdaptableNode_NetworkInterface();
-
-		/**
-		 * The meta object literal for the '<em><b>Adaptation Group</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_NODE__ADAPTATION_GROUP = eINSTANCE.getAdaptableNode_AdaptationGroup();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkImpl <em>Adaptable Link</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableLinkImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableLink()
-		 * @generated
-		 */
-		EClass ADAPTABLE_LINK = eINSTANCE.getAdaptableLink();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ADAPTABLE_LINK__NAME = eINSTANCE.getAdaptableLink_Name();
-
-		/**
-		 * The meta object literal for the '<em><b>Link Performance</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_LINK__LINK_PERFORMANCE = eINSTANCE.getAdaptableLink_LinkPerformance();
-
-		/**
-		 * The meta object literal for the '<em><b>Network Interface</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_LINK__NETWORK_INTERFACE = eINSTANCE.getAdaptableLink_NetworkInterface();
-
-		/**
-		 * The meta object literal for the '<em><b>Adaptation Group</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_LINK__ADAPTATION_GROUP = eINSTANCE.getAdaptableLink_AdaptationGroup();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkPerformanceImpl <em>Adaptable Link Performance</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableLinkPerformanceImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableLinkPerformance()
-		 * @generated
-		 */
-		EClass ADAPTABLE_LINK_PERFORMANCE = eINSTANCE.getAdaptableLinkPerformance();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ADAPTABLE_LINK_PERFORMANCE__NAME = eINSTANCE.getAdaptableLinkPerformance_Name();
-
-		/**
-		 * The meta object literal for the '<em><b>Propagation Delay</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_LINK_PERFORMANCE__PROPAGATION_DELAY = eINSTANCE.getAdaptableLinkPerformance_PropagationDelay();
-
-		/**
-		 * The meta object literal for the '<em><b>Maximal Supported Bandwidth</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_LINK_PERFORMANCE__MAXIMAL_SUPPORTED_BANDWIDTH = eINSTANCE.getAdaptableLinkPerformance_MaximalSupportedBandwidth();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableEndPerformanceImpl <em>Adaptable End Performance</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableEndPerformanceImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableEndPerformance()
-		 * @generated
-		 */
-		EClass ADAPTABLE_END_PERFORMANCE = eINSTANCE.getAdaptableEndPerformance();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ADAPTABLE_END_PERFORMANCE__NAME = eINSTANCE.getAdaptableEndPerformance_Name();
-
-		/**
-		 * The meta object literal for the '<em><b>Software Layers Delay</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_END_PERFORMANCE__SOFTWARE_LAYERS_DELAY = eINSTANCE.getAdaptableEndPerformance_SoftwareLayersDelay();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableIntermediatePerformanceImpl <em>Adaptable Intermediate Performance</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableIntermediatePerformanceImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableIntermediatePerformance()
-		 * @generated
-		 */
-		EClass ADAPTABLE_INTERMEDIATE_PERFORMANCE = eINSTANCE.getAdaptableIntermediatePerformance();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ADAPTABLE_INTERMEDIATE_PERFORMANCE__NAME = eINSTANCE.getAdaptableIntermediatePerformance_Name();
-
-		/**
-		 * The meta object literal for the '<em><b>Forwarding Latency</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY = eINSTANCE.getAdaptableIntermediatePerformance_ForwardingLatency();
-
-		/**
-		 * The meta object literal for the '<em><b>Switching Capacity PPS</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS = eINSTANCE.getAdaptableIntermediatePerformance_SwitchingCapacityPPS();
-
-		/**
-		 * The meta object literal for the '<em><b>Forwarding Bandwidth BPS</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS = eINSTANCE.getAdaptableIntermediatePerformance_ForwardingBandwidthBPS();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableSdnNodePerformanceImpl <em>Adaptable Sdn Node Performance</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableSdnNodePerformanceImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableSdnNodePerformance()
-		 * @generated
-		 */
-		EClass ADAPTABLE_SDN_NODE_PERFORMANCE = eINSTANCE.getAdaptableSdnNodePerformance();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ADAPTABLE_SDN_NODE_PERFORMANCE__NAME = eINSTANCE.getAdaptableSdnNodePerformance_Name();
-
-		/**
-		 * The meta object literal for the '<em><b>Software Switching Performance</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE = eINSTANCE.getAdaptableSdnNodePerformance_SoftwareSwitchingPerformance();
-
-		/**
-		 * The meta object literal for the '<em><b>Hardware Switching Performance</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE = eINSTANCE.getAdaptableSdnNodePerformance_HardwareSwitchingPerformance();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfaceImpl <em>Adaptable Network Interface</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfaceImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableNetworkInterface()
-		 * @generated
-		 */
-		EClass ADAPTABLE_NETWORK_INTERFACE = eINSTANCE.getAdaptableNetworkInterface();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ADAPTABLE_NETWORK_INTERFACE__NAME = eINSTANCE.getAdaptableNetworkInterface_Name();
-
-		/**
-		 * The meta object literal for the '<em><b>Network Interface Performance</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE = eINSTANCE.getAdaptableNetworkInterface_NetworkInterfacePerformance();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfacePerformanceImpl <em>Adaptable Network Interface Performance</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfacePerformanceImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableNetworkInterfacePerformance()
-		 * @generated
-		 */
-		EClass ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE = eINSTANCE.getAdaptableNetworkInterfacePerformance();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__NAME = eINSTANCE.getAdaptableNetworkInterfacePerformance_Name();
-
-		/**
-		 * The meta object literal for the '<em><b>Packet Processing Time</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__PACKET_PROCESSING_TIME = eINSTANCE.getAdaptableNetworkInterfacePerformance_PacketProcessingTime();
-
-		/**
-		 * The meta object literal for the '<em><b>Interface Throughput</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__INTERFACE_THROUGHPUT = eINSTANCE.getAdaptableNetworkInterfacePerformance_InterfaceThroughput();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptationGroupsImpl <em>Adaptation Groups</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AdaptationGroupsImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptationGroups()
-		 * @generated
-		 */
-		EClass ADAPTATION_GROUPS = eINSTANCE.getAdaptationGroups();
-
-		/**
-		 * The meta object literal for the '<em><b>Nodes</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTATION_GROUPS__NODES = eINSTANCE.getAdaptationGroups_Nodes();
-
-		/**
-		 * The meta object literal for the '<em><b>Links</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTATION_GROUPS__LINKS = eINSTANCE.getAdaptationGroups_Links();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.IAdaptationGroup <em>IAdaptation Group</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.IAdaptationGroup
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getIAdaptationGroup()
-		 * @generated
-		 */
-		EClass IADAPTATION_GROUP = eINSTANCE.getIAdaptationGroup();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.NodeAdaptationGroupImpl <em>Node Adaptation Group</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.NodeAdaptationGroupImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getNodeAdaptationGroup()
-		 * @generated
-		 */
-		EClass NODE_ADAPTATION_GROUP = eINSTANCE.getNodeAdaptationGroup();
-
-		/**
-		 * The meta object literal for the '<em><b>Items</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NODE_ADAPTATION_GROUP__ITEMS = eINSTANCE.getNodeAdaptationGroup_Items();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.LinkAdaptationGroupImpl <em>Link Adaptation Group</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.LinkAdaptationGroupImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getLinkAdaptationGroup()
-		 * @generated
-		 */
-		EClass LINK_ADAPTATION_GROUP = eINSTANCE.getLinkAdaptationGroup();
-
-		/**
-		 * The meta object literal for the '<em><b>Items</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference LINK_ADAPTATION_GROUP__ITEMS = eINSTANCE.getLinkAdaptationGroup_Items();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.AlternativeParameterSet <em>Alternative Parameter Set</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.AlternativeParameterSet
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAlternativeParameterSet()
-		 * @generated
-		 */
-		EClass ALTERNATIVE_PARAMETER_SET = eINSTANCE.getAlternativeParameterSet();
-
-		/**
-		 * The meta object literal for the '<em><b>Alternative</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ALTERNATIVE_PARAMETER_SET__ALTERNATIVE = eINSTANCE.getAlternativeParameterSet_Alternative();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AlternativeVariableImpl <em>Alternative Variable</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AlternativeVariableImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAlternativeVariable()
-		 * @generated
-		 */
-		EClass ALTERNATIVE_VARIABLE = eINSTANCE.getAlternativeVariable();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AlternativeVariableSetImpl <em>Alternative Variable Set</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AlternativeVariableSetImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAlternativeVariableSet()
-		 * @generated
-		 */
-		EClass ALTERNATIVE_VARIABLE_SET = eINSTANCE.getAlternativeVariableSet();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AlternativeConstantLongImpl <em>Alternative Constant Long</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AlternativeConstantLongImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAlternativeConstantLong()
-		 * @generated
-		 */
-		EClass ALTERNATIVE_CONSTANT_LONG = eINSTANCE.getAlternativeConstantLong();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AlternativeConstantLongVariableSetImpl <em>Alternative Constant Long Variable Set</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AlternativeConstantLongVariableSetImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAlternativeConstantLongVariableSet()
-		 * @generated
-		 */
-		EClass ALTERNATIVE_CONSTANT_LONG_VARIABLE_SET = eINSTANCE.getAlternativeConstantLongVariableSet();
-
-	}
-
-} //DNIAPPackage
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/IAdaptableEntity.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/IAdaptableEntity.java
deleted file mode 100644
index 6571a298..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/IAdaptableEntity.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import org.eclipse.emf.ecore.EObject;
-
-import tools.descartes.dni.dnimm3.ITypedEntity;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>IAdaptable Entity</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.IAdaptableEntity#getEntityType <em>Entity Type</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getIAdaptableEntity()
- * @model interface="true" abstract="true"
- * @generated
- */
-public interface IAdaptableEntity<T extends ITypedEntity> extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Entity Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Entity 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>Entity Type</em>' reference.
-	 * @see #setEntityType(ITypedEntity)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getIAdaptableEntity_EntityType()
-	 * @model
-	 * @generated
-	 */
-	T getEntityType();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.IAdaptableEntity#getEntityType <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Entity Type</em>' reference.
-	 * @see #getEntityType()
-	 * @generated
-	 */
-	void setEntityType(T value);
-
-} // IAdaptableEntity
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/IAdaptableGroupableEntity.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/IAdaptableGroupableEntity.java
deleted file mode 100644
index 546eaf75..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/IAdaptableGroupableEntity.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>IAdaptable Groupable Entity</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getIAdaptableGroupableEntity()
- * @model interface="true" abstract="true"
- * @generated
- */
-public interface IAdaptableGroupableEntity extends EObject {
-} // IAdaptableGroupableEntity
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/IAdaptationGroup.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/IAdaptationGroup.java
deleted file mode 100644
index 47570959..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/IAdaptationGroup.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import tools.descartes.dni.dnimm3.Identifier;
-import tools.descartes.dni.dnimm3.NamedElement;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>IAdaptation Group</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getIAdaptationGroup()
- * @model interface="true" abstract="true"
- * @generated
- */
-public interface IAdaptationGroup extends NamedElement, Identifier {
-} // IAdaptationGroup
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/LinkAdaptationGroup.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/LinkAdaptationGroup.java
deleted file mode 100644
index 4639d541..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/LinkAdaptationGroup.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Link Adaptation Group</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.LinkAdaptationGroup#getItems <em>Items</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getLinkAdaptationGroup()
- * @model
- * @generated
- */
-public interface LinkAdaptationGroup extends IAdaptationGroup {
-	/**
-	 * Returns the value of the '<em><b>Items</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableLink}.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getAdaptationGroup <em>Adaptation Group</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Items</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>Items</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getLinkAdaptationGroup_Items()
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableLink#getAdaptationGroup
-	 * @model opposite="adaptationGroup"
-	 * @generated
-	 */
-	List<AdaptableLink> getItems();
-
-} // LinkAdaptationGroup
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/NodeAdaptationGroup.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/NodeAdaptationGroup.java
deleted file mode 100644
index 1b27be48..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/NodeAdaptationGroup.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Node Adaptation Group</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.NodeAdaptationGroup#getItems <em>Items</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getNodeAdaptationGroup()
- * @model
- * @generated
- */
-public interface NodeAdaptationGroup extends IAdaptationGroup {
-	/**
-	 * Returns the value of the '<em><b>Items</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableNode}.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getAdaptationGroup <em>Adaptation Group</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Items</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>Items</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getNodeAdaptationGroup_Items()
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableNode#getAdaptationGroup
-	 * @model opposite="adaptationGroup"
-	 * @generated
-	 */
-	List<AdaptableNode> getItems();
-
-} // NodeAdaptationGroup
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableEndPerformanceImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableEndPerformanceImpl.java
deleted file mode 100644
index 4928c00b..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableEndPerformanceImpl.java
+++ /dev/null
@@ -1,269 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-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 tools.descartes.dni.dnimm3.EndPerformanceType;
-
-import tools.descartes.dni.dnimm3ap.AdaptableEndPerformance;
-import tools.descartes.dni.dnimm3ap.AlternativeVariable;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Adaptable End Performance</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableEndPerformanceImpl#getEntityType <em>Entity Type</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableEndPerformanceImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableEndPerformanceImpl#getSoftwareLayersDelay <em>Software Layers Delay</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AdaptableEndPerformanceImpl extends MinimalEObjectImpl.Container implements AdaptableEndPerformance {
-	/**
-	 * The cached value of the '{@link #getEntityType() <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntityType()
-	 * @generated
-	 * @ordered
-	 */
-	protected EndPerformanceType entityType;
-
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getSoftwareLayersDelay() <em>Software Layers Delay</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSoftwareLayersDelay()
-	 * @generated
-	 * @ordered
-	 */
-	protected AlternativeVariable softwareLayersDelay;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableEndPerformanceImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ADAPTABLE_END_PERFORMANCE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EndPerformanceType getEntityType() {
-		if (entityType != null && entityType.eIsProxy()) {
-			InternalEObject oldEntityType = (InternalEObject)entityType;
-			entityType = (EndPerformanceType)eResolveProxy(oldEntityType);
-			if (entityType != oldEntityType) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIAPPackage.ADAPTABLE_END_PERFORMANCE__ENTITY_TYPE, oldEntityType, entityType));
-			}
-		}
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EndPerformanceType basicGetEntityType() {
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEntityType(EndPerformanceType newEntityType) {
-		EndPerformanceType oldEntityType = entityType;
-		entityType = newEntityType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_END_PERFORMANCE__ENTITY_TYPE, oldEntityType, entityType));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		EndPerformanceType _entityType = this.getEntityType();
-		boolean _tripleNotEquals = (_entityType != null);
-		if (_tripleNotEquals) {
-			return this.getEntityType().getName();
-		}
-		else {
-			return "Unspecified entity type";
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AlternativeVariable getSoftwareLayersDelay() {
-		return softwareLayersDelay;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetSoftwareLayersDelay(AlternativeVariable newSoftwareLayersDelay, NotificationChain msgs) {
-		AlternativeVariable oldSoftwareLayersDelay = softwareLayersDelay;
-		softwareLayersDelay = newSoftwareLayersDelay;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_END_PERFORMANCE__SOFTWARE_LAYERS_DELAY, oldSoftwareLayersDelay, newSoftwareLayersDelay);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setSoftwareLayersDelay(AlternativeVariable newSoftwareLayersDelay) {
-		if (newSoftwareLayersDelay != softwareLayersDelay) {
-			NotificationChain msgs = null;
-			if (softwareLayersDelay != null)
-				msgs = ((InternalEObject)softwareLayersDelay).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTABLE_END_PERFORMANCE__SOFTWARE_LAYERS_DELAY, null, msgs);
-			if (newSoftwareLayersDelay != null)
-				msgs = ((InternalEObject)newSoftwareLayersDelay).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTABLE_END_PERFORMANCE__SOFTWARE_LAYERS_DELAY, null, msgs);
-			msgs = basicSetSoftwareLayersDelay(newSoftwareLayersDelay, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_END_PERFORMANCE__SOFTWARE_LAYERS_DELAY, newSoftwareLayersDelay, newSoftwareLayersDelay));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE__SOFTWARE_LAYERS_DELAY:
-				return basicSetSoftwareLayersDelay(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE__ENTITY_TYPE:
-				if (resolve) return getEntityType();
-				return basicGetEntityType();
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE__NAME:
-				return getName();
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE__SOFTWARE_LAYERS_DELAY:
-				return getSoftwareLayersDelay();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE__ENTITY_TYPE:
-				setEntityType((EndPerformanceType)newValue);
-				return;
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE__SOFTWARE_LAYERS_DELAY:
-				setSoftwareLayersDelay((AlternativeVariable)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE__ENTITY_TYPE:
-				setEntityType((EndPerformanceType)null);
-				return;
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE__SOFTWARE_LAYERS_DELAY:
-				setSoftwareLayersDelay((AlternativeVariable)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE__ENTITY_TYPE:
-				return entityType != null;
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE__NAME:
-				return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE__SOFTWARE_LAYERS_DELAY:
-				return softwareLayersDelay != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //AdaptableEndPerformanceImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableIntermediatePerformanceImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableIntermediatePerformanceImpl.java
deleted file mode 100644
index 4cebbf64..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableIntermediatePerformanceImpl.java
+++ /dev/null
@@ -1,401 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-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 tools.descartes.dni.dnimm3.IntermediatePerformanceType;
-
-import tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance;
-import tools.descartes.dni.dnimm3ap.AlternativeVariable;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Adaptable Intermediate Performance</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableIntermediatePerformanceImpl#getEntityType <em>Entity Type</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableIntermediatePerformanceImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableIntermediatePerformanceImpl#getForwardingLatency <em>Forwarding Latency</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableIntermediatePerformanceImpl#getSwitchingCapacityPPS <em>Switching Capacity PPS</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableIntermediatePerformanceImpl#getForwardingBandwidthBPS <em>Forwarding Bandwidth BPS</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AdaptableIntermediatePerformanceImpl extends MinimalEObjectImpl.Container implements AdaptableIntermediatePerformance {
-	/**
-	 * The cached value of the '{@link #getEntityType() <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntityType()
-	 * @generated
-	 * @ordered
-	 */
-	protected IntermediatePerformanceType entityType;
-
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getForwardingLatency() <em>Forwarding Latency</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getForwardingLatency()
-	 * @generated
-	 * @ordered
-	 */
-	protected AlternativeVariable forwardingLatency;
-
-	/**
-	 * The cached value of the '{@link #getSwitchingCapacityPPS() <em>Switching Capacity PPS</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSwitchingCapacityPPS()
-	 * @generated
-	 * @ordered
-	 */
-	protected AlternativeVariable switchingCapacityPPS;
-
-	/**
-	 * The cached value of the '{@link #getForwardingBandwidthBPS() <em>Forwarding Bandwidth BPS</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getForwardingBandwidthBPS()
-	 * @generated
-	 * @ordered
-	 */
-	protected AlternativeVariable forwardingBandwidthBPS;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableIntermediatePerformanceImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ADAPTABLE_INTERMEDIATE_PERFORMANCE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IntermediatePerformanceType getEntityType() {
-		if (entityType != null && entityType.eIsProxy()) {
-			InternalEObject oldEntityType = (InternalEObject)entityType;
-			entityType = (IntermediatePerformanceType)eResolveProxy(oldEntityType);
-			if (entityType != oldEntityType) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__ENTITY_TYPE, oldEntityType, entityType));
-			}
-		}
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IntermediatePerformanceType basicGetEntityType() {
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEntityType(IntermediatePerformanceType newEntityType) {
-		IntermediatePerformanceType oldEntityType = entityType;
-		entityType = newEntityType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__ENTITY_TYPE, oldEntityType, entityType));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		IntermediatePerformanceType _entityType = this.getEntityType();
-		boolean _tripleNotEquals = (_entityType != null);
-		if (_tripleNotEquals) {
-			return this.getEntityType().getName();
-		}
-		else {
-			return "Unspecified entity type";
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AlternativeVariable getForwardingLatency() {
-		return forwardingLatency;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetForwardingLatency(AlternativeVariable newForwardingLatency, NotificationChain msgs) {
-		AlternativeVariable oldForwardingLatency = forwardingLatency;
-		forwardingLatency = newForwardingLatency;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY, oldForwardingLatency, newForwardingLatency);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setForwardingLatency(AlternativeVariable newForwardingLatency) {
-		if (newForwardingLatency != forwardingLatency) {
-			NotificationChain msgs = null;
-			if (forwardingLatency != null)
-				msgs = ((InternalEObject)forwardingLatency).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY, null, msgs);
-			if (newForwardingLatency != null)
-				msgs = ((InternalEObject)newForwardingLatency).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY, null, msgs);
-			msgs = basicSetForwardingLatency(newForwardingLatency, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY, newForwardingLatency, newForwardingLatency));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AlternativeVariable getSwitchingCapacityPPS() {
-		return switchingCapacityPPS;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetSwitchingCapacityPPS(AlternativeVariable newSwitchingCapacityPPS, NotificationChain msgs) {
-		AlternativeVariable oldSwitchingCapacityPPS = switchingCapacityPPS;
-		switchingCapacityPPS = newSwitchingCapacityPPS;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS, oldSwitchingCapacityPPS, newSwitchingCapacityPPS);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setSwitchingCapacityPPS(AlternativeVariable newSwitchingCapacityPPS) {
-		if (newSwitchingCapacityPPS != switchingCapacityPPS) {
-			NotificationChain msgs = null;
-			if (switchingCapacityPPS != null)
-				msgs = ((InternalEObject)switchingCapacityPPS).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS, null, msgs);
-			if (newSwitchingCapacityPPS != null)
-				msgs = ((InternalEObject)newSwitchingCapacityPPS).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS, null, msgs);
-			msgs = basicSetSwitchingCapacityPPS(newSwitchingCapacityPPS, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS, newSwitchingCapacityPPS, newSwitchingCapacityPPS));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AlternativeVariable getForwardingBandwidthBPS() {
-		return forwardingBandwidthBPS;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetForwardingBandwidthBPS(AlternativeVariable newForwardingBandwidthBPS, NotificationChain msgs) {
-		AlternativeVariable oldForwardingBandwidthBPS = forwardingBandwidthBPS;
-		forwardingBandwidthBPS = newForwardingBandwidthBPS;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS, oldForwardingBandwidthBPS, newForwardingBandwidthBPS);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setForwardingBandwidthBPS(AlternativeVariable newForwardingBandwidthBPS) {
-		if (newForwardingBandwidthBPS != forwardingBandwidthBPS) {
-			NotificationChain msgs = null;
-			if (forwardingBandwidthBPS != null)
-				msgs = ((InternalEObject)forwardingBandwidthBPS).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS, null, msgs);
-			if (newForwardingBandwidthBPS != null)
-				msgs = ((InternalEObject)newForwardingBandwidthBPS).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS, null, msgs);
-			msgs = basicSetForwardingBandwidthBPS(newForwardingBandwidthBPS, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS, newForwardingBandwidthBPS, newForwardingBandwidthBPS));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY:
-				return basicSetForwardingLatency(null, msgs);
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS:
-				return basicSetSwitchingCapacityPPS(null, msgs);
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS:
-				return basicSetForwardingBandwidthBPS(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__ENTITY_TYPE:
-				if (resolve) return getEntityType();
-				return basicGetEntityType();
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__NAME:
-				return getName();
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY:
-				return getForwardingLatency();
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS:
-				return getSwitchingCapacityPPS();
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS:
-				return getForwardingBandwidthBPS();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__ENTITY_TYPE:
-				setEntityType((IntermediatePerformanceType)newValue);
-				return;
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY:
-				setForwardingLatency((AlternativeVariable)newValue);
-				return;
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS:
-				setSwitchingCapacityPPS((AlternativeVariable)newValue);
-				return;
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS:
-				setForwardingBandwidthBPS((AlternativeVariable)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__ENTITY_TYPE:
-				setEntityType((IntermediatePerformanceType)null);
-				return;
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY:
-				setForwardingLatency((AlternativeVariable)null);
-				return;
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS:
-				setSwitchingCapacityPPS((AlternativeVariable)null);
-				return;
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS:
-				setForwardingBandwidthBPS((AlternativeVariable)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__ENTITY_TYPE:
-				return entityType != null;
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__NAME:
-				return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY:
-				return forwardingLatency != null;
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS:
-				return switchingCapacityPPS != null;
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS:
-				return forwardingBandwidthBPS != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //AdaptableIntermediatePerformanceImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableLinkImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableLinkImpl.java
deleted file mode 100644
index 7762c9d6..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableLinkImpl.java
+++ /dev/null
@@ -1,381 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.EObjectResolvingEList;
-
-import tools.descartes.dni.dnimm3.LinkType;
-
-import tools.descartes.dni.dnimm3ap.AdaptableLink;
-import tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-import tools.descartes.dni.dnimm3ap.LinkAdaptationGroup;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Adaptable Link</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkImpl#getEntityType <em>Entity Type</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkImpl#getLinkPerformance <em>Link Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkImpl#getNetworkInterface <em>Network Interface</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkImpl#getAdaptationGroup <em>Adaptation Group</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AdaptableLinkImpl extends MinimalEObjectImpl.Container implements AdaptableLink {
-	/**
-	 * The cached value of the '{@link #getEntityType() <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntityType()
-	 * @generated
-	 * @ordered
-	 */
-	protected LinkType entityType;
-
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getLinkPerformance() <em>Link Performance</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getLinkPerformance()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableLinkPerformance> linkPerformance;
-
-	/**
-	 * The cached value of the '{@link #getNetworkInterface() <em>Network Interface</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getNetworkInterface()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableNetworkInterface> networkInterface;
-
-	/**
-	 * The cached value of the '{@link #getAdaptationGroup() <em>Adaptation Group</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAdaptationGroup()
-	 * @generated
-	 * @ordered
-	 */
-	protected LinkAdaptationGroup adaptationGroup;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableLinkImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ADAPTABLE_LINK;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LinkType getEntityType() {
-		if (entityType != null && entityType.eIsProxy()) {
-			InternalEObject oldEntityType = (InternalEObject)entityType;
-			entityType = (LinkType)eResolveProxy(oldEntityType);
-			if (entityType != oldEntityType) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIAPPackage.ADAPTABLE_LINK__ENTITY_TYPE, oldEntityType, entityType));
-			}
-		}
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LinkType basicGetEntityType() {
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEntityType(LinkType newEntityType) {
-		LinkType oldEntityType = entityType;
-		entityType = newEntityType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_LINK__ENTITY_TYPE, oldEntityType, entityType));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		LinkType _entityType = this.getEntityType();
-		boolean _tripleNotEquals = (_entityType != null);
-		if (_tripleNotEquals) {
-			return this.getEntityType().getName();
-		}
-		else {
-			return "Unspecified entity type";
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AdaptableLinkPerformance> getLinkPerformance() {
-		if (linkPerformance == null) {
-			linkPerformance = new EObjectResolvingEList<AdaptableLinkPerformance>(AdaptableLinkPerformance.class, this, DNIAPPackage.ADAPTABLE_LINK__LINK_PERFORMANCE);
-		}
-		return linkPerformance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AdaptableNetworkInterface> getNetworkInterface() {
-		if (networkInterface == null) {
-			networkInterface = new EObjectResolvingEList<AdaptableNetworkInterface>(AdaptableNetworkInterface.class, this, DNIAPPackage.ADAPTABLE_LINK__NETWORK_INTERFACE);
-		}
-		return networkInterface;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LinkAdaptationGroup getAdaptationGroup() {
-		if (adaptationGroup != null && adaptationGroup.eIsProxy()) {
-			InternalEObject oldAdaptationGroup = (InternalEObject)adaptationGroup;
-			adaptationGroup = (LinkAdaptationGroup)eResolveProxy(oldAdaptationGroup);
-			if (adaptationGroup != oldAdaptationGroup) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIAPPackage.ADAPTABLE_LINK__ADAPTATION_GROUP, oldAdaptationGroup, adaptationGroup));
-			}
-		}
-		return adaptationGroup;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LinkAdaptationGroup basicGetAdaptationGroup() {
-		return adaptationGroup;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetAdaptationGroup(LinkAdaptationGroup newAdaptationGroup, NotificationChain msgs) {
-		LinkAdaptationGroup oldAdaptationGroup = adaptationGroup;
-		adaptationGroup = newAdaptationGroup;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_LINK__ADAPTATION_GROUP, oldAdaptationGroup, newAdaptationGroup);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setAdaptationGroup(LinkAdaptationGroup newAdaptationGroup) {
-		if (newAdaptationGroup != adaptationGroup) {
-			NotificationChain msgs = null;
-			if (adaptationGroup != null)
-				msgs = ((InternalEObject)adaptationGroup).eInverseRemove(this, DNIAPPackage.LINK_ADAPTATION_GROUP__ITEMS, LinkAdaptationGroup.class, msgs);
-			if (newAdaptationGroup != null)
-				msgs = ((InternalEObject)newAdaptationGroup).eInverseAdd(this, DNIAPPackage.LINK_ADAPTATION_GROUP__ITEMS, LinkAdaptationGroup.class, msgs);
-			msgs = basicSetAdaptationGroup(newAdaptationGroup, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_LINK__ADAPTATION_GROUP, newAdaptationGroup, newAdaptationGroup));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_LINK__ADAPTATION_GROUP:
-				if (adaptationGroup != null)
-					msgs = ((InternalEObject)adaptationGroup).eInverseRemove(this, DNIAPPackage.LINK_ADAPTATION_GROUP__ITEMS, LinkAdaptationGroup.class, msgs);
-				return basicSetAdaptationGroup((LinkAdaptationGroup)otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_LINK__ADAPTATION_GROUP:
-				return basicSetAdaptationGroup(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_LINK__ENTITY_TYPE:
-				if (resolve) return getEntityType();
-				return basicGetEntityType();
-			case DNIAPPackage.ADAPTABLE_LINK__NAME:
-				return getName();
-			case DNIAPPackage.ADAPTABLE_LINK__LINK_PERFORMANCE:
-				return getLinkPerformance();
-			case DNIAPPackage.ADAPTABLE_LINK__NETWORK_INTERFACE:
-				return getNetworkInterface();
-			case DNIAPPackage.ADAPTABLE_LINK__ADAPTATION_GROUP:
-				if (resolve) return getAdaptationGroup();
-				return basicGetAdaptationGroup();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_LINK__ENTITY_TYPE:
-				setEntityType((LinkType)newValue);
-				return;
-			case DNIAPPackage.ADAPTABLE_LINK__LINK_PERFORMANCE:
-				getLinkPerformance().clear();
-				getLinkPerformance().addAll((Collection<? extends AdaptableLinkPerformance>)newValue);
-				return;
-			case DNIAPPackage.ADAPTABLE_LINK__NETWORK_INTERFACE:
-				getNetworkInterface().clear();
-				getNetworkInterface().addAll((Collection<? extends AdaptableNetworkInterface>)newValue);
-				return;
-			case DNIAPPackage.ADAPTABLE_LINK__ADAPTATION_GROUP:
-				setAdaptationGroup((LinkAdaptationGroup)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_LINK__ENTITY_TYPE:
-				setEntityType((LinkType)null);
-				return;
-			case DNIAPPackage.ADAPTABLE_LINK__LINK_PERFORMANCE:
-				getLinkPerformance().clear();
-				return;
-			case DNIAPPackage.ADAPTABLE_LINK__NETWORK_INTERFACE:
-				getNetworkInterface().clear();
-				return;
-			case DNIAPPackage.ADAPTABLE_LINK__ADAPTATION_GROUP:
-				setAdaptationGroup((LinkAdaptationGroup)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_LINK__ENTITY_TYPE:
-				return entityType != null;
-			case DNIAPPackage.ADAPTABLE_LINK__NAME:
-				return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
-			case DNIAPPackage.ADAPTABLE_LINK__LINK_PERFORMANCE:
-				return linkPerformance != null && !linkPerformance.isEmpty();
-			case DNIAPPackage.ADAPTABLE_LINK__NETWORK_INTERFACE:
-				return networkInterface != null && !networkInterface.isEmpty();
-			case DNIAPPackage.ADAPTABLE_LINK__ADAPTATION_GROUP:
-				return adaptationGroup != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //AdaptableLinkImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableLinkPerformanceImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableLinkPerformanceImpl.java
deleted file mode 100644
index 7a87b95d..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableLinkPerformanceImpl.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-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 tools.descartes.dni.dnimm3.LinkPerformanceType;
-
-import tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance;
-import tools.descartes.dni.dnimm3ap.AlternativeVariable;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Adaptable Link Performance</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkPerformanceImpl#getEntityType <em>Entity Type</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkPerformanceImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkPerformanceImpl#getPropagationDelay <em>Propagation Delay</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkPerformanceImpl#getMaximalSupportedBandwidth <em>Maximal Supported Bandwidth</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AdaptableLinkPerformanceImpl extends MinimalEObjectImpl.Container implements AdaptableLinkPerformance {
-	/**
-	 * The cached value of the '{@link #getEntityType() <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntityType()
-	 * @generated
-	 * @ordered
-	 */
-	protected LinkPerformanceType entityType;
-
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getPropagationDelay() <em>Propagation Delay</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPropagationDelay()
-	 * @generated
-	 * @ordered
-	 */
-	protected AlternativeVariable propagationDelay;
-
-	/**
-	 * The cached value of the '{@link #getMaximalSupportedBandwidth() <em>Maximal Supported Bandwidth</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMaximalSupportedBandwidth()
-	 * @generated
-	 * @ordered
-	 */
-	protected AlternativeVariable maximalSupportedBandwidth;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableLinkPerformanceImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ADAPTABLE_LINK_PERFORMANCE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LinkPerformanceType getEntityType() {
-		if (entityType != null && entityType.eIsProxy()) {
-			InternalEObject oldEntityType = (InternalEObject)entityType;
-			entityType = (LinkPerformanceType)eResolveProxy(oldEntityType);
-			if (entityType != oldEntityType) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__ENTITY_TYPE, oldEntityType, entityType));
-			}
-		}
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LinkPerformanceType basicGetEntityType() {
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEntityType(LinkPerformanceType newEntityType) {
-		LinkPerformanceType oldEntityType = entityType;
-		entityType = newEntityType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__ENTITY_TYPE, oldEntityType, entityType));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		LinkPerformanceType _entityType = this.getEntityType();
-		boolean _tripleNotEquals = (_entityType != null);
-		if (_tripleNotEquals) {
-			return this.getEntityType().getName();
-		}
-		else {
-			return "Unspecified entity type";
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AlternativeVariable getPropagationDelay() {
-		return propagationDelay;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetPropagationDelay(AlternativeVariable newPropagationDelay, NotificationChain msgs) {
-		AlternativeVariable oldPropagationDelay = propagationDelay;
-		propagationDelay = newPropagationDelay;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__PROPAGATION_DELAY, oldPropagationDelay, newPropagationDelay);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPropagationDelay(AlternativeVariable newPropagationDelay) {
-		if (newPropagationDelay != propagationDelay) {
-			NotificationChain msgs = null;
-			if (propagationDelay != null)
-				msgs = ((InternalEObject)propagationDelay).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__PROPAGATION_DELAY, null, msgs);
-			if (newPropagationDelay != null)
-				msgs = ((InternalEObject)newPropagationDelay).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__PROPAGATION_DELAY, null, msgs);
-			msgs = basicSetPropagationDelay(newPropagationDelay, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__PROPAGATION_DELAY, newPropagationDelay, newPropagationDelay));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AlternativeVariable getMaximalSupportedBandwidth() {
-		return maximalSupportedBandwidth;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetMaximalSupportedBandwidth(AlternativeVariable newMaximalSupportedBandwidth, NotificationChain msgs) {
-		AlternativeVariable oldMaximalSupportedBandwidth = maximalSupportedBandwidth;
-		maximalSupportedBandwidth = newMaximalSupportedBandwidth;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__MAXIMAL_SUPPORTED_BANDWIDTH, oldMaximalSupportedBandwidth, newMaximalSupportedBandwidth);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setMaximalSupportedBandwidth(AlternativeVariable newMaximalSupportedBandwidth) {
-		if (newMaximalSupportedBandwidth != maximalSupportedBandwidth) {
-			NotificationChain msgs = null;
-			if (maximalSupportedBandwidth != null)
-				msgs = ((InternalEObject)maximalSupportedBandwidth).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__MAXIMAL_SUPPORTED_BANDWIDTH, null, msgs);
-			if (newMaximalSupportedBandwidth != null)
-				msgs = ((InternalEObject)newMaximalSupportedBandwidth).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__MAXIMAL_SUPPORTED_BANDWIDTH, null, msgs);
-			msgs = basicSetMaximalSupportedBandwidth(newMaximalSupportedBandwidth, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__MAXIMAL_SUPPORTED_BANDWIDTH, newMaximalSupportedBandwidth, newMaximalSupportedBandwidth));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__PROPAGATION_DELAY:
-				return basicSetPropagationDelay(null, msgs);
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__MAXIMAL_SUPPORTED_BANDWIDTH:
-				return basicSetMaximalSupportedBandwidth(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__ENTITY_TYPE:
-				if (resolve) return getEntityType();
-				return basicGetEntityType();
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__NAME:
-				return getName();
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__PROPAGATION_DELAY:
-				return getPropagationDelay();
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__MAXIMAL_SUPPORTED_BANDWIDTH:
-				return getMaximalSupportedBandwidth();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__ENTITY_TYPE:
-				setEntityType((LinkPerformanceType)newValue);
-				return;
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__PROPAGATION_DELAY:
-				setPropagationDelay((AlternativeVariable)newValue);
-				return;
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__MAXIMAL_SUPPORTED_BANDWIDTH:
-				setMaximalSupportedBandwidth((AlternativeVariable)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__ENTITY_TYPE:
-				setEntityType((LinkPerformanceType)null);
-				return;
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__PROPAGATION_DELAY:
-				setPropagationDelay((AlternativeVariable)null);
-				return;
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__MAXIMAL_SUPPORTED_BANDWIDTH:
-				setMaximalSupportedBandwidth((AlternativeVariable)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__ENTITY_TYPE:
-				return entityType != null;
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__NAME:
-				return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__PROPAGATION_DELAY:
-				return propagationDelay != null;
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__MAXIMAL_SUPPORTED_BANDWIDTH:
-				return maximalSupportedBandwidth != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //AdaptableLinkPerformanceImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNetworkInterfaceImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNetworkInterfaceImpl.java
deleted file mode 100644
index db78d7e9..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNetworkInterfaceImpl.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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 tools.descartes.dni.dnimm3.NetworkInterfaceType;
-
-import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface;
-import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Adaptable Network Interface</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfaceImpl#getEntityType <em>Entity Type</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfaceImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfaceImpl#getNetworkInterfacePerformance <em>Network Interface Performance</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AdaptableNetworkInterfaceImpl extends MinimalEObjectImpl.Container implements AdaptableNetworkInterface {
-	/**
-	 * The cached value of the '{@link #getEntityType() <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntityType()
-	 * @generated
-	 * @ordered
-	 */
-	protected NetworkInterfaceType entityType;
-
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getNetworkInterfacePerformance() <em>Network Interface Performance</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getNetworkInterfacePerformance()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableNetworkInterfacePerformance> networkInterfacePerformance;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableNetworkInterfaceImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ADAPTABLE_NETWORK_INTERFACE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterfaceType getEntityType() {
-		if (entityType != null && entityType.eIsProxy()) {
-			InternalEObject oldEntityType = (InternalEObject)entityType;
-			entityType = (NetworkInterfaceType)eResolveProxy(oldEntityType);
-			if (entityType != oldEntityType) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__ENTITY_TYPE, oldEntityType, entityType));
-			}
-		}
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterfaceType basicGetEntityType() {
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEntityType(NetworkInterfaceType newEntityType) {
-		NetworkInterfaceType oldEntityType = entityType;
-		entityType = newEntityType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__ENTITY_TYPE, oldEntityType, entityType));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		NetworkInterfaceType _entityType = this.getEntityType();
-		boolean _tripleNotEquals = (_entityType != null);
-		if (_tripleNotEquals) {
-			return this.getEntityType().getName();
-		}
-		else {
-			return "Unspecified entity type";
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AdaptableNetworkInterfacePerformance> getNetworkInterfacePerformance() {
-		if (networkInterfacePerformance == null) {
-			networkInterfacePerformance = new EObjectResolvingEList<AdaptableNetworkInterfacePerformance>(AdaptableNetworkInterfacePerformance.class, this, DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE);
-		}
-		return networkInterfacePerformance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__ENTITY_TYPE:
-				if (resolve) return getEntityType();
-				return basicGetEntityType();
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__NAME:
-				return getName();
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE:
-				return getNetworkInterfacePerformance();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__ENTITY_TYPE:
-				setEntityType((NetworkInterfaceType)newValue);
-				return;
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE:
-				getNetworkInterfacePerformance().clear();
-				getNetworkInterfacePerformance().addAll((Collection<? extends AdaptableNetworkInterfacePerformance>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__ENTITY_TYPE:
-				setEntityType((NetworkInterfaceType)null);
-				return;
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE:
-				getNetworkInterfacePerformance().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__ENTITY_TYPE:
-				return entityType != null;
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__NAME:
-				return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE:
-				return networkInterfacePerformance != null && !networkInterfacePerformance.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //AdaptableNetworkInterfaceImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNetworkInterfacePerformanceImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNetworkInterfacePerformanceImpl.java
deleted file mode 100644
index 13efb617..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNetworkInterfacePerformanceImpl.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-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 tools.descartes.dni.dnimm3.NetworkInterfacePerformanceType;
-
-import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance;
-import tools.descartes.dni.dnimm3ap.AlternativeVariable;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Adaptable Network Interface Performance</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfacePerformanceImpl#getEntityType <em>Entity Type</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfacePerformanceImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfacePerformanceImpl#getPacketProcessingTime <em>Packet Processing Time</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfacePerformanceImpl#getInterfaceThroughput <em>Interface Throughput</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AdaptableNetworkInterfacePerformanceImpl extends MinimalEObjectImpl.Container implements AdaptableNetworkInterfacePerformance {
-	/**
-	 * The cached value of the '{@link #getEntityType() <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntityType()
-	 * @generated
-	 * @ordered
-	 */
-	protected NetworkInterfacePerformanceType entityType;
-
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getPacketProcessingTime() <em>Packet Processing Time</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPacketProcessingTime()
-	 * @generated
-	 * @ordered
-	 */
-	protected AlternativeVariable packetProcessingTime;
-
-	/**
-	 * The cached value of the '{@link #getInterfaceThroughput() <em>Interface Throughput</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getInterfaceThroughput()
-	 * @generated
-	 * @ordered
-	 */
-	protected AlternativeVariable interfaceThroughput;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableNetworkInterfacePerformanceImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterfacePerformanceType getEntityType() {
-		if (entityType != null && entityType.eIsProxy()) {
-			InternalEObject oldEntityType = (InternalEObject)entityType;
-			entityType = (NetworkInterfacePerformanceType)eResolveProxy(oldEntityType);
-			if (entityType != oldEntityType) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__ENTITY_TYPE, oldEntityType, entityType));
-			}
-		}
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterfacePerformanceType basicGetEntityType() {
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEntityType(NetworkInterfacePerformanceType newEntityType) {
-		NetworkInterfacePerformanceType oldEntityType = entityType;
-		entityType = newEntityType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__ENTITY_TYPE, oldEntityType, entityType));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		NetworkInterfacePerformanceType _entityType = this.getEntityType();
-		boolean _tripleNotEquals = (_entityType != null);
-		if (_tripleNotEquals) {
-			return this.getEntityType().getName();
-		}
-		else {
-			return "Unspecified entity type";
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AlternativeVariable getPacketProcessingTime() {
-		return packetProcessingTime;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetPacketProcessingTime(AlternativeVariable newPacketProcessingTime, NotificationChain msgs) {
-		AlternativeVariable oldPacketProcessingTime = packetProcessingTime;
-		packetProcessingTime = newPacketProcessingTime;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__PACKET_PROCESSING_TIME, oldPacketProcessingTime, newPacketProcessingTime);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPacketProcessingTime(AlternativeVariable newPacketProcessingTime) {
-		if (newPacketProcessingTime != packetProcessingTime) {
-			NotificationChain msgs = null;
-			if (packetProcessingTime != null)
-				msgs = ((InternalEObject)packetProcessingTime).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__PACKET_PROCESSING_TIME, null, msgs);
-			if (newPacketProcessingTime != null)
-				msgs = ((InternalEObject)newPacketProcessingTime).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__PACKET_PROCESSING_TIME, null, msgs);
-			msgs = basicSetPacketProcessingTime(newPacketProcessingTime, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__PACKET_PROCESSING_TIME, newPacketProcessingTime, newPacketProcessingTime));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AlternativeVariable getInterfaceThroughput() {
-		return interfaceThroughput;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetInterfaceThroughput(AlternativeVariable newInterfaceThroughput, NotificationChain msgs) {
-		AlternativeVariable oldInterfaceThroughput = interfaceThroughput;
-		interfaceThroughput = newInterfaceThroughput;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__INTERFACE_THROUGHPUT, oldInterfaceThroughput, newInterfaceThroughput);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setInterfaceThroughput(AlternativeVariable newInterfaceThroughput) {
-		if (newInterfaceThroughput != interfaceThroughput) {
-			NotificationChain msgs = null;
-			if (interfaceThroughput != null)
-				msgs = ((InternalEObject)interfaceThroughput).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__INTERFACE_THROUGHPUT, null, msgs);
-			if (newInterfaceThroughput != null)
-				msgs = ((InternalEObject)newInterfaceThroughput).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__INTERFACE_THROUGHPUT, null, msgs);
-			msgs = basicSetInterfaceThroughput(newInterfaceThroughput, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__INTERFACE_THROUGHPUT, newInterfaceThroughput, newInterfaceThroughput));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__PACKET_PROCESSING_TIME:
-				return basicSetPacketProcessingTime(null, msgs);
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__INTERFACE_THROUGHPUT:
-				return basicSetInterfaceThroughput(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__ENTITY_TYPE:
-				if (resolve) return getEntityType();
-				return basicGetEntityType();
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__NAME:
-				return getName();
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__PACKET_PROCESSING_TIME:
-				return getPacketProcessingTime();
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__INTERFACE_THROUGHPUT:
-				return getInterfaceThroughput();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__ENTITY_TYPE:
-				setEntityType((NetworkInterfacePerformanceType)newValue);
-				return;
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__PACKET_PROCESSING_TIME:
-				setPacketProcessingTime((AlternativeVariable)newValue);
-				return;
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__INTERFACE_THROUGHPUT:
-				setInterfaceThroughput((AlternativeVariable)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__ENTITY_TYPE:
-				setEntityType((NetworkInterfacePerformanceType)null);
-				return;
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__PACKET_PROCESSING_TIME:
-				setPacketProcessingTime((AlternativeVariable)null);
-				return;
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__INTERFACE_THROUGHPUT:
-				setInterfaceThroughput((AlternativeVariable)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__ENTITY_TYPE:
-				return entityType != null;
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__NAME:
-				return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__PACKET_PROCESSING_TIME:
-				return packetProcessingTime != null;
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__INTERFACE_THROUGHPUT:
-				return interfaceThroughput != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //AdaptableNetworkInterfacePerformanceImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNodeImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNodeImpl.java
deleted file mode 100644
index e7e0a4bc..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNodeImpl.java
+++ /dev/null
@@ -1,451 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.EObjectResolvingEList;
-
-import tools.descartes.dni.dnimm3.NodeType;
-
-import tools.descartes.dni.dnimm3ap.AdaptableEndPerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface;
-import tools.descartes.dni.dnimm3ap.AdaptableNode;
-import tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-import tools.descartes.dni.dnimm3ap.NodeAdaptationGroup;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Adaptable Node</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl#getEntityType <em>Entity Type</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl#getEndPerformance <em>End Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl#getIntermediatePerformance <em>Intermediate Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl#getSdnNodePerformance <em>Sdn Node Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl#getNetworkInterface <em>Network Interface</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl#getAdaptationGroup <em>Adaptation Group</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AdaptableNodeImpl extends MinimalEObjectImpl.Container implements AdaptableNode {
-	/**
-	 * The cached value of the '{@link #getEntityType() <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntityType()
-	 * @generated
-	 * @ordered
-	 */
-	protected NodeType entityType;
-
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getEndPerformance() <em>End Performance</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEndPerformance()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableEndPerformance> endPerformance;
-
-	/**
-	 * The cached value of the '{@link #getIntermediatePerformance() <em>Intermediate Performance</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getIntermediatePerformance()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableIntermediatePerformance> intermediatePerformance;
-
-	/**
-	 * The cached value of the '{@link #getSdnNodePerformance() <em>Sdn Node Performance</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSdnNodePerformance()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableSdnNodePerformance> sdnNodePerformance;
-
-	/**
-	 * The cached value of the '{@link #getNetworkInterface() <em>Network Interface</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getNetworkInterface()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableNetworkInterface> networkInterface;
-
-	/**
-	 * The cached value of the '{@link #getAdaptationGroup() <em>Adaptation Group</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAdaptationGroup()
-	 * @generated
-	 * @ordered
-	 */
-	protected NodeAdaptationGroup adaptationGroup;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableNodeImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ADAPTABLE_NODE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NodeType getEntityType() {
-		if (entityType != null && entityType.eIsProxy()) {
-			InternalEObject oldEntityType = (InternalEObject)entityType;
-			entityType = (NodeType)eResolveProxy(oldEntityType);
-			if (entityType != oldEntityType) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIAPPackage.ADAPTABLE_NODE__ENTITY_TYPE, oldEntityType, entityType));
-			}
-		}
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NodeType basicGetEntityType() {
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEntityType(NodeType newEntityType) {
-		NodeType oldEntityType = entityType;
-		entityType = newEntityType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_NODE__ENTITY_TYPE, oldEntityType, entityType));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		NodeType _entityType = this.getEntityType();
-		boolean _tripleNotEquals = (_entityType != null);
-		if (_tripleNotEquals) {
-			return this.getEntityType().getName();
-		}
-		else {
-			return "Unspecified entity type";
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AdaptableEndPerformance> getEndPerformance() {
-		if (endPerformance == null) {
-			endPerformance = new EObjectResolvingEList<AdaptableEndPerformance>(AdaptableEndPerformance.class, this, DNIAPPackage.ADAPTABLE_NODE__END_PERFORMANCE);
-		}
-		return endPerformance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AdaptableIntermediatePerformance> getIntermediatePerformance() {
-		if (intermediatePerformance == null) {
-			intermediatePerformance = new EObjectResolvingEList<AdaptableIntermediatePerformance>(AdaptableIntermediatePerformance.class, this, DNIAPPackage.ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE);
-		}
-		return intermediatePerformance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AdaptableSdnNodePerformance> getSdnNodePerformance() {
-		if (sdnNodePerformance == null) {
-			sdnNodePerformance = new EObjectResolvingEList<AdaptableSdnNodePerformance>(AdaptableSdnNodePerformance.class, this, DNIAPPackage.ADAPTABLE_NODE__SDN_NODE_PERFORMANCE);
-		}
-		return sdnNodePerformance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AdaptableNetworkInterface> getNetworkInterface() {
-		if (networkInterface == null) {
-			networkInterface = new EObjectResolvingEList<AdaptableNetworkInterface>(AdaptableNetworkInterface.class, this, DNIAPPackage.ADAPTABLE_NODE__NETWORK_INTERFACE);
-		}
-		return networkInterface;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NodeAdaptationGroup getAdaptationGroup() {
-		if (adaptationGroup != null && adaptationGroup.eIsProxy()) {
-			InternalEObject oldAdaptationGroup = (InternalEObject)adaptationGroup;
-			adaptationGroup = (NodeAdaptationGroup)eResolveProxy(oldAdaptationGroup);
-			if (adaptationGroup != oldAdaptationGroup) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIAPPackage.ADAPTABLE_NODE__ADAPTATION_GROUP, oldAdaptationGroup, adaptationGroup));
-			}
-		}
-		return adaptationGroup;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NodeAdaptationGroup basicGetAdaptationGroup() {
-		return adaptationGroup;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetAdaptationGroup(NodeAdaptationGroup newAdaptationGroup, NotificationChain msgs) {
-		NodeAdaptationGroup oldAdaptationGroup = adaptationGroup;
-		adaptationGroup = newAdaptationGroup;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_NODE__ADAPTATION_GROUP, oldAdaptationGroup, newAdaptationGroup);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setAdaptationGroup(NodeAdaptationGroup newAdaptationGroup) {
-		if (newAdaptationGroup != adaptationGroup) {
-			NotificationChain msgs = null;
-			if (adaptationGroup != null)
-				msgs = ((InternalEObject)adaptationGroup).eInverseRemove(this, DNIAPPackage.NODE_ADAPTATION_GROUP__ITEMS, NodeAdaptationGroup.class, msgs);
-			if (newAdaptationGroup != null)
-				msgs = ((InternalEObject)newAdaptationGroup).eInverseAdd(this, DNIAPPackage.NODE_ADAPTATION_GROUP__ITEMS, NodeAdaptationGroup.class, msgs);
-			msgs = basicSetAdaptationGroup(newAdaptationGroup, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_NODE__ADAPTATION_GROUP, newAdaptationGroup, newAdaptationGroup));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NODE__ADAPTATION_GROUP:
-				if (adaptationGroup != null)
-					msgs = ((InternalEObject)adaptationGroup).eInverseRemove(this, DNIAPPackage.NODE_ADAPTATION_GROUP__ITEMS, NodeAdaptationGroup.class, msgs);
-				return basicSetAdaptationGroup((NodeAdaptationGroup)otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NODE__ADAPTATION_GROUP:
-				return basicSetAdaptationGroup(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NODE__ENTITY_TYPE:
-				if (resolve) return getEntityType();
-				return basicGetEntityType();
-			case DNIAPPackage.ADAPTABLE_NODE__NAME:
-				return getName();
-			case DNIAPPackage.ADAPTABLE_NODE__END_PERFORMANCE:
-				return getEndPerformance();
-			case DNIAPPackage.ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE:
-				return getIntermediatePerformance();
-			case DNIAPPackage.ADAPTABLE_NODE__SDN_NODE_PERFORMANCE:
-				return getSdnNodePerformance();
-			case DNIAPPackage.ADAPTABLE_NODE__NETWORK_INTERFACE:
-				return getNetworkInterface();
-			case DNIAPPackage.ADAPTABLE_NODE__ADAPTATION_GROUP:
-				if (resolve) return getAdaptationGroup();
-				return basicGetAdaptationGroup();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NODE__ENTITY_TYPE:
-				setEntityType((NodeType)newValue);
-				return;
-			case DNIAPPackage.ADAPTABLE_NODE__END_PERFORMANCE:
-				getEndPerformance().clear();
-				getEndPerformance().addAll((Collection<? extends AdaptableEndPerformance>)newValue);
-				return;
-			case DNIAPPackage.ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE:
-				getIntermediatePerformance().clear();
-				getIntermediatePerformance().addAll((Collection<? extends AdaptableIntermediatePerformance>)newValue);
-				return;
-			case DNIAPPackage.ADAPTABLE_NODE__SDN_NODE_PERFORMANCE:
-				getSdnNodePerformance().clear();
-				getSdnNodePerformance().addAll((Collection<? extends AdaptableSdnNodePerformance>)newValue);
-				return;
-			case DNIAPPackage.ADAPTABLE_NODE__NETWORK_INTERFACE:
-				getNetworkInterface().clear();
-				getNetworkInterface().addAll((Collection<? extends AdaptableNetworkInterface>)newValue);
-				return;
-			case DNIAPPackage.ADAPTABLE_NODE__ADAPTATION_GROUP:
-				setAdaptationGroup((NodeAdaptationGroup)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NODE__ENTITY_TYPE:
-				setEntityType((NodeType)null);
-				return;
-			case DNIAPPackage.ADAPTABLE_NODE__END_PERFORMANCE:
-				getEndPerformance().clear();
-				return;
-			case DNIAPPackage.ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE:
-				getIntermediatePerformance().clear();
-				return;
-			case DNIAPPackage.ADAPTABLE_NODE__SDN_NODE_PERFORMANCE:
-				getSdnNodePerformance().clear();
-				return;
-			case DNIAPPackage.ADAPTABLE_NODE__NETWORK_INTERFACE:
-				getNetworkInterface().clear();
-				return;
-			case DNIAPPackage.ADAPTABLE_NODE__ADAPTATION_GROUP:
-				setAdaptationGroup((NodeAdaptationGroup)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NODE__ENTITY_TYPE:
-				return entityType != null;
-			case DNIAPPackage.ADAPTABLE_NODE__NAME:
-				return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
-			case DNIAPPackage.ADAPTABLE_NODE__END_PERFORMANCE:
-				return endPerformance != null && !endPerformance.isEmpty();
-			case DNIAPPackage.ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE:
-				return intermediatePerformance != null && !intermediatePerformance.isEmpty();
-			case DNIAPPackage.ADAPTABLE_NODE__SDN_NODE_PERFORMANCE:
-				return sdnNodePerformance != null && !sdnNodePerformance.isEmpty();
-			case DNIAPPackage.ADAPTABLE_NODE__NETWORK_INTERFACE:
-				return networkInterface != null && !networkInterface.isEmpty();
-			case DNIAPPackage.ADAPTABLE_NODE__ADAPTATION_GROUP:
-				return adaptationGroup != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //AdaptableNodeImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableSdnNodePerformanceImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableSdnNodePerformanceImpl.java
deleted file mode 100644
index 210835a7..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableSdnNodePerformanceImpl.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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 tools.descartes.dni.dnimm3.SdnNodePerformanceType;
-
-import tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Adaptable Sdn Node Performance</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableSdnNodePerformanceImpl#getEntityType <em>Entity Type</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableSdnNodePerformanceImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableSdnNodePerformanceImpl#getSoftwareSwitchingPerformance <em>Software Switching Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableSdnNodePerformanceImpl#getHardwareSwitchingPerformance <em>Hardware Switching Performance</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AdaptableSdnNodePerformanceImpl extends MinimalEObjectImpl.Container implements AdaptableSdnNodePerformance {
-	/**
-	 * The cached value of the '{@link #getEntityType() <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntityType()
-	 * @generated
-	 * @ordered
-	 */
-	protected SdnNodePerformanceType entityType;
-
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getSoftwareSwitchingPerformance() <em>Software Switching Performance</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSoftwareSwitchingPerformance()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableIntermediatePerformance> softwareSwitchingPerformance;
-
-	/**
-	 * The cached value of the '{@link #getHardwareSwitchingPerformance() <em>Hardware Switching Performance</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getHardwareSwitchingPerformance()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableIntermediatePerformance> hardwareSwitchingPerformance;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableSdnNodePerformanceImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ADAPTABLE_SDN_NODE_PERFORMANCE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SdnNodePerformanceType getEntityType() {
-		if (entityType != null && entityType.eIsProxy()) {
-			InternalEObject oldEntityType = (InternalEObject)entityType;
-			entityType = (SdnNodePerformanceType)eResolveProxy(oldEntityType);
-			if (entityType != oldEntityType) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__ENTITY_TYPE, oldEntityType, entityType));
-			}
-		}
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SdnNodePerformanceType basicGetEntityType() {
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEntityType(SdnNodePerformanceType newEntityType) {
-		SdnNodePerformanceType oldEntityType = entityType;
-		entityType = newEntityType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__ENTITY_TYPE, oldEntityType, entityType));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		SdnNodePerformanceType _entityType = this.getEntityType();
-		boolean _tripleNotEquals = (_entityType != null);
-		if (_tripleNotEquals) {
-			return this.getEntityType().getName();
-		}
-		else {
-			return "Unspecified entity type";
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AdaptableIntermediatePerformance> getSoftwareSwitchingPerformance() {
-		if (softwareSwitchingPerformance == null) {
-			softwareSwitchingPerformance = new EObjectResolvingEList<AdaptableIntermediatePerformance>(AdaptableIntermediatePerformance.class, this, DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE);
-		}
-		return softwareSwitchingPerformance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AdaptableIntermediatePerformance> getHardwareSwitchingPerformance() {
-		if (hardwareSwitchingPerformance == null) {
-			hardwareSwitchingPerformance = new EObjectResolvingEList<AdaptableIntermediatePerformance>(AdaptableIntermediatePerformance.class, this, DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE);
-		}
-		return hardwareSwitchingPerformance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__ENTITY_TYPE:
-				if (resolve) return getEntityType();
-				return basicGetEntityType();
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__NAME:
-				return getName();
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE:
-				return getSoftwareSwitchingPerformance();
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE:
-				return getHardwareSwitchingPerformance();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__ENTITY_TYPE:
-				setEntityType((SdnNodePerformanceType)newValue);
-				return;
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE:
-				getSoftwareSwitchingPerformance().clear();
-				getSoftwareSwitchingPerformance().addAll((Collection<? extends AdaptableIntermediatePerformance>)newValue);
-				return;
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE:
-				getHardwareSwitchingPerformance().clear();
-				getHardwareSwitchingPerformance().addAll((Collection<? extends AdaptableIntermediatePerformance>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__ENTITY_TYPE:
-				setEntityType((SdnNodePerformanceType)null);
-				return;
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE:
-				getSoftwareSwitchingPerformance().clear();
-				return;
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE:
-				getHardwareSwitchingPerformance().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__ENTITY_TYPE:
-				return entityType != null;
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__NAME:
-				return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE:
-				return softwareSwitchingPerformance != null && !softwareSwitchingPerformance.isEmpty();
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE:
-				return hardwareSwitchingPerformance != null && !hardwareSwitchingPerformance.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //AdaptableSdnNodePerformanceImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationGroupsImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationGroupsImpl.java
deleted file mode 100644
index 0ea709ca..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationGroupsImpl.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3ap.AdaptationGroups;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-import tools.descartes.dni.dnimm3ap.LinkAdaptationGroup;
-import tools.descartes.dni.dnimm3ap.NodeAdaptationGroup;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Adaptation Groups</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationGroupsImpl#getNodes <em>Nodes</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationGroupsImpl#getLinks <em>Links</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AdaptationGroupsImpl extends MinimalEObjectImpl.Container implements AdaptationGroups {
-	/**
-	 * The cached value of the '{@link #getNodes() <em>Nodes</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getNodes()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<NodeAdaptationGroup> nodes;
-
-	/**
-	 * The cached value of the '{@link #getLinks() <em>Links</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getLinks()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<LinkAdaptationGroup> links;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptationGroupsImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ADAPTATION_GROUPS;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<NodeAdaptationGroup> getNodes() {
-		if (nodes == null) {
-			nodes = new EObjectContainmentEList<NodeAdaptationGroup>(NodeAdaptationGroup.class, this, DNIAPPackage.ADAPTATION_GROUPS__NODES);
-		}
-		return nodes;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<LinkAdaptationGroup> getLinks() {
-		if (links == null) {
-			links = new EObjectContainmentEList<LinkAdaptationGroup>(LinkAdaptationGroup.class, this, DNIAPPackage.ADAPTATION_GROUPS__LINKS);
-		}
-		return links;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_GROUPS__NODES:
-				return ((InternalEList<?>)getNodes()).basicRemove(otherEnd, msgs);
-			case DNIAPPackage.ADAPTATION_GROUPS__LINKS:
-				return ((InternalEList<?>)getLinks()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_GROUPS__NODES:
-				return getNodes();
-			case DNIAPPackage.ADAPTATION_GROUPS__LINKS:
-				return getLinks();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_GROUPS__NODES:
-				getNodes().clear();
-				getNodes().addAll((Collection<? extends NodeAdaptationGroup>)newValue);
-				return;
-			case DNIAPPackage.ADAPTATION_GROUPS__LINKS:
-				getLinks().clear();
-				getLinks().addAll((Collection<? extends LinkAdaptationGroup>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_GROUPS__NODES:
-				getNodes().clear();
-				return;
-			case DNIAPPackage.ADAPTATION_GROUPS__LINKS:
-				getLinks().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_GROUPS__NODES:
-				return nodes != null && !nodes.isEmpty();
-			case DNIAPPackage.ADAPTATION_GROUPS__LINKS:
-				return links != null && !links.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //AdaptationGroupsImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationPointsImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationPointsImpl.java
deleted file mode 100644
index 85d3249e..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationPointsImpl.java
+++ /dev/null
@@ -1,302 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-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 tools.descartes.dni.dnimm3.NetworkInfrastructure;
-import tools.descartes.dni.dnimm3ap.AdaptationGroups;
-import tools.descartes.dni.dnimm3ap.AdaptationPoints;
-import tools.descartes.dni.dnimm3ap.AdaptationRepositories;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Adaptation Points</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationPointsImpl#getRepositories <em>Repositories</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationPointsImpl#getGroups <em>Groups</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationPointsImpl#getNetworkInfrastructure <em>Network Infrastructure</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AdaptationPointsImpl extends MinimalEObjectImpl.Container implements AdaptationPoints {
-	/**
-	 * The cached value of the '{@link #getRepositories() <em>Repositories</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getRepositories()
-	 * @generated
-	 * @ordered
-	 */
-	protected AdaptationRepositories repositories;
-
-	/**
-	 * The cached value of the '{@link #getGroups() <em>Groups</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGroups()
-	 * @generated
-	 * @ordered
-	 */
-	protected AdaptationGroups groups;
-
-	/**
-	 * The cached value of the '{@link #getNetworkInfrastructure() <em>Network Infrastructure</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getNetworkInfrastructure()
-	 * @generated
-	 * @ordered
-	 */
-	protected NetworkInfrastructure networkInfrastructure;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptationPointsImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ADAPTATION_POINTS;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptationRepositories getRepositories() {
-		return repositories;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetRepositories(AdaptationRepositories newRepositories, NotificationChain msgs) {
-		AdaptationRepositories oldRepositories = repositories;
-		repositories = newRepositories;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTATION_POINTS__REPOSITORIES, oldRepositories, newRepositories);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setRepositories(AdaptationRepositories newRepositories) {
-		if (newRepositories != repositories) {
-			NotificationChain msgs = null;
-			if (repositories != null)
-				msgs = ((InternalEObject)repositories).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTATION_POINTS__REPOSITORIES, null, msgs);
-			if (newRepositories != null)
-				msgs = ((InternalEObject)newRepositories).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTATION_POINTS__REPOSITORIES, null, msgs);
-			msgs = basicSetRepositories(newRepositories, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTATION_POINTS__REPOSITORIES, newRepositories, newRepositories));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptationGroups getGroups() {
-		return groups;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetGroups(AdaptationGroups newGroups, NotificationChain msgs) {
-		AdaptationGroups oldGroups = groups;
-		groups = newGroups;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTATION_POINTS__GROUPS, oldGroups, newGroups);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setGroups(AdaptationGroups newGroups) {
-		if (newGroups != groups) {
-			NotificationChain msgs = null;
-			if (groups != null)
-				msgs = ((InternalEObject)groups).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTATION_POINTS__GROUPS, null, msgs);
-			if (newGroups != null)
-				msgs = ((InternalEObject)newGroups).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTATION_POINTS__GROUPS, null, msgs);
-			msgs = basicSetGroups(newGroups, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTATION_POINTS__GROUPS, newGroups, newGroups));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInfrastructure getNetworkInfrastructure() {
-		if (networkInfrastructure != null && networkInfrastructure.eIsProxy()) {
-			InternalEObject oldNetworkInfrastructure = (InternalEObject)networkInfrastructure;
-			networkInfrastructure = (NetworkInfrastructure)eResolveProxy(oldNetworkInfrastructure);
-			if (networkInfrastructure != oldNetworkInfrastructure) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIAPPackage.ADAPTATION_POINTS__NETWORK_INFRASTRUCTURE, oldNetworkInfrastructure, networkInfrastructure));
-			}
-		}
-		return networkInfrastructure;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInfrastructure basicGetNetworkInfrastructure() {
-		return networkInfrastructure;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setNetworkInfrastructure(NetworkInfrastructure newNetworkInfrastructure) {
-		NetworkInfrastructure oldNetworkInfrastructure = networkInfrastructure;
-		networkInfrastructure = newNetworkInfrastructure;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTATION_POINTS__NETWORK_INFRASTRUCTURE, oldNetworkInfrastructure, networkInfrastructure));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_POINTS__REPOSITORIES:
-				return basicSetRepositories(null, msgs);
-			case DNIAPPackage.ADAPTATION_POINTS__GROUPS:
-				return basicSetGroups(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_POINTS__REPOSITORIES:
-				return getRepositories();
-			case DNIAPPackage.ADAPTATION_POINTS__GROUPS:
-				return getGroups();
-			case DNIAPPackage.ADAPTATION_POINTS__NETWORK_INFRASTRUCTURE:
-				if (resolve) return getNetworkInfrastructure();
-				return basicGetNetworkInfrastructure();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_POINTS__REPOSITORIES:
-				setRepositories((AdaptationRepositories)newValue);
-				return;
-			case DNIAPPackage.ADAPTATION_POINTS__GROUPS:
-				setGroups((AdaptationGroups)newValue);
-				return;
-			case DNIAPPackage.ADAPTATION_POINTS__NETWORK_INFRASTRUCTURE:
-				setNetworkInfrastructure((NetworkInfrastructure)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_POINTS__REPOSITORIES:
-				setRepositories((AdaptationRepositories)null);
-				return;
-			case DNIAPPackage.ADAPTATION_POINTS__GROUPS:
-				setGroups((AdaptationGroups)null);
-				return;
-			case DNIAPPackage.ADAPTATION_POINTS__NETWORK_INFRASTRUCTURE:
-				setNetworkInfrastructure((NetworkInfrastructure)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_POINTS__REPOSITORIES:
-				return repositories != null;
-			case DNIAPPackage.ADAPTATION_POINTS__GROUPS:
-				return groups != null;
-			case DNIAPPackage.ADAPTATION_POINTS__NETWORK_INFRASTRUCTURE:
-				return networkInfrastructure != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //AdaptationPointsImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationRepositoriesImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationRepositoriesImpl.java
deleted file mode 100644
index b40748cb..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationRepositoriesImpl.java
+++ /dev/null
@@ -1,412 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3ap.AdaptableEndPerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableLink;
-import tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface;
-import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableNode;
-import tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance;
-import tools.descartes.dni.dnimm3ap.AdaptationRepositories;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Adaptation Repositories</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getNodes <em>Nodes</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getEndPerformances <em>End Performances</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getIntermediatePerformances <em>Intermediate Performances</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getSdnNodePerformances <em>Sdn Node Performances</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getNetworkInterfaces <em>Network Interfaces</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getNetworkInterfacePerformances <em>Network Interface Performances</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getLinks <em>Links</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getLinkPerformances <em>Link Performances</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AdaptationRepositoriesImpl extends MinimalEObjectImpl.Container implements AdaptationRepositories {
-	/**
-	 * The cached value of the '{@link #getNodes() <em>Nodes</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getNodes()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableNode> nodes;
-
-	/**
-	 * The cached value of the '{@link #getEndPerformances() <em>End Performances</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEndPerformances()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableEndPerformance> endPerformances;
-
-	/**
-	 * The cached value of the '{@link #getIntermediatePerformances() <em>Intermediate Performances</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getIntermediatePerformances()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableIntermediatePerformance> intermediatePerformances;
-
-	/**
-	 * The cached value of the '{@link #getSdnNodePerformances() <em>Sdn Node Performances</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSdnNodePerformances()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableSdnNodePerformance> sdnNodePerformances;
-
-	/**
-	 * The cached value of the '{@link #getNetworkInterfaces() <em>Network Interfaces</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getNetworkInterfaces()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableNetworkInterface> networkInterfaces;
-
-	/**
-	 * The cached value of the '{@link #getNetworkInterfacePerformances() <em>Network Interface Performances</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getNetworkInterfacePerformances()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableNetworkInterfacePerformance> networkInterfacePerformances;
-
-	/**
-	 * The cached value of the '{@link #getLinks() <em>Links</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getLinks()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableLink> links;
-
-	/**
-	 * The cached value of the '{@link #getLinkPerformances() <em>Link Performances</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getLinkPerformances()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableLinkPerformance> linkPerformances;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptationRepositoriesImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ADAPTATION_REPOSITORIES;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AdaptableNode> getNodes() {
-		if (nodes == null) {
-			nodes = new EObjectContainmentEList<AdaptableNode>(AdaptableNode.class, this, DNIAPPackage.ADAPTATION_REPOSITORIES__NODES);
-		}
-		return nodes;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AdaptableEndPerformance> getEndPerformances() {
-		if (endPerformances == null) {
-			endPerformances = new EObjectContainmentEList<AdaptableEndPerformance>(AdaptableEndPerformance.class, this, DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCES);
-		}
-		return endPerformances;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AdaptableIntermediatePerformance> getIntermediatePerformances() {
-		if (intermediatePerformances == null) {
-			intermediatePerformances = new EObjectContainmentEList<AdaptableIntermediatePerformance>(AdaptableIntermediatePerformance.class, this, DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES);
-		}
-		return intermediatePerformances;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AdaptableSdnNodePerformance> getSdnNodePerformances() {
-		if (sdnNodePerformances == null) {
-			sdnNodePerformances = new EObjectContainmentEList<AdaptableSdnNodePerformance>(AdaptableSdnNodePerformance.class, this, DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES);
-		}
-		return sdnNodePerformances;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AdaptableNetworkInterface> getNetworkInterfaces() {
-		if (networkInterfaces == null) {
-			networkInterfaces = new EObjectContainmentEList<AdaptableNetworkInterface>(AdaptableNetworkInterface.class, this, DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACES);
-		}
-		return networkInterfaces;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AdaptableNetworkInterfacePerformance> getNetworkInterfacePerformances() {
-		if (networkInterfacePerformances == null) {
-			networkInterfacePerformances = new EObjectContainmentEList<AdaptableNetworkInterfacePerformance>(AdaptableNetworkInterfacePerformance.class, this, DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES);
-		}
-		return networkInterfacePerformances;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AdaptableLink> getLinks() {
-		if (links == null) {
-			links = new EObjectContainmentEList<AdaptableLink>(AdaptableLink.class, this, DNIAPPackage.ADAPTATION_REPOSITORIES__LINKS);
-		}
-		return links;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AdaptableLinkPerformance> getLinkPerformances() {
-		if (linkPerformances == null) {
-			linkPerformances = new EObjectContainmentEList<AdaptableLinkPerformance>(AdaptableLinkPerformance.class, this, DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCES);
-		}
-		return linkPerformances;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NODES:
-				return ((InternalEList<?>)getNodes()).basicRemove(otherEnd, msgs);
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCES:
-				return ((InternalEList<?>)getEndPerformances()).basicRemove(otherEnd, msgs);
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES:
-				return ((InternalEList<?>)getIntermediatePerformances()).basicRemove(otherEnd, msgs);
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES:
-				return ((InternalEList<?>)getSdnNodePerformances()).basicRemove(otherEnd, msgs);
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACES:
-				return ((InternalEList<?>)getNetworkInterfaces()).basicRemove(otherEnd, msgs);
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES:
-				return ((InternalEList<?>)getNetworkInterfacePerformances()).basicRemove(otherEnd, msgs);
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINKS:
-				return ((InternalEList<?>)getLinks()).basicRemove(otherEnd, msgs);
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCES:
-				return ((InternalEList<?>)getLinkPerformances()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NODES:
-				return getNodes();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCES:
-				return getEndPerformances();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES:
-				return getIntermediatePerformances();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES:
-				return getSdnNodePerformances();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACES:
-				return getNetworkInterfaces();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES:
-				return getNetworkInterfacePerformances();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINKS:
-				return getLinks();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCES:
-				return getLinkPerformances();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NODES:
-				getNodes().clear();
-				getNodes().addAll((Collection<? extends AdaptableNode>)newValue);
-				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCES:
-				getEndPerformances().clear();
-				getEndPerformances().addAll((Collection<? extends AdaptableEndPerformance>)newValue);
-				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES:
-				getIntermediatePerformances().clear();
-				getIntermediatePerformances().addAll((Collection<? extends AdaptableIntermediatePerformance>)newValue);
-				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES:
-				getSdnNodePerformances().clear();
-				getSdnNodePerformances().addAll((Collection<? extends AdaptableSdnNodePerformance>)newValue);
-				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACES:
-				getNetworkInterfaces().clear();
-				getNetworkInterfaces().addAll((Collection<? extends AdaptableNetworkInterface>)newValue);
-				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES:
-				getNetworkInterfacePerformances().clear();
-				getNetworkInterfacePerformances().addAll((Collection<? extends AdaptableNetworkInterfacePerformance>)newValue);
-				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINKS:
-				getLinks().clear();
-				getLinks().addAll((Collection<? extends AdaptableLink>)newValue);
-				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCES:
-				getLinkPerformances().clear();
-				getLinkPerformances().addAll((Collection<? extends AdaptableLinkPerformance>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NODES:
-				getNodes().clear();
-				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCES:
-				getEndPerformances().clear();
-				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES:
-				getIntermediatePerformances().clear();
-				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES:
-				getSdnNodePerformances().clear();
-				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACES:
-				getNetworkInterfaces().clear();
-				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES:
-				getNetworkInterfacePerformances().clear();
-				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINKS:
-				getLinks().clear();
-				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCES:
-				getLinkPerformances().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NODES:
-				return nodes != null && !nodes.isEmpty();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCES:
-				return endPerformances != null && !endPerformances.isEmpty();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES:
-				return intermediatePerformances != null && !intermediatePerformances.isEmpty();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES:
-				return sdnNodePerformances != null && !sdnNodePerformances.isEmpty();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACES:
-				return networkInterfaces != null && !networkInterfaces.isEmpty();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES:
-				return networkInterfacePerformances != null && !networkInterfacePerformances.isEmpty();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINKS:
-				return links != null && !links.isEmpty();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCES:
-				return linkPerformances != null && !linkPerformances.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //AdaptationRepositoriesImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AlternativeConstantLongImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AlternativeConstantLongImpl.java
deleted file mode 100644
index 9fa8523c..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AlternativeConstantLongImpl.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import tools.descartes.dni.dnimm3ap.AlternativeConstantLong;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Alternative Constant Long</b></em>'.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public abstract class AlternativeConstantLongImpl extends MinimalEObjectImpl.Container implements AlternativeConstantLong {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AlternativeConstantLongImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ALTERNATIVE_CONSTANT_LONG;
-	}
-
-} //AlternativeConstantLongImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AlternativeConstantLongVariableSetImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AlternativeConstantLongVariableSetImpl.java
deleted file mode 100644
index cc82de23..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AlternativeConstantLongVariableSetImpl.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.ConstantLongVariable;
-
-import tools.descartes.dni.dnimm3ap.AlternativeConstantLongVariableSet;
-import tools.descartes.dni.dnimm3ap.AlternativeParameterSet;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Alternative Constant Long Variable Set</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AlternativeConstantLongVariableSetImpl#getAlternative <em>Alternative</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AlternativeConstantLongVariableSetImpl extends AlternativeConstantLongImpl implements AlternativeConstantLongVariableSet {
-	/**
-	 * The cached value of the '{@link #getAlternative() <em>Alternative</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAlternative()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<ConstantLongVariable> alternative;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AlternativeConstantLongVariableSetImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ALTERNATIVE_CONSTANT_LONG_VARIABLE_SET;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<ConstantLongVariable> getAlternative() {
-		if (alternative == null) {
-			alternative = new EObjectContainmentEList<ConstantLongVariable>(ConstantLongVariable.class, this, DNIAPPackage.ALTERNATIVE_CONSTANT_LONG_VARIABLE_SET__ALTERNATIVE);
-		}
-		return alternative;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.ALTERNATIVE_CONSTANT_LONG_VARIABLE_SET__ALTERNATIVE:
-				return ((InternalEList<?>)getAlternative()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.ALTERNATIVE_CONSTANT_LONG_VARIABLE_SET__ALTERNATIVE:
-				return getAlternative();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.ALTERNATIVE_CONSTANT_LONG_VARIABLE_SET__ALTERNATIVE:
-				getAlternative().clear();
-				getAlternative().addAll((Collection<? extends ConstantLongVariable>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ALTERNATIVE_CONSTANT_LONG_VARIABLE_SET__ALTERNATIVE:
-				getAlternative().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ALTERNATIVE_CONSTANT_LONG_VARIABLE_SET__ALTERNATIVE:
-				return alternative != null && !alternative.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == AlternativeParameterSet.class) {
-			switch (derivedFeatureID) {
-				case DNIAPPackage.ALTERNATIVE_CONSTANT_LONG_VARIABLE_SET__ALTERNATIVE: return DNIAPPackage.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == AlternativeParameterSet.class) {
-			switch (baseFeatureID) {
-				case DNIAPPackage.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE: return DNIAPPackage.ALTERNATIVE_CONSTANT_LONG_VARIABLE_SET__ALTERNATIVE;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-} //AlternativeConstantLongVariableSetImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AlternativeVariableImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AlternativeVariableImpl.java
deleted file mode 100644
index a100ed12..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AlternativeVariableImpl.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import tools.descartes.dni.dnimm3ap.AlternativeVariable;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Alternative Variable</b></em>'.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public abstract class AlternativeVariableImpl extends MinimalEObjectImpl.Container implements AlternativeVariable {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AlternativeVariableImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ALTERNATIVE_VARIABLE;
-	}
-
-} //AlternativeVariableImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AlternativeVariableSetImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AlternativeVariableSetImpl.java
deleted file mode 100644
index 4e9c13fa..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AlternativeVariableSetImpl.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.Variable;
-
-import tools.descartes.dni.dnimm3ap.AlternativeParameterSet;
-import tools.descartes.dni.dnimm3ap.AlternativeVariableSet;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Alternative Variable Set</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AlternativeVariableSetImpl#getAlternative <em>Alternative</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AlternativeVariableSetImpl extends AlternativeVariableImpl implements AlternativeVariableSet {
-	/**
-	 * The cached value of the '{@link #getAlternative() <em>Alternative</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAlternative()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Variable> alternative;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AlternativeVariableSetImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ALTERNATIVE_VARIABLE_SET;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<Variable> getAlternative() {
-		if (alternative == null) {
-			alternative = new EObjectContainmentEList<Variable>(Variable.class, this, DNIAPPackage.ALTERNATIVE_VARIABLE_SET__ALTERNATIVE);
-		}
-		return alternative;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.ALTERNATIVE_VARIABLE_SET__ALTERNATIVE:
-				return ((InternalEList<?>)getAlternative()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.ALTERNATIVE_VARIABLE_SET__ALTERNATIVE:
-				return getAlternative();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.ALTERNATIVE_VARIABLE_SET__ALTERNATIVE:
-				getAlternative().clear();
-				getAlternative().addAll((Collection<? extends Variable>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ALTERNATIVE_VARIABLE_SET__ALTERNATIVE:
-				getAlternative().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ALTERNATIVE_VARIABLE_SET__ALTERNATIVE:
-				return alternative != null && !alternative.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == AlternativeParameterSet.class) {
-			switch (derivedFeatureID) {
-				case DNIAPPackage.ALTERNATIVE_VARIABLE_SET__ALTERNATIVE: return DNIAPPackage.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == AlternativeParameterSet.class) {
-			switch (baseFeatureID) {
-				case DNIAPPackage.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE: return DNIAPPackage.ALTERNATIVE_VARIABLE_SET__ALTERNATIVE;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-} //AlternativeVariableSetImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPFactoryImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPFactoryImpl.java
deleted file mode 100644
index 8bbbd593..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPFactoryImpl.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-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;
-
-import tools.descartes.dni.dnimm3ap.*;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Factory</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class DNIAPFactoryImpl extends EFactoryImpl implements DNIAPFactory {
-	/**
-	 * Creates the default factory implementation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static DNIAPFactory init() {
-		try {
-			DNIAPFactory theDNIAPFactory = (DNIAPFactory)EPackage.Registry.INSTANCE.getEFactory(DNIAPPackage.eNS_URI);
-			if (theDNIAPFactory != null) {
-				return theDNIAPFactory;
-			}
-		}
-		catch (Exception exception) {
-			EcorePlugin.INSTANCE.log(exception);
-		}
-		return new DNIAPFactoryImpl();
-	}
-
-	/**
-	 * Creates an instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DNIAPFactoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EObject create(EClass eClass) {
-		switch (eClass.getClassifierID()) {
-			case DNIAPPackage.ADAPTATION_POINTS: return createAdaptationPoints();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES: return createAdaptationRepositories();
-			case DNIAPPackage.ADAPTABLE_NODE: return createAdaptableNode();
-			case DNIAPPackage.ADAPTABLE_LINK: return createAdaptableLink();
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE: return createAdaptableLinkPerformance();
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE: return createAdaptableEndPerformance();
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE: return createAdaptableIntermediatePerformance();
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE: return createAdaptableSdnNodePerformance();
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE: return createAdaptableNetworkInterface();
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE: return createAdaptableNetworkInterfacePerformance();
-			case DNIAPPackage.ADAPTATION_GROUPS: return createAdaptationGroups();
-			case DNIAPPackage.NODE_ADAPTATION_GROUP: return createNodeAdaptationGroup();
-			case DNIAPPackage.LINK_ADAPTATION_GROUP: return createLinkAdaptationGroup();
-			case DNIAPPackage.ALTERNATIVE_VARIABLE_SET: return createAlternativeVariableSet();
-			case DNIAPPackage.ALTERNATIVE_CONSTANT_LONG_VARIABLE_SET: return createAlternativeConstantLongVariableSet();
-			default:
-				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptationPoints createAdaptationPoints() {
-		AdaptationPointsImpl adaptationPoints = new AdaptationPointsImpl();
-		return adaptationPoints;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptationRepositories createAdaptationRepositories() {
-		AdaptationRepositoriesImpl adaptationRepositories = new AdaptationRepositoriesImpl();
-		return adaptationRepositories;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableNode createAdaptableNode() {
-		AdaptableNodeImpl adaptableNode = new AdaptableNodeImpl();
-		return adaptableNode;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableLink createAdaptableLink() {
-		AdaptableLinkImpl adaptableLink = new AdaptableLinkImpl();
-		return adaptableLink;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableLinkPerformance createAdaptableLinkPerformance() {
-		AdaptableLinkPerformanceImpl adaptableLinkPerformance = new AdaptableLinkPerformanceImpl();
-		return adaptableLinkPerformance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableEndPerformance createAdaptableEndPerformance() {
-		AdaptableEndPerformanceImpl adaptableEndPerformance = new AdaptableEndPerformanceImpl();
-		return adaptableEndPerformance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableIntermediatePerformance createAdaptableIntermediatePerformance() {
-		AdaptableIntermediatePerformanceImpl adaptableIntermediatePerformance = new AdaptableIntermediatePerformanceImpl();
-		return adaptableIntermediatePerformance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableSdnNodePerformance createAdaptableSdnNodePerformance() {
-		AdaptableSdnNodePerformanceImpl adaptableSdnNodePerformance = new AdaptableSdnNodePerformanceImpl();
-		return adaptableSdnNodePerformance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableNetworkInterface createAdaptableNetworkInterface() {
-		AdaptableNetworkInterfaceImpl adaptableNetworkInterface = new AdaptableNetworkInterfaceImpl();
-		return adaptableNetworkInterface;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableNetworkInterfacePerformance createAdaptableNetworkInterfacePerformance() {
-		AdaptableNetworkInterfacePerformanceImpl adaptableNetworkInterfacePerformance = new AdaptableNetworkInterfacePerformanceImpl();
-		return adaptableNetworkInterfacePerformance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptationGroups createAdaptationGroups() {
-		AdaptationGroupsImpl adaptationGroups = new AdaptationGroupsImpl();
-		return adaptationGroups;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NodeAdaptationGroup createNodeAdaptationGroup() {
-		NodeAdaptationGroupImpl nodeAdaptationGroup = new NodeAdaptationGroupImpl();
-		return nodeAdaptationGroup;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LinkAdaptationGroup createLinkAdaptationGroup() {
-		LinkAdaptationGroupImpl linkAdaptationGroup = new LinkAdaptationGroupImpl();
-		return linkAdaptationGroup;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AlternativeVariableSet createAlternativeVariableSet() {
-		AlternativeVariableSetImpl alternativeVariableSet = new AlternativeVariableSetImpl();
-		return alternativeVariableSet;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AlternativeConstantLongVariableSet createAlternativeConstantLongVariableSet() {
-		AlternativeConstantLongVariableSetImpl alternativeConstantLongVariableSet = new AlternativeConstantLongVariableSetImpl();
-		return alternativeConstantLongVariableSet;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DNIAPPackage getDNIAPPackage() {
-		return (DNIAPPackage)getEPackage();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @deprecated
-	 * @generated
-	 */
-	@Deprecated
-	public static DNIAPPackage getPackage() {
-		return DNIAPPackage.eINSTANCE;
-	}
-
-} //DNIAPFactoryImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPPackageImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPPackageImpl.java
deleted file mode 100644
index 6a026d93..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPPackageImpl.java
+++ /dev/null
@@ -1,1142 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EGenericType;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.ETypeParameter;
-import org.eclipse.emf.ecore.EcorePackage;
-
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-
-import tools.descartes.dni.dnimm3ap.AdaptableEndPerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableLink;
-import tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface;
-import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableNode;
-import tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance;
-import tools.descartes.dni.dnimm3ap.AdaptationGroups;
-import tools.descartes.dni.dnimm3ap.AdaptationPoints;
-import tools.descartes.dni.dnimm3ap.AdaptationRepositories;
-import tools.descartes.dni.dnimm3ap.AlternativeConstantLong;
-import tools.descartes.dni.dnimm3ap.AlternativeConstantLongVariableSet;
-import tools.descartes.dni.dnimm3ap.AlternativeParameterSet;
-import tools.descartes.dni.dnimm3ap.AlternativeVariable;
-import tools.descartes.dni.dnimm3ap.AlternativeVariableSet;
-import tools.descartes.dni.dnimm3ap.DNIAPFactory;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-import tools.descartes.dni.dnimm3ap.IAdaptableEntity;
-import tools.descartes.dni.dnimm3ap.IAdaptableGroupableEntity;
-import tools.descartes.dni.dnimm3ap.IAdaptationGroup;
-import tools.descartes.dni.dnimm3ap.LinkAdaptationGroup;
-import tools.descartes.dni.dnimm3ap.NodeAdaptationGroup;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Package</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass adaptationPointsEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass adaptationRepositoriesEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass iAdaptableEntityEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass iAdaptableGroupableEntityEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass adaptableNodeEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass adaptableLinkEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass adaptableLinkPerformanceEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass adaptableEndPerformanceEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass adaptableIntermediatePerformanceEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass adaptableSdnNodePerformanceEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass adaptableNetworkInterfaceEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass adaptableNetworkInterfacePerformanceEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass adaptationGroupsEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass iAdaptationGroupEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass nodeAdaptationGroupEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass linkAdaptationGroupEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass alternativeParameterSetEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass alternativeVariableEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass alternativeVariableSetEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass alternativeConstantLongEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass alternativeConstantLongVariableSetEClass = 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 tools.descartes.dni.dnimm3ap.DNIAPPackage#eNS_URI
-	 * @see #init()
-	 * @generated
-	 */
-	private DNIAPPackageImpl() {
-		super(eNS_URI, DNIAPFactory.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 DNIAPPackage#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 DNIAPPackage init() {
-		if (isInited) return (DNIAPPackage)EPackage.Registry.INSTANCE.getEPackage(DNIAPPackage.eNS_URI);
-
-		// Obtain or create and register package
-		DNIAPPackageImpl theDNIAPPackage = (DNIAPPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof DNIAPPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new DNIAPPackageImpl());
-
-		isInited = true;
-
-		// Initialize simple dependencies
-		DNIPackage.eINSTANCE.eClass();
-		EcorePackage.eINSTANCE.eClass();
-
-		// Create package meta-data objects
-		theDNIAPPackage.createPackageContents();
-
-		// Initialize created meta-data
-		theDNIAPPackage.initializePackageContents();
-
-		// Mark meta-data to indicate it can't be changed
-		theDNIAPPackage.freeze();
-
-  
-		// Update the registry and return the package
-		EPackage.Registry.INSTANCE.put(DNIAPPackage.eNS_URI, theDNIAPPackage);
-		return theDNIAPPackage;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAdaptationPoints() {
-		return adaptationPointsEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptationPoints_Repositories() {
-		return (EReference)adaptationPointsEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptationPoints_Groups() {
-		return (EReference)adaptationPointsEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptationPoints_NetworkInfrastructure() {
-		return (EReference)adaptationPointsEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAdaptationRepositories() {
-		return adaptationRepositoriesEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptationRepositories_Nodes() {
-		return (EReference)adaptationRepositoriesEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptationRepositories_EndPerformances() {
-		return (EReference)adaptationRepositoriesEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptationRepositories_IntermediatePerformances() {
-		return (EReference)adaptationRepositoriesEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptationRepositories_SdnNodePerformances() {
-		return (EReference)adaptationRepositoriesEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptationRepositories_NetworkInterfaces() {
-		return (EReference)adaptationRepositoriesEClass.getEStructuralFeatures().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptationRepositories_NetworkInterfacePerformances() {
-		return (EReference)adaptationRepositoriesEClass.getEStructuralFeatures().get(5);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptationRepositories_Links() {
-		return (EReference)adaptationRepositoriesEClass.getEStructuralFeatures().get(6);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptationRepositories_LinkPerformances() {
-		return (EReference)adaptationRepositoriesEClass.getEStructuralFeatures().get(7);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getIAdaptableEntity() {
-		return iAdaptableEntityEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getIAdaptableEntity_EntityType() {
-		return (EReference)iAdaptableEntityEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getIAdaptableGroupableEntity() {
-		return iAdaptableGroupableEntityEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAdaptableNode() {
-		return adaptableNodeEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getAdaptableNode_Name() {
-		return (EAttribute)adaptableNodeEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableNode_EndPerformance() {
-		return (EReference)adaptableNodeEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableNode_IntermediatePerformance() {
-		return (EReference)adaptableNodeEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableNode_SdnNodePerformance() {
-		return (EReference)adaptableNodeEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableNode_NetworkInterface() {
-		return (EReference)adaptableNodeEClass.getEStructuralFeatures().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableNode_AdaptationGroup() {
-		return (EReference)adaptableNodeEClass.getEStructuralFeatures().get(5);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAdaptableLink() {
-		return adaptableLinkEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getAdaptableLink_Name() {
-		return (EAttribute)adaptableLinkEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableLink_LinkPerformance() {
-		return (EReference)adaptableLinkEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableLink_NetworkInterface() {
-		return (EReference)adaptableLinkEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableLink_AdaptationGroup() {
-		return (EReference)adaptableLinkEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAdaptableLinkPerformance() {
-		return adaptableLinkPerformanceEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getAdaptableLinkPerformance_Name() {
-		return (EAttribute)adaptableLinkPerformanceEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableLinkPerformance_PropagationDelay() {
-		return (EReference)adaptableLinkPerformanceEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableLinkPerformance_MaximalSupportedBandwidth() {
-		return (EReference)adaptableLinkPerformanceEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAdaptableEndPerformance() {
-		return adaptableEndPerformanceEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getAdaptableEndPerformance_Name() {
-		return (EAttribute)adaptableEndPerformanceEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableEndPerformance_SoftwareLayersDelay() {
-		return (EReference)adaptableEndPerformanceEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAdaptableIntermediatePerformance() {
-		return adaptableIntermediatePerformanceEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getAdaptableIntermediatePerformance_Name() {
-		return (EAttribute)adaptableIntermediatePerformanceEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableIntermediatePerformance_ForwardingLatency() {
-		return (EReference)adaptableIntermediatePerformanceEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableIntermediatePerformance_SwitchingCapacityPPS() {
-		return (EReference)adaptableIntermediatePerformanceEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableIntermediatePerformance_ForwardingBandwidthBPS() {
-		return (EReference)adaptableIntermediatePerformanceEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAdaptableSdnNodePerformance() {
-		return adaptableSdnNodePerformanceEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getAdaptableSdnNodePerformance_Name() {
-		return (EAttribute)adaptableSdnNodePerformanceEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableSdnNodePerformance_SoftwareSwitchingPerformance() {
-		return (EReference)adaptableSdnNodePerformanceEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableSdnNodePerformance_HardwareSwitchingPerformance() {
-		return (EReference)adaptableSdnNodePerformanceEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAdaptableNetworkInterface() {
-		return adaptableNetworkInterfaceEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getAdaptableNetworkInterface_Name() {
-		return (EAttribute)adaptableNetworkInterfaceEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableNetworkInterface_NetworkInterfacePerformance() {
-		return (EReference)adaptableNetworkInterfaceEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAdaptableNetworkInterfacePerformance() {
-		return adaptableNetworkInterfacePerformanceEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getAdaptableNetworkInterfacePerformance_Name() {
-		return (EAttribute)adaptableNetworkInterfacePerformanceEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableNetworkInterfacePerformance_PacketProcessingTime() {
-		return (EReference)adaptableNetworkInterfacePerformanceEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableNetworkInterfacePerformance_InterfaceThroughput() {
-		return (EReference)adaptableNetworkInterfacePerformanceEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAdaptationGroups() {
-		return adaptationGroupsEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptationGroups_Nodes() {
-		return (EReference)adaptationGroupsEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptationGroups_Links() {
-		return (EReference)adaptationGroupsEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getIAdaptationGroup() {
-		return iAdaptationGroupEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getNodeAdaptationGroup() {
-		return nodeAdaptationGroupEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNodeAdaptationGroup_Items() {
-		return (EReference)nodeAdaptationGroupEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getLinkAdaptationGroup() {
-		return linkAdaptationGroupEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getLinkAdaptationGroup_Items() {
-		return (EReference)linkAdaptationGroupEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAlternativeParameterSet() {
-		return alternativeParameterSetEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAlternativeParameterSet_Alternative() {
-		return (EReference)alternativeParameterSetEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAlternativeVariable() {
-		return alternativeVariableEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAlternativeVariableSet() {
-		return alternativeVariableSetEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAlternativeConstantLong() {
-		return alternativeConstantLongEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAlternativeConstantLongVariableSet() {
-		return alternativeConstantLongVariableSetEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DNIAPFactory getDNIAPFactory() {
-		return (DNIAPFactory)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
-		adaptationPointsEClass = createEClass(ADAPTATION_POINTS);
-		createEReference(adaptationPointsEClass, ADAPTATION_POINTS__REPOSITORIES);
-		createEReference(adaptationPointsEClass, ADAPTATION_POINTS__GROUPS);
-		createEReference(adaptationPointsEClass, ADAPTATION_POINTS__NETWORK_INFRASTRUCTURE);
-
-		adaptationRepositoriesEClass = createEClass(ADAPTATION_REPOSITORIES);
-		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__NODES);
-		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__END_PERFORMANCES);
-		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES);
-		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES);
-		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__NETWORK_INTERFACES);
-		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES);
-		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__LINKS);
-		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__LINK_PERFORMANCES);
-
-		iAdaptableEntityEClass = createEClass(IADAPTABLE_ENTITY);
-		createEReference(iAdaptableEntityEClass, IADAPTABLE_ENTITY__ENTITY_TYPE);
-
-		iAdaptableGroupableEntityEClass = createEClass(IADAPTABLE_GROUPABLE_ENTITY);
-
-		adaptableNodeEClass = createEClass(ADAPTABLE_NODE);
-		createEAttribute(adaptableNodeEClass, ADAPTABLE_NODE__NAME);
-		createEReference(adaptableNodeEClass, ADAPTABLE_NODE__END_PERFORMANCE);
-		createEReference(adaptableNodeEClass, ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE);
-		createEReference(adaptableNodeEClass, ADAPTABLE_NODE__SDN_NODE_PERFORMANCE);
-		createEReference(adaptableNodeEClass, ADAPTABLE_NODE__NETWORK_INTERFACE);
-		createEReference(adaptableNodeEClass, ADAPTABLE_NODE__ADAPTATION_GROUP);
-
-		adaptableLinkEClass = createEClass(ADAPTABLE_LINK);
-		createEAttribute(adaptableLinkEClass, ADAPTABLE_LINK__NAME);
-		createEReference(adaptableLinkEClass, ADAPTABLE_LINK__LINK_PERFORMANCE);
-		createEReference(adaptableLinkEClass, ADAPTABLE_LINK__NETWORK_INTERFACE);
-		createEReference(adaptableLinkEClass, ADAPTABLE_LINK__ADAPTATION_GROUP);
-
-		adaptableLinkPerformanceEClass = createEClass(ADAPTABLE_LINK_PERFORMANCE);
-		createEAttribute(adaptableLinkPerformanceEClass, ADAPTABLE_LINK_PERFORMANCE__NAME);
-		createEReference(adaptableLinkPerformanceEClass, ADAPTABLE_LINK_PERFORMANCE__PROPAGATION_DELAY);
-		createEReference(adaptableLinkPerformanceEClass, ADAPTABLE_LINK_PERFORMANCE__MAXIMAL_SUPPORTED_BANDWIDTH);
-
-		adaptableEndPerformanceEClass = createEClass(ADAPTABLE_END_PERFORMANCE);
-		createEAttribute(adaptableEndPerformanceEClass, ADAPTABLE_END_PERFORMANCE__NAME);
-		createEReference(adaptableEndPerformanceEClass, ADAPTABLE_END_PERFORMANCE__SOFTWARE_LAYERS_DELAY);
-
-		adaptableIntermediatePerformanceEClass = createEClass(ADAPTABLE_INTERMEDIATE_PERFORMANCE);
-		createEAttribute(adaptableIntermediatePerformanceEClass, ADAPTABLE_INTERMEDIATE_PERFORMANCE__NAME);
-		createEReference(adaptableIntermediatePerformanceEClass, ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY);
-		createEReference(adaptableIntermediatePerformanceEClass, ADAPTABLE_INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS);
-		createEReference(adaptableIntermediatePerformanceEClass, ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS);
-
-		adaptableSdnNodePerformanceEClass = createEClass(ADAPTABLE_SDN_NODE_PERFORMANCE);
-		createEAttribute(adaptableSdnNodePerformanceEClass, ADAPTABLE_SDN_NODE_PERFORMANCE__NAME);
-		createEReference(adaptableSdnNodePerformanceEClass, ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE);
-		createEReference(adaptableSdnNodePerformanceEClass, ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE);
-
-		adaptableNetworkInterfaceEClass = createEClass(ADAPTABLE_NETWORK_INTERFACE);
-		createEAttribute(adaptableNetworkInterfaceEClass, ADAPTABLE_NETWORK_INTERFACE__NAME);
-		createEReference(adaptableNetworkInterfaceEClass, ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE);
-
-		adaptableNetworkInterfacePerformanceEClass = createEClass(ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE);
-		createEAttribute(adaptableNetworkInterfacePerformanceEClass, ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__NAME);
-		createEReference(adaptableNetworkInterfacePerformanceEClass, ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__PACKET_PROCESSING_TIME);
-		createEReference(adaptableNetworkInterfacePerformanceEClass, ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__INTERFACE_THROUGHPUT);
-
-		adaptationGroupsEClass = createEClass(ADAPTATION_GROUPS);
-		createEReference(adaptationGroupsEClass, ADAPTATION_GROUPS__NODES);
-		createEReference(adaptationGroupsEClass, ADAPTATION_GROUPS__LINKS);
-
-		iAdaptationGroupEClass = createEClass(IADAPTATION_GROUP);
-
-		nodeAdaptationGroupEClass = createEClass(NODE_ADAPTATION_GROUP);
-		createEReference(nodeAdaptationGroupEClass, NODE_ADAPTATION_GROUP__ITEMS);
-
-		linkAdaptationGroupEClass = createEClass(LINK_ADAPTATION_GROUP);
-		createEReference(linkAdaptationGroupEClass, LINK_ADAPTATION_GROUP__ITEMS);
-
-		alternativeParameterSetEClass = createEClass(ALTERNATIVE_PARAMETER_SET);
-		createEReference(alternativeParameterSetEClass, ALTERNATIVE_PARAMETER_SET__ALTERNATIVE);
-
-		alternativeVariableEClass = createEClass(ALTERNATIVE_VARIABLE);
-
-		alternativeVariableSetEClass = createEClass(ALTERNATIVE_VARIABLE_SET);
-
-		alternativeConstantLongEClass = createEClass(ALTERNATIVE_CONSTANT_LONG);
-
-		alternativeConstantLongVariableSetEClass = createEClass(ALTERNATIVE_CONSTANT_LONG_VARIABLE_SET);
-	}
-
-	/**
-	 * <!-- 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
-		DNIPackage theDNIPackage = (DNIPackage)EPackage.Registry.INSTANCE.getEPackage(DNIPackage.eNS_URI);
-		EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
-
-		// Create type parameters
-		ETypeParameter iAdaptableEntityEClass_T = addETypeParameter(iAdaptableEntityEClass, "T");
-		ETypeParameter alternativeParameterSetEClass_P = addETypeParameter(alternativeParameterSetEClass, "P");
-
-		// Set bounds for type parameters
-		EGenericType g1 = createEGenericType(theDNIPackage.getITypedEntity());
-		iAdaptableEntityEClass_T.getEBounds().add(g1);
-
-		// Add supertypes to classes
-		g1 = createEGenericType(this.getIAdaptableEntity());
-		EGenericType g2 = createEGenericType(theDNIPackage.getNodeType());
-		g1.getETypeArguments().add(g2);
-		adaptableNodeEClass.getEGenericSuperTypes().add(g1);
-		g1 = createEGenericType(this.getIAdaptableGroupableEntity());
-		adaptableNodeEClass.getEGenericSuperTypes().add(g1);
-		g1 = createEGenericType(this.getIAdaptableEntity());
-		g2 = createEGenericType(theDNIPackage.getLinkType());
-		g1.getETypeArguments().add(g2);
-		adaptableLinkEClass.getEGenericSuperTypes().add(g1);
-		g1 = createEGenericType(this.getIAdaptableGroupableEntity());
-		adaptableLinkEClass.getEGenericSuperTypes().add(g1);
-		g1 = createEGenericType(this.getIAdaptableEntity());
-		g2 = createEGenericType(theDNIPackage.getLinkPerformanceType());
-		g1.getETypeArguments().add(g2);
-		adaptableLinkPerformanceEClass.getEGenericSuperTypes().add(g1);
-		g1 = createEGenericType(this.getIAdaptableEntity());
-		g2 = createEGenericType(theDNIPackage.getEndPerformanceType());
-		g1.getETypeArguments().add(g2);
-		adaptableEndPerformanceEClass.getEGenericSuperTypes().add(g1);
-		g1 = createEGenericType(this.getIAdaptableEntity());
-		g2 = createEGenericType(theDNIPackage.getIntermediatePerformanceType());
-		g1.getETypeArguments().add(g2);
-		adaptableIntermediatePerformanceEClass.getEGenericSuperTypes().add(g1);
-		g1 = createEGenericType(this.getIAdaptableEntity());
-		g2 = createEGenericType(theDNIPackage.getSdnNodePerformanceType());
-		g1.getETypeArguments().add(g2);
-		adaptableSdnNodePerformanceEClass.getEGenericSuperTypes().add(g1);
-		g1 = createEGenericType(this.getIAdaptableEntity());
-		g2 = createEGenericType(theDNIPackage.getNetworkInterfaceType());
-		g1.getETypeArguments().add(g2);
-		adaptableNetworkInterfaceEClass.getEGenericSuperTypes().add(g1);
-		g1 = createEGenericType(this.getIAdaptableEntity());
-		g2 = createEGenericType(theDNIPackage.getNetworkInterfacePerformanceType());
-		g1.getETypeArguments().add(g2);
-		adaptableNetworkInterfacePerformanceEClass.getEGenericSuperTypes().add(g1);
-		iAdaptationGroupEClass.getESuperTypes().add(theDNIPackage.getNamedElement());
-		iAdaptationGroupEClass.getESuperTypes().add(theDNIPackage.getIdentifier());
-		nodeAdaptationGroupEClass.getESuperTypes().add(this.getIAdaptationGroup());
-		linkAdaptationGroupEClass.getESuperTypes().add(this.getIAdaptationGroup());
-		g1 = createEGenericType(this.getAlternativeVariable());
-		alternativeVariableSetEClass.getEGenericSuperTypes().add(g1);
-		g1 = createEGenericType(this.getAlternativeParameterSet());
-		g2 = createEGenericType(theDNIPackage.getVariable());
-		g1.getETypeArguments().add(g2);
-		alternativeVariableSetEClass.getEGenericSuperTypes().add(g1);
-		g1 = createEGenericType(this.getAlternativeConstantLong());
-		alternativeConstantLongVariableSetEClass.getEGenericSuperTypes().add(g1);
-		g1 = createEGenericType(this.getAlternativeParameterSet());
-		g2 = createEGenericType(theDNIPackage.getConstantLongVariable());
-		g1.getETypeArguments().add(g2);
-		alternativeConstantLongVariableSetEClass.getEGenericSuperTypes().add(g1);
-
-		// Initialize classes, features, and operations; add parameters
-		initEClass(adaptationPointsEClass, AdaptationPoints.class, "AdaptationPoints", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getAdaptationPoints_Repositories(), this.getAdaptationRepositories(), null, "repositories", null, 0, 1, AdaptationPoints.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptationPoints_Groups(), this.getAdaptationGroups(), null, "groups", null, 0, 1, AdaptationPoints.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptationPoints_NetworkInfrastructure(), theDNIPackage.getNetworkInfrastructure(), null, "networkInfrastructure", null, 0, 1, AdaptationPoints.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(adaptationRepositoriesEClass, AdaptationRepositories.class, "AdaptationRepositories", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getAdaptationRepositories_Nodes(), this.getAdaptableNode(), null, "nodes", null, 0, -1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptationRepositories_EndPerformances(), this.getAdaptableEndPerformance(), null, "endPerformances", null, 0, -1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptationRepositories_IntermediatePerformances(), this.getAdaptableIntermediatePerformance(), null, "intermediatePerformances", null, 0, -1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptationRepositories_SdnNodePerformances(), this.getAdaptableSdnNodePerformance(), null, "sdnNodePerformances", null, 0, -1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptationRepositories_NetworkInterfaces(), this.getAdaptableNetworkInterface(), null, "networkInterfaces", null, 0, -1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptationRepositories_NetworkInterfacePerformances(), this.getAdaptableNetworkInterfacePerformance(), null, "networkInterfacePerformances", null, 0, -1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptationRepositories_Links(), this.getAdaptableLink(), null, "links", null, 0, -1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptationRepositories_LinkPerformances(), this.getAdaptableLinkPerformance(), null, "linkPerformances", null, 0, -1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(iAdaptableEntityEClass, IAdaptableEntity.class, "IAdaptableEntity", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		g1 = createEGenericType(iAdaptableEntityEClass_T);
-		initEReference(getIAdaptableEntity_EntityType(), g1, null, "entityType", null, 0, 1, IAdaptableEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(iAdaptableGroupableEntityEClass, IAdaptableGroupableEntity.class, "IAdaptableGroupableEntity", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(adaptableNodeEClass, AdaptableNode.class, "AdaptableNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getAdaptableNode_Name(), theEcorePackage.getEString(), "name", null, 0, 1, AdaptableNode.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptableNode_EndPerformance(), this.getAdaptableEndPerformance(), null, "endPerformance", null, 0, -1, AdaptableNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptableNode_IntermediatePerformance(), this.getAdaptableIntermediatePerformance(), null, "intermediatePerformance", null, 0, -1, AdaptableNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptableNode_SdnNodePerformance(), this.getAdaptableSdnNodePerformance(), null, "sdnNodePerformance", null, 0, -1, AdaptableNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptableNode_NetworkInterface(), this.getAdaptableNetworkInterface(), null, "networkInterface", null, 0, -1, AdaptableNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptableNode_AdaptationGroup(), this.getNodeAdaptationGroup(), this.getNodeAdaptationGroup_Items(), "adaptationGroup", null, 0, 1, AdaptableNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(adaptableLinkEClass, AdaptableLink.class, "AdaptableLink", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getAdaptableLink_Name(), theEcorePackage.getEString(), "name", null, 0, 1, AdaptableLink.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptableLink_LinkPerformance(), this.getAdaptableLinkPerformance(), null, "linkPerformance", null, 0, -1, AdaptableLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptableLink_NetworkInterface(), this.getAdaptableNetworkInterface(), null, "networkInterface", null, 0, -1, AdaptableLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptableLink_AdaptationGroup(), this.getLinkAdaptationGroup(), this.getLinkAdaptationGroup_Items(), "adaptationGroup", null, 0, 1, AdaptableLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(adaptableLinkPerformanceEClass, AdaptableLinkPerformance.class, "AdaptableLinkPerformance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getAdaptableLinkPerformance_Name(), theEcorePackage.getEString(), "name", null, 0, 1, AdaptableLinkPerformance.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptableLinkPerformance_PropagationDelay(), this.getAlternativeVariable(), null, "propagationDelay", null, 0, 1, AdaptableLinkPerformance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptableLinkPerformance_MaximalSupportedBandwidth(), this.getAlternativeVariable(), null, "maximalSupportedBandwidth", null, 0, 1, AdaptableLinkPerformance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(adaptableEndPerformanceEClass, AdaptableEndPerformance.class, "AdaptableEndPerformance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getAdaptableEndPerformance_Name(), theEcorePackage.getEString(), "name", null, 0, 1, AdaptableEndPerformance.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptableEndPerformance_SoftwareLayersDelay(), this.getAlternativeVariable(), null, "softwareLayersDelay", null, 0, 1, AdaptableEndPerformance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(adaptableIntermediatePerformanceEClass, AdaptableIntermediatePerformance.class, "AdaptableIntermediatePerformance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getAdaptableIntermediatePerformance_Name(), theEcorePackage.getEString(), "name", null, 0, 1, AdaptableIntermediatePerformance.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptableIntermediatePerformance_ForwardingLatency(), this.getAlternativeVariable(), null, "forwardingLatency", null, 0, 1, AdaptableIntermediatePerformance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptableIntermediatePerformance_SwitchingCapacityPPS(), this.getAlternativeVariable(), null, "switchingCapacityPPS", null, 0, 1, AdaptableIntermediatePerformance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptableIntermediatePerformance_ForwardingBandwidthBPS(), this.getAlternativeVariable(), null, "forwardingBandwidthBPS", null, 0, 1, AdaptableIntermediatePerformance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(adaptableSdnNodePerformanceEClass, AdaptableSdnNodePerformance.class, "AdaptableSdnNodePerformance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getAdaptableSdnNodePerformance_Name(), theEcorePackage.getEString(), "name", null, 0, 1, AdaptableSdnNodePerformance.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptableSdnNodePerformance_SoftwareSwitchingPerformance(), this.getAdaptableIntermediatePerformance(), null, "softwareSwitchingPerformance", null, 0, -1, AdaptableSdnNodePerformance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptableSdnNodePerformance_HardwareSwitchingPerformance(), this.getAdaptableIntermediatePerformance(), null, "hardwareSwitchingPerformance", null, 0, -1, AdaptableSdnNodePerformance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(adaptableNetworkInterfaceEClass, AdaptableNetworkInterface.class, "AdaptableNetworkInterface", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getAdaptableNetworkInterface_Name(), theEcorePackage.getEString(), "name", null, 0, 1, AdaptableNetworkInterface.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptableNetworkInterface_NetworkInterfacePerformance(), this.getAdaptableNetworkInterfacePerformance(), null, "networkInterfacePerformance", null, 0, -1, AdaptableNetworkInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(adaptableNetworkInterfacePerformanceEClass, AdaptableNetworkInterfacePerformance.class, "AdaptableNetworkInterfacePerformance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getAdaptableNetworkInterfacePerformance_Name(), theEcorePackage.getEString(), "name", null, 0, 1, AdaptableNetworkInterfacePerformance.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptableNetworkInterfacePerformance_PacketProcessingTime(), this.getAlternativeVariable(), null, "packetProcessingTime", null, 0, 1, AdaptableNetworkInterfacePerformance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptableNetworkInterfacePerformance_InterfaceThroughput(), this.getAlternativeVariable(), null, "interfaceThroughput", null, 0, 1, AdaptableNetworkInterfacePerformance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(adaptationGroupsEClass, AdaptationGroups.class, "AdaptationGroups", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getAdaptationGroups_Nodes(), this.getNodeAdaptationGroup(), null, "nodes", null, 0, -1, AdaptationGroups.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptationGroups_Links(), this.getLinkAdaptationGroup(), null, "links", null, 0, -1, AdaptationGroups.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(iAdaptationGroupEClass, IAdaptationGroup.class, "IAdaptationGroup", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(nodeAdaptationGroupEClass, NodeAdaptationGroup.class, "NodeAdaptationGroup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getNodeAdaptationGroup_Items(), this.getAdaptableNode(), this.getAdaptableNode_AdaptationGroup(), "items", null, 0, -1, NodeAdaptationGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(linkAdaptationGroupEClass, LinkAdaptationGroup.class, "LinkAdaptationGroup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getLinkAdaptationGroup_Items(), this.getAdaptableLink(), this.getAdaptableLink_AdaptationGroup(), "items", null, 0, -1, LinkAdaptationGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(alternativeParameterSetEClass, AlternativeParameterSet.class, "AlternativeParameterSet", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		g1 = createEGenericType(alternativeParameterSetEClass_P);
-		initEReference(getAlternativeParameterSet_Alternative(), g1, null, "alternative", null, 0, -1, AlternativeParameterSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(alternativeVariableEClass, AlternativeVariable.class, "AlternativeVariable", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(alternativeVariableSetEClass, AlternativeVariableSet.class, "AlternativeVariableSet", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(alternativeConstantLongEClass, AlternativeConstantLong.class, "AlternativeConstantLong", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(alternativeConstantLongVariableSetEClass, AlternativeConstantLongVariableSet.class, "AlternativeConstantLongVariableSet", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		// Create resource
-		createResource(eNS_URI);
-	}
-
-} //DNIAPPackageImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/LinkAdaptationGroupImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/LinkAdaptationGroupImpl.java
deleted file mode 100644
index 19851e8d..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/LinkAdaptationGroupImpl.java
+++ /dev/null
@@ -1,444 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.EObjectWithInverseResolvingEList;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Identifier;
-import tools.descartes.dni.dnimm3ap.AdaptableLink;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-import tools.descartes.dni.dnimm3ap.LinkAdaptationGroup;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Link Adaptation Group</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.LinkAdaptationGroupImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.LinkAdaptationGroupImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.LinkAdaptationGroupImpl#getUid <em>Uid</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.LinkAdaptationGroupImpl#getUid_generated <em>Uid generated</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.LinkAdaptationGroupImpl#getItems <em>Items</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class LinkAdaptationGroupImpl extends MinimalEObjectImpl.Container implements LinkAdaptationGroup {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The default value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected String uid = UID_EDEFAULT;
-
-	/**
-	 * This is true if the Uid attribute has been set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean uidESet;
-
-	/**
-	 * The default value of the '{@link #getUid_generated() <em>Uid generated</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid_generated()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_GENERATED_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getItems() <em>Items</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getItems()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableLink> items;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected LinkAdaptationGroupImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.LINK_ADAPTATION_GROUP;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.LINK_ADAPTATION_GROUP__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIAPPackage.LINK_ADAPTATION_GROUP__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid() {
-		return uid;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setUid(String newUid) {
-		String oldUid = uid;
-		uid = newUid;
-		boolean oldUidESet = uidESet;
-		uidESet = true;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.LINK_ADAPTATION_GROUP__UID, oldUid, uid, !oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void unsetUid() {
-		String oldUid = uid;
-		boolean oldUidESet = uidESet;
-		uid = UID_EDEFAULT;
-		uidESet = false;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.UNSET, DNIAPPackage.LINK_ADAPTATION_GROUP__UID, oldUid, UID_EDEFAULT, oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isSetUid() {
-		return uidESet;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid_generated() {
-		if (((this.getUid() == null) || this.getUid().isEmpty())) {
-			this.setUid(EcoreUtil.generateUUID().toString());
-		}
-		return this.getUid();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AdaptableLink> getItems() {
-		if (items == null) {
-			items = new EObjectWithInverseResolvingEList<AdaptableLink>(AdaptableLink.class, this, DNIAPPackage.LINK_ADAPTATION_GROUP__ITEMS, DNIAPPackage.ADAPTABLE_LINK__ADAPTATION_GROUP);
-		}
-		return items;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__ITEMS:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getItems()).basicAdd(otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__ITEMS:
-				return ((InternalEList<?>)getItems()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__NAME:
-				return getName();
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__DESCRIPTION:
-				return getDescription();
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__UID:
-				return getUid();
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__UID_GENERATED:
-				return getUid_generated();
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__ITEMS:
-				return getItems();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__NAME:
-				setName((String)newValue);
-				return;
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__UID:
-				setUid((String)newValue);
-				return;
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__ITEMS:
-				getItems().clear();
-				getItems().addAll((Collection<? extends AdaptableLink>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__UID:
-				unsetUid();
-				return;
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__ITEMS:
-				getItems().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__UID:
-				return isSetUid();
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__UID_GENERATED:
-				return UID_GENERATED_EDEFAULT == null ? getUid_generated() != null : !UID_GENERATED_EDEFAULT.equals(getUid_generated());
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__ITEMS:
-				return items != null && !items.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == Identifier.class) {
-			switch (derivedFeatureID) {
-				case DNIAPPackage.LINK_ADAPTATION_GROUP__UID: return DNIPackage.IDENTIFIER__UID;
-				case DNIAPPackage.LINK_ADAPTATION_GROUP__UID_GENERATED: return DNIPackage.IDENTIFIER__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == Identifier.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.IDENTIFIER__UID: return DNIAPPackage.LINK_ADAPTATION_GROUP__UID;
-				case DNIPackage.IDENTIFIER__UID_GENERATED: return DNIAPPackage.LINK_ADAPTATION_GROUP__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(", uid: ");
-		if (uidESet) result.append(uid); else result.append("<unset>");
-		result.append(')');
-		return result.toString();
-	}
-
-} //LinkAdaptationGroupImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/NodeAdaptationGroupImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/NodeAdaptationGroupImpl.java
deleted file mode 100644
index b978a654..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/NodeAdaptationGroupImpl.java
+++ /dev/null
@@ -1,444 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.EObjectWithInverseResolvingEList;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Identifier;
-import tools.descartes.dni.dnimm3ap.AdaptableNode;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-import tools.descartes.dni.dnimm3ap.NodeAdaptationGroup;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Node Adaptation Group</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.NodeAdaptationGroupImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.NodeAdaptationGroupImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.NodeAdaptationGroupImpl#getUid <em>Uid</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.NodeAdaptationGroupImpl#getUid_generated <em>Uid generated</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.NodeAdaptationGroupImpl#getItems <em>Items</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class NodeAdaptationGroupImpl extends MinimalEObjectImpl.Container implements NodeAdaptationGroup {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The default value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected String uid = UID_EDEFAULT;
-
-	/**
-	 * This is true if the Uid attribute has been set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean uidESet;
-
-	/**
-	 * The default value of the '{@link #getUid_generated() <em>Uid generated</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid_generated()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_GENERATED_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getItems() <em>Items</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getItems()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableNode> items;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NodeAdaptationGroupImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.NODE_ADAPTATION_GROUP;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.NODE_ADAPTATION_GROUP__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIAPPackage.NODE_ADAPTATION_GROUP__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid() {
-		return uid;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setUid(String newUid) {
-		String oldUid = uid;
-		uid = newUid;
-		boolean oldUidESet = uidESet;
-		uidESet = true;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.NODE_ADAPTATION_GROUP__UID, oldUid, uid, !oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void unsetUid() {
-		String oldUid = uid;
-		boolean oldUidESet = uidESet;
-		uid = UID_EDEFAULT;
-		uidESet = false;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.UNSET, DNIAPPackage.NODE_ADAPTATION_GROUP__UID, oldUid, UID_EDEFAULT, oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isSetUid() {
-		return uidESet;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid_generated() {
-		if (((this.getUid() == null) || this.getUid().isEmpty())) {
-			this.setUid(EcoreUtil.generateUUID().toString());
-		}
-		return this.getUid();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AdaptableNode> getItems() {
-		if (items == null) {
-			items = new EObjectWithInverseResolvingEList<AdaptableNode>(AdaptableNode.class, this, DNIAPPackage.NODE_ADAPTATION_GROUP__ITEMS, DNIAPPackage.ADAPTABLE_NODE__ADAPTATION_GROUP);
-		}
-		return items;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__ITEMS:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getItems()).basicAdd(otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__ITEMS:
-				return ((InternalEList<?>)getItems()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__NAME:
-				return getName();
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__DESCRIPTION:
-				return getDescription();
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__UID:
-				return getUid();
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__UID_GENERATED:
-				return getUid_generated();
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__ITEMS:
-				return getItems();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__NAME:
-				setName((String)newValue);
-				return;
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__UID:
-				setUid((String)newValue);
-				return;
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__ITEMS:
-				getItems().clear();
-				getItems().addAll((Collection<? extends AdaptableNode>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__UID:
-				unsetUid();
-				return;
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__ITEMS:
-				getItems().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__UID:
-				return isSetUid();
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__UID_GENERATED:
-				return UID_GENERATED_EDEFAULT == null ? getUid_generated() != null : !UID_GENERATED_EDEFAULT.equals(getUid_generated());
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__ITEMS:
-				return items != null && !items.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == Identifier.class) {
-			switch (derivedFeatureID) {
-				case DNIAPPackage.NODE_ADAPTATION_GROUP__UID: return DNIPackage.IDENTIFIER__UID;
-				case DNIAPPackage.NODE_ADAPTATION_GROUP__UID_GENERATED: return DNIPackage.IDENTIFIER__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == Identifier.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.IDENTIFIER__UID: return DNIAPPackage.NODE_ADAPTATION_GROUP__UID;
-				case DNIPackage.IDENTIFIER__UID_GENERATED: return DNIAPPackage.NODE_ADAPTATION_GROUP__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(", uid: ");
-		if (uidESet) result.append(uid); else result.append("<unset>");
-		result.append(')');
-		return result.toString();
-	}
-
-} //NodeAdaptationGroupImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/presentation/DNIAPActionBarContributor.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/presentation/DNIAPActionBarContributor.java
deleted file mode 100644
index 4cd389d4..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/presentation/DNIAPActionBarContributor.java
+++ /dev/null
@@ -1,425 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.presentation;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.emf.common.ui.viewer.IViewerProvider;
-
-import org.eclipse.emf.edit.domain.EditingDomain;
-import org.eclipse.emf.edit.domain.IEditingDomainProvider;
-
-import org.eclipse.emf.edit.ui.action.ControlAction;
-import org.eclipse.emf.edit.ui.action.CreateChildAction;
-import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
-import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
-import org.eclipse.emf.edit.ui.action.LoadResourceAction;
-import org.eclipse.emf.edit.ui.action.ValidateAction;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IContributionManager;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.action.SubContributionItem;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PartInitException;
-
-import tools.descartes.dni.dnimm3ap.provider.Dnimm3apEditPlugin;
-
-/**
- * This is the action bar contributor for the DNIAP model editor.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class DNIAPActionBarContributor
-	extends EditingDomainActionBarContributor
-	implements ISelectionChangedListener {
-	/**
-	 * This keeps track of the active editor.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IEditorPart activeEditorPart;
-
-	/**
-	 * This keeps track of the current selection provider.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ISelectionProvider selectionProvider;
-
-	/**
-	 * This action opens the Properties view.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IAction showPropertiesViewAction =
-		new Action(Dnimm3apEditPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) {
-			@Override
-			public void run() {
-				try {
-					getPage().showView("org.eclipse.ui.views.PropertySheet");
-				}
-				catch (PartInitException exception) {
-					Dnimm3apEditPlugin.INSTANCE.log(exception);
-				}
-			}
-		};
-
-	/**
-	 * This action refreshes the viewer of the current editor if the editor
-	 * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IAction refreshViewerAction =
-		new Action(Dnimm3apEditPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) {
-			@Override
-			public boolean isEnabled() {
-				return activeEditorPart instanceof IViewerProvider;
-			}
-
-			@Override
-			public void run() {
-				if (activeEditorPart instanceof IViewerProvider) {
-					Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
-					if (viewer != null) {
-						viewer.refresh();
-					}
-				}
-			}
-		};
-
-	/**
-	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
-	 * generated for the current selection by the item provider.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection<IAction> createChildActions;
-
-	/**
-	 * This is the menu manager into which menu contribution items should be added for CreateChild actions.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IMenuManager createChildMenuManager;
-
-	/**
-	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
-	 * generated for the current selection by the item provider.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection<IAction> createSiblingActions;
-
-	/**
-	 * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IMenuManager createSiblingMenuManager;
-
-	/**
-	 * This creates an instance of the contributor.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DNIAPActionBarContributor() {
-		super(ADDITIONS_LAST_STYLE);
-		loadResourceAction = new LoadResourceAction();
-		validateAction = new ValidateAction();
-		controlAction = new ControlAction();
-	}
-
-	/**
-	 * This adds Separators for editor additions to the tool bar.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void contributeToToolBar(IToolBarManager toolBarManager) {
-		toolBarManager.add(new Separator("dniap-settings"));
-		toolBarManager.add(new Separator("dniap-additions"));
-	}
-
-	/**
-	 * This adds to the menu bar a menu and some separators for editor additions,
-	 * as well as the sub-menus for object creation items.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void contributeToMenu(IMenuManager menuManager) {
-		super.contributeToMenu(menuManager);
-
-		IMenuManager submenuManager = new MenuManager(Dnimm3apEditPlugin.INSTANCE.getString("_UI_DNIAPEditor_menu"), "tools.descartes.dni.dnimm3apMenuID");
-		menuManager.insertAfter("additions", submenuManager);
-		submenuManager.add(new Separator("settings"));
-		submenuManager.add(new Separator("actions"));
-		submenuManager.add(new Separator("additions"));
-		submenuManager.add(new Separator("additions-end"));
-
-		// Prepare for CreateChild item addition or removal.
-		//
-		createChildMenuManager = new MenuManager(Dnimm3apEditPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
-		submenuManager.insertBefore("additions", createChildMenuManager);
-
-		// Prepare for CreateSibling item addition or removal.
-		//
-		createSiblingMenuManager = new MenuManager(Dnimm3apEditPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
-		submenuManager.insertBefore("additions", createSiblingMenuManager);
-
-		// Force an update because Eclipse hides empty menus now.
-		//
-		submenuManager.addMenuListener
-			(new IMenuListener() {
-				 public void menuAboutToShow(IMenuManager menuManager) {
-					 menuManager.updateAll(true);
-				 }
-			 });
-
-		addGlobalActions(submenuManager);
-	}
-
-	/**
-	 * When the active editor changes, this remembers the change and registers with it as a selection provider.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void setActiveEditor(IEditorPart part) {
-		super.setActiveEditor(part);
-		activeEditorPart = part;
-
-		// Switch to the new selection provider.
-		//
-		if (selectionProvider != null) {
-			selectionProvider.removeSelectionChangedListener(this);
-		}
-		if (part == null) {
-			selectionProvider = null;
-		}
-		else {
-			selectionProvider = part.getSite().getSelectionProvider();
-			selectionProvider.addSelectionChangedListener(this);
-
-			// Fake a selection changed event to update the menus.
-			//
-			if (selectionProvider.getSelection() != null) {
-				selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
-			}
-		}
-	}
-
-	/**
-	 * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
-	 * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
-	 * that can be added to the selected object and updating the menus accordingly.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void selectionChanged(SelectionChangedEvent event) {
-		// Remove any menu items for old selection.
-		//
-		if (createChildMenuManager != null) {
-			depopulateManager(createChildMenuManager, createChildActions);
-		}
-		if (createSiblingMenuManager != null) {
-			depopulateManager(createSiblingMenuManager, createSiblingActions);
-		}
-
-		// Query the new selection for appropriate new child/sibling descriptors
-		//
-		Collection<?> newChildDescriptors = null;
-		Collection<?> newSiblingDescriptors = null;
-
-		ISelection selection = event.getSelection();
-		if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) {
-			Object object = ((IStructuredSelection)selection).getFirstElement();
-
-			EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
-
-			newChildDescriptors = domain.getNewChildDescriptors(object, null);
-			newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
-		}
-
-		// Generate actions for selection; populate and redraw the menus.
-		//
-		createChildActions = generateCreateChildActions(newChildDescriptors, selection);
-		createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
-
-		if (createChildMenuManager != null) {
-			populateManager(createChildMenuManager, createChildActions, null);
-			createChildMenuManager.update(true);
-		}
-		if (createSiblingMenuManager != null) {
-			populateManager(createSiblingMenuManager, createSiblingActions, null);
-			createSiblingMenuManager.update(true);
-		}
-	}
-
-	/**
-	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
-	 * and returns the collection of these actions.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) {
-		Collection<IAction> actions = new ArrayList<IAction>();
-		if (descriptors != null) {
-			for (Object descriptor : descriptors) {
-				actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
-			}
-		}
-		return actions;
-	}
-
-	/**
-	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
-	 * and returns the collection of these actions.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) {
-		Collection<IAction> actions = new ArrayList<IAction>();
-		if (descriptors != null) {
-			for (Object descriptor : descriptors) {
-				actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
-			}
-		}
-		return actions;
-	}
-
-	/**
-	 * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
-	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
-	 * by inserting them before the specified contribution item <code>contributionID</code>.
-	 * If <code>contributionID</code> is <code>null</code>, they are simply added.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID) {
-		if (actions != null) {
-			for (IAction action : actions) {
-				if (contributionID != null) {
-					manager.insertBefore(contributionID, action);
-				}
-				else {
-					manager.add(action);
-				}
-			}
-		}
-	}
-		
-	/**
-	 * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
-	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) {
-		if (actions != null) {
-			IContributionItem[] items = manager.getItems();
-			for (int i = 0; i < items.length; i++) {
-				// Look into SubContributionItems
-				//
-				IContributionItem contributionItem = items[i];
-				while (contributionItem instanceof SubContributionItem) {
-					contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
-				}
-
-				// Delete the ActionContributionItems with matching action.
-				//
-				if (contributionItem instanceof ActionContributionItem) {
-					IAction action = ((ActionContributionItem)contributionItem).getAction();
-					if (actions.contains(action)) {
-						manager.remove(contributionItem);
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * This populates the pop-up menu before it appears.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void menuAboutToShow(IMenuManager menuManager) {
-		super.menuAboutToShow(menuManager);
-		MenuManager submenuManager = null;
-
-		submenuManager = new MenuManager(Dnimm3apEditPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
-		populateManager(submenuManager, createChildActions, null);
-		menuManager.insertBefore("edit", submenuManager);
-
-		submenuManager = new MenuManager(Dnimm3apEditPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
-		populateManager(submenuManager, createSiblingActions, null);
-		menuManager.insertBefore("edit", submenuManager);
-	}
-
-	/**
-	 * This inserts global actions before the "additions-end" separator.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void addGlobalActions(IMenuManager menuManager) {
-		menuManager.insertAfter("additions-end", new Separator("ui-actions"));
-		menuManager.insertAfter("ui-actions", showPropertiesViewAction);
-
-		refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());		
-		menuManager.insertAfter("ui-actions", refreshViewerAction);
-
-		super.addGlobalActions(menuManager);
-	}
-
-	/**
-	 * This ensures that a delete action will clean up all references to deleted objects.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected boolean removeAllReferencesOnDelete() {
-		return true;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/presentation/DNIAPEditor.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/presentation/DNIAPEditor.java
deleted file mode 100644
index 17a26549..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/presentation/DNIAPEditor.java
+++ /dev/null
@@ -1,1825 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.presentation;
-
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.EventObject;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.ResourcesPlugin;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-
-import org.eclipse.jface.util.LocalSelectionTransfer;
-
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.swt.SWT;
-
-import org.eclipse.swt.custom.CTabFolder;
-
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.swt.dnd.Transfer;
-
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-
-import org.eclipse.swt.graphics.Point;
-
-import org.eclipse.swt.layout.FillLayout;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PartInitException;
-
-import org.eclipse.ui.dialogs.SaveAsDialog;
-
-import org.eclipse.ui.ide.IGotoMarker;
-
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.part.MultiPageEditorPart;
-
-import org.eclipse.ui.views.contentoutline.ContentOutline;
-import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.PropertySheet;
-import org.eclipse.ui.views.properties.PropertySheetPage;
-
-import org.eclipse.emf.common.command.BasicCommandStack;
-import org.eclipse.emf.common.command.Command;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.command.CommandStackListener;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.ui.MarkerHelper;
-import org.eclipse.emf.common.ui.ViewerPane;
-
-import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
-
-import org.eclipse.emf.common.ui.viewer.IViewerProvider;
-
-import org.eclipse.emf.common.util.BasicDiagnostic;
-import org.eclipse.emf.common.util.Diagnostic;
-import org.eclipse.emf.common.util.URI;
-
-
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-
-import org.eclipse.emf.ecore.util.EContentAdapter;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
-import org.eclipse.emf.edit.domain.EditingDomain;
-import org.eclipse.emf.edit.domain.IEditingDomainProvider;
-
-import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
-
-import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
-
-import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
-
-import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
-
-import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
-import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
-import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
-
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
-import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
-
-import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
-import org.eclipse.emf.edit.ui.util.EditUIUtil;
-
-import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
-
-import tools.descartes.dni.dnimm3ap.provider.DNIAPItemProviderAdapterFactory;
-
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-import tools.descartes.dni.dnimm3.provider.DNIItemProviderAdapterFactory;
-
-import tools.descartes.dni.dnimm3ap.provider.Dnimm3apEditPlugin;
-
-
-/**
- * This is an example of a DNIAP model editor.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class DNIAPEditor
-	extends MultiPageEditorPart
-	implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker {
-	/**
-	 * This keeps track of the editing domain that is used to track all changes to the model.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdapterFactoryEditingDomain editingDomain;
-
-	/**
-	 * This is the one adapter factory used for providing views of the model.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ComposedAdapterFactory adapterFactory;
-
-	/**
-	 * This is the content outline page.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IContentOutlinePage contentOutlinePage;
-
-	/**
-	 * This is a kludge...
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IStatusLineManager contentOutlineStatusLineManager;
-
-	/**
-	 * This is the content outline page's viewer.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TreeViewer contentOutlineViewer;
-
-	/**
-	 * This is the property sheet page.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
-
-	/**
-	 * This is the viewer that shadows the selection in the content outline.
-	 * The parent relation must be correctly defined for this to work.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TreeViewer selectionViewer;
-
-	/**
-	 * This inverts the roll of parent and child in the content provider and show parents as a tree.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TreeViewer parentViewer;
-
-	/**
-	 * This shows how a tree view works.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TreeViewer treeViewer;
-
-	/**
-	 * This shows how a list view works.
-	 * A list viewer doesn't support icons.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ListViewer listViewer;
-
-	/**
-	 * This shows how a table view works.
-	 * A table can be used as a list with icons.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TableViewer tableViewer;
-
-	/**
-	 * This shows how a tree view with columns works.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TreeViewer treeViewerWithColumns;
-
-	/**
-	 * This keeps track of the active viewer pane, in the book.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ViewerPane currentViewerPane;
-
-	/**
-	 * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Viewer currentViewer;
-
-	/**
-	 * This listens to which ever viewer is active.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ISelectionChangedListener selectionChangedListener;
-
-	/**
-	 * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
-
-	/**
-	 * This keeps track of the selection of the editor as a whole.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ISelection editorSelection = StructuredSelection.EMPTY;
-
-	/**
-	 * The MarkerHelper is responsible for creating workspace resource markers presented
-	 * in Eclipse's Problems View.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected MarkerHelper markerHelper = new EditUIMarkerHelper();
-
-	/**
-	 * This listens for when the outline becomes active
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IPartListener partListener =
-		new IPartListener() {
-			public void partActivated(IWorkbenchPart p) {
-				if (p instanceof ContentOutline) {
-					if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) {
-						getActionBarContributor().setActiveEditor(DNIAPEditor.this);
-
-						setCurrentViewer(contentOutlineViewer);
-					}
-				}
-				else if (p instanceof PropertySheet) {
-					if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
-						getActionBarContributor().setActiveEditor(DNIAPEditor.this);
-						handleActivate();
-					}
-				}
-				else if (p == DNIAPEditor.this) {
-					handleActivate();
-				}
-			}
-			public void partBroughtToTop(IWorkbenchPart p) {
-				// Ignore.
-			}
-			public void partClosed(IWorkbenchPart p) {
-				// Ignore.
-			}
-			public void partDeactivated(IWorkbenchPart p) {
-				// Ignore.
-			}
-			public void partOpened(IWorkbenchPart p) {
-				// Ignore.
-			}
-		};
-
-	/**
-	 * Resources that have been removed since last activation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection<Resource> removedResources = new ArrayList<Resource>();
-
-	/**
-	 * Resources that have been changed since last activation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection<Resource> changedResources = new ArrayList<Resource>();
-
-	/**
-	 * Resources that have been saved.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection<Resource> savedResources = new ArrayList<Resource>();
-
-	/**
-	 * Map to store the diagnostic associated with a resource.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
-
-	/**
-	 * Controls whether the problem indication should be updated.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected boolean updateProblemIndication = true;
-
-	/**
-	 * Adapter used to update the problem indication when resources are demanded loaded.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EContentAdapter problemIndicationAdapter =
-		new EContentAdapter() {
-			protected boolean dispatching;
-
-			@Override
-			public void notifyChanged(Notification notification) {
-				if (notification.getNotifier() instanceof Resource) {
-					switch (notification.getFeatureID(Resource.class)) {
-						case Resource.RESOURCE__IS_LOADED:
-						case Resource.RESOURCE__ERRORS:
-						case Resource.RESOURCE__WARNINGS: {
-							Resource resource = (Resource)notification.getNotifier();
-							Diagnostic diagnostic = analyzeResourceProblems(resource, null);
-							if (diagnostic.getSeverity() != Diagnostic.OK) {
-								resourceToDiagnosticMap.put(resource, diagnostic);
-							}
-							else {
-								resourceToDiagnosticMap.remove(resource);
-							}
-							dispatchUpdateProblemIndication();
-							break;
-						}
-					}
-				}
-				else {
-					super.notifyChanged(notification);
-				}
-			}
-
-			protected void dispatchUpdateProblemIndication() {
-				if (updateProblemIndication && !dispatching) {
-					dispatching = true;
-					getSite().getShell().getDisplay().asyncExec
-						(new Runnable() {
-							 public void run() {
-								 dispatching = false;
-								 updateProblemIndication();
-							 }
-						 });
-				}
-			}
-
-			@Override
-			protected void setTarget(Resource target) {
-				basicSetTarget(target);
-			}
-
-			@Override
-			protected void unsetTarget(Resource target) {
-				basicUnsetTarget(target);
-				resourceToDiagnosticMap.remove(target);
-				dispatchUpdateProblemIndication();
-			}
-		};
-
-	/**
-	 * This listens for workspace changes.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IResourceChangeListener resourceChangeListener =
-		new IResourceChangeListener() {
-			public void resourceChanged(IResourceChangeEvent event) {
-				IResourceDelta delta = event.getDelta();
-				try {
-					class ResourceDeltaVisitor implements IResourceDeltaVisitor {
-						protected ResourceSet resourceSet = editingDomain.getResourceSet();
-						protected Collection<Resource> changedResources = new ArrayList<Resource>();
-						protected Collection<Resource> removedResources = new ArrayList<Resource>();
-
-						public boolean visit(IResourceDelta delta) {
-							if (delta.getResource().getType() == IResource.FILE) {
-								if (delta.getKind() == IResourceDelta.REMOVED ||
-								    delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) {
-									Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
-									if (resource != null) {
-										if (delta.getKind() == IResourceDelta.REMOVED) {
-											removedResources.add(resource);
-										}
-										else if (!savedResources.remove(resource)) {
-											changedResources.add(resource);
-										}
-									}
-								}
-								return false;
-							}
-
-							return true;
-						}
-
-						public Collection<Resource> getChangedResources() {
-							return changedResources;
-						}
-
-						public Collection<Resource> getRemovedResources() {
-							return removedResources;
-						}
-					}
-
-					final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
-					delta.accept(visitor);
-
-					if (!visitor.getRemovedResources().isEmpty()) {
-						getSite().getShell().getDisplay().asyncExec
-							(new Runnable() {
-								 public void run() {
-									 removedResources.addAll(visitor.getRemovedResources());
-									 if (!isDirty()) {
-										 getSite().getPage().closeEditor(DNIAPEditor.this, false);
-									 }
-								 }
-							 });
-					}
-
-					if (!visitor.getChangedResources().isEmpty()) {
-						getSite().getShell().getDisplay().asyncExec
-							(new Runnable() {
-								 public void run() {
-									 changedResources.addAll(visitor.getChangedResources());
-									 if (getSite().getPage().getActiveEditor() == DNIAPEditor.this) {
-										 handleActivate();
-									 }
-								 }
-							 });
-					}
-				}
-				catch (CoreException exception) {
-					Dnimm3apEditPlugin.INSTANCE.log(exception);
-				}
-			}
-		};
-
-	/**
-	 * Handles activation of the editor or it's associated views.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void handleActivate() {
-		// Recompute the read only state.
-		//
-		if (editingDomain.getResourceToReadOnlyMap() != null) {
-		  editingDomain.getResourceToReadOnlyMap().clear();
-
-		  // Refresh any actions that may become enabled or disabled.
-		  //
-		  setSelection(getSelection());
-		}
-
-		if (!removedResources.isEmpty()) {
-			if (handleDirtyConflict()) {
-				getSite().getPage().closeEditor(DNIAPEditor.this, false);
-			}
-			else {
-				removedResources.clear();
-				changedResources.clear();
-				savedResources.clear();
-			}
-		}
-		else if (!changedResources.isEmpty()) {
-			changedResources.removeAll(savedResources);
-			handleChangedResources();
-			changedResources.clear();
-			savedResources.clear();
-		}
-	}
-
-	/**
-	 * Handles what to do with changed resources on activation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void handleChangedResources() {
-		if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) {
-			if (isDirty()) {
-				changedResources.addAll(editingDomain.getResourceSet().getResources());
-			}
-			editingDomain.getCommandStack().flush();
-
-			updateProblemIndication = false;
-			for (Resource resource : changedResources) {
-				if (resource.isLoaded()) {
-					resource.unload();
-					try {
-						resource.load(Collections.EMPTY_MAP);
-					}
-					catch (IOException exception) {
-						if (!resourceToDiagnosticMap.containsKey(resource)) {
-							resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
-						}
-					}
-				}
-			}
-
-			if (AdapterFactoryEditingDomain.isStale(editorSelection)) {
-				setSelection(StructuredSelection.EMPTY);
-			}
-
-			updateProblemIndication = true;
-			updateProblemIndication();
-		}
-	}
-
-	/**
-	 * Updates the problems indication with the information described in the specified diagnostic.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void updateProblemIndication() {
-		if (updateProblemIndication) {
-			BasicDiagnostic diagnostic =
-				new BasicDiagnostic
-					(Diagnostic.OK,
-					 "tools.descartes.dni.adaptation",
-					 0,
-					 null,
-					 new Object [] { editingDomain.getResourceSet() });
-			for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) {
-				if (childDiagnostic.getSeverity() != Diagnostic.OK) {
-					diagnostic.add(childDiagnostic);
-				}
-			}
-
-			int lastEditorPage = getPageCount() - 1;
-			if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) {
-				((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
-				if (diagnostic.getSeverity() != Diagnostic.OK) {
-					setActivePage(lastEditorPage);
-				}
-			}
-			else if (diagnostic.getSeverity() != Diagnostic.OK) {
-				ProblemEditorPart problemEditorPart = new ProblemEditorPart();
-				problemEditorPart.setDiagnostic(diagnostic);
-				problemEditorPart.setMarkerHelper(markerHelper);
-				try {
-					addPage(++lastEditorPage, problemEditorPart, getEditorInput());
-					setPageText(lastEditorPage, problemEditorPart.getPartName());
-					setActivePage(lastEditorPage);
-					showTabs();
-				}
-				catch (PartInitException exception) {
-					Dnimm3apEditPlugin.INSTANCE.log(exception);
-				}
-			}
-
-			if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
-				try {
-					markerHelper.updateMarkers(diagnostic);
-				}
-				catch (CoreException exception) {
-					Dnimm3apEditPlugin.INSTANCE.log(exception);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Shows a dialog that asks if conflicting changes should be discarded.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected boolean handleDirtyConflict() {
-		return
-			MessageDialog.openQuestion
-				(getSite().getShell(),
-				 getString("_UI_FileConflict_label"),
-				 getString("_WARN_FileConflict"));
-	}
-
-	/**
-	 * This creates a model editor.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DNIAPEditor() {
-		super();
-		initializeEditingDomain();
-	}
-
-	/**
-	 * This sets up the editing domain for the model editor.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void initializeEditingDomain() {
-		// Create an adapter factory that yields item providers.
-		//
-		adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
-
-		adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
-		adapterFactory.addAdapterFactory(new DNIAPItemProviderAdapterFactory());
-		adapterFactory.addAdapterFactory(new DNIItemProviderAdapterFactory());
-		adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
-
-		// Create the command stack that will notify this editor as commands are executed.
-		//
-		BasicCommandStack commandStack = new BasicCommandStack();
-
-		// Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
-		//
-		commandStack.addCommandStackListener
-			(new CommandStackListener() {
-				 public void commandStackChanged(final EventObject event) {
-					 getContainer().getDisplay().asyncExec
-						 (new Runnable() {
-							  public void run() {
-								  firePropertyChange(IEditorPart.PROP_DIRTY);
-
-								  // Try to select the affected objects.
-								  //
-								  Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
-								  if (mostRecentCommand != null) {
-									  setSelectionToViewer(mostRecentCommand.getAffectedObjects());
-								  }
-								  for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
-									  PropertySheetPage propertySheetPage = i.next();
-									  if (propertySheetPage.getControl().isDisposed()) {
-										  i.remove();
-									  }
-									  else {
-										  propertySheetPage.refresh();
-									  }
-								  }
-							  }
-						  });
-				 }
-			 });
-
-		// Create the editing domain with a special command stack.
-		//
-		editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
-	}
-
-	/**
-	 * This is here for the listener to be able to call it.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-			@Override
-	protected void firePropertyChange(int action) {
-		super.firePropertyChange(action);
-	}
-
-	/**
-	 * This sets the selection into whichever viewer is active.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setSelectionToViewer(Collection<?> collection) {
-		final Collection<?> theSelection = collection;
-		// Make sure it's okay.
-		//
-		if (theSelection != null && !theSelection.isEmpty()) {
-			Runnable runnable =
-				new Runnable() {
-					public void run() {
-						// Try to select the items in the current content viewer of the editor.
-						//
-						if (currentViewer != null) {
-							currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
-						}
-					}
-				};
-			getSite().getShell().getDisplay().asyncExec(runnable);
-		}
-	}
-
-	/**
-	 * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
-	 * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
-	 * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EditingDomain getEditingDomain() {
-		return editingDomain;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider {
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) {
-			super(adapterFactory);
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		@Override
-		public Object [] getElements(Object object) {
-			Object parent = super.getParent(object);
-			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		@Override
-		public Object [] getChildren(Object object) {
-			Object parent = super.getParent(object);
-			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		@Override
-		public boolean hasChildren(Object object) {
-			Object parent = super.getParent(object);
-			return parent != null;
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		@Override
-		public Object getParent(Object object) {
-			return null;
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setCurrentViewerPane(ViewerPane viewerPane) {
-		if (currentViewerPane != viewerPane) {
-			if (currentViewerPane != null) {
-				currentViewerPane.showFocus(false);
-			}
-			currentViewerPane = viewerPane;
-		}
-		setCurrentViewer(currentViewerPane.getViewer());
-	}
-
-	/**
-	 * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
-	 * is the current one.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setCurrentViewer(Viewer viewer) {
-		// If it is changing...
-		//
-		if (currentViewer != viewer) {
-			if (selectionChangedListener == null) {
-				// Create the listener on demand.
-				//
-				selectionChangedListener =
-					new ISelectionChangedListener() {
-						// This just notifies those things that are affected by the section.
-						//
-						public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
-							setSelection(selectionChangedEvent.getSelection());
-						}
-					};
-			}
-
-			// Stop listening to the old one.
-			//
-			if (currentViewer != null) {
-				currentViewer.removeSelectionChangedListener(selectionChangedListener);
-			}
-
-			// Start listening to the new one.
-			//
-			if (viewer != null) {
-				viewer.addSelectionChangedListener(selectionChangedListener);
-			}
-
-			// Remember it.
-			//
-			currentViewer = viewer;
-
-			// Set the editors selection based on the current viewer's selection.
-			//
-			setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
-		}
-	}
-
-	/**
-	 * This returns the viewer as required by the {@link IViewerProvider} interface.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Viewer getViewer() {
-		return currentViewer;
-	}
-
-	/**
-	 * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void createContextMenuFor(StructuredViewer viewer) {
-		MenuManager contextMenu = new MenuManager("#PopUp");
-		contextMenu.add(new Separator("additions"));
-		contextMenu.setRemoveAllWhenShown(true);
-		contextMenu.addMenuListener(this);
-		Menu menu= contextMenu.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-		getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
-
-		int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
-		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
-		viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
-		viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
-	}
-
-	/**
-	 * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void createModel() {
-		URI resourceURI = EditUIUtil.getURI(getEditorInput(), editingDomain.getResourceSet().getURIConverter());
-		Exception exception = null;
-		Resource resource = null;
-		try {
-			// Load the resource through the editing domain.
-			//
-			resource = editingDomain.getResourceSet().getResource(resourceURI, true);
-		}
-		catch (Exception e) {
-			exception = e;
-			resource = editingDomain.getResourceSet().getResource(resourceURI, false);
-		}
-
-		Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
-		if (diagnostic.getSeverity() != Diagnostic.OK) {
-			resourceToDiagnosticMap.put(resource,  analyzeResourceProblems(resource, exception));
-		}
-		editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
-	}
-
-	/**
-	 * Returns a diagnostic describing the errors and warnings listed in the resource
-	 * and the specified exception (if any).
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
-		boolean hasErrors = !resource.getErrors().isEmpty();
-		if (hasErrors || !resource.getWarnings().isEmpty()) {
-			BasicDiagnostic basicDiagnostic =
-				new BasicDiagnostic
-					(hasErrors ? Diagnostic.ERROR : Diagnostic.WARNING,
-					 "tools.descartes.dni.adaptation",
-					 0,
-					 getString("_UI_CreateModelError_message", resource.getURI()),
-					 new Object [] { exception == null ? (Object)resource : exception });
-			basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
-			return basicDiagnostic;
-		}
-		else if (exception != null) {
-			return
-				new BasicDiagnostic
-					(Diagnostic.ERROR,
-					 "tools.descartes.dni.adaptation",
-					 0,
-					 getString("_UI_CreateModelError_message", resource.getURI()),
-					 new Object[] { exception });
-		}
-		else {
-			return Diagnostic.OK_INSTANCE;
-		}
-	}
-
-	/**
-	 * This is the method used by the framework to install your own controls.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void createPages() {
-		// Creates the model from the editor input
-		//
-		createModel();
-
-		// Only creates the other pages if there is something that can be edited
-		//
-		if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {
-			// Create a page for the selection tree view.
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), DNIAPEditor.this) {
-						@Override
-						public Viewer createViewer(Composite composite) {
-							Tree tree = new Tree(composite, SWT.MULTI);
-							TreeViewer newTreeViewer = new TreeViewer(tree);
-							return newTreeViewer;
-						}
-						@Override
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-
-				selectionViewer = (TreeViewer)viewerPane.getViewer();
-				selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-				selectionViewer.setUseHashlookup(true);
-
-				selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-				selectionViewer.setInput(editingDomain.getResourceSet());
-				selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
-				viewerPane.setTitle(editingDomain.getResourceSet());
-
-				new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
-
-				createContextMenuFor(selectionViewer);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_SelectionPage_label"));
-			}
-
-			// Create a page for the parent tree view.
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), DNIAPEditor.this) {
-						@Override
-						public Viewer createViewer(Composite composite) {
-							Tree tree = new Tree(composite, SWT.MULTI);
-							TreeViewer newTreeViewer = new TreeViewer(tree);
-							return newTreeViewer;
-						}
-						@Override
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-
-				parentViewer = (TreeViewer)viewerPane.getViewer();
-				parentViewer.setAutoExpandLevel(30);
-				parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
-				parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-
-				createContextMenuFor(parentViewer);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_ParentPage_label"));
-			}
-
-			// This is the page for the list viewer
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), DNIAPEditor.this) {
-						@Override
-						public Viewer createViewer(Composite composite) {
-							return new ListViewer(composite);
-						}
-						@Override
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-				listViewer = (ListViewer)viewerPane.getViewer();
-				listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-				listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-
-				createContextMenuFor(listViewer);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_ListPage_label"));
-			}
-
-			// This is the page for the tree viewer
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), DNIAPEditor.this) {
-						@Override
-						public Viewer createViewer(Composite composite) {
-							return new TreeViewer(composite);
-						}
-						@Override
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-				treeViewer = (TreeViewer)viewerPane.getViewer();
-				treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-				treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-
-				new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
-
-				createContextMenuFor(treeViewer);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_TreePage_label"));
-			}
-
-			// This is the page for the table viewer.
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), DNIAPEditor.this) {
-						@Override
-						public Viewer createViewer(Composite composite) {
-							return new TableViewer(composite);
-						}
-						@Override
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-				tableViewer = (TableViewer)viewerPane.getViewer();
-
-				Table table = tableViewer.getTable();
-				TableLayout layout = new TableLayout();
-				table.setLayout(layout);
-				table.setHeaderVisible(true);
-				table.setLinesVisible(true);
-
-				TableColumn objectColumn = new TableColumn(table, SWT.NONE);
-				layout.addColumnData(new ColumnWeightData(3, 100, true));
-				objectColumn.setText(getString("_UI_ObjectColumn_label"));
-				objectColumn.setResizable(true);
-
-				TableColumn selfColumn = new TableColumn(table, SWT.NONE);
-				layout.addColumnData(new ColumnWeightData(2, 100, true));
-				selfColumn.setText(getString("_UI_SelfColumn_label"));
-				selfColumn.setResizable(true);
-
-				tableViewer.setColumnProperties(new String [] {"a", "b"});
-				tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-				tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-
-				createContextMenuFor(tableViewer);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_TablePage_label"));
-			}
-
-			// This is the page for the table tree viewer.
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), DNIAPEditor.this) {
-						@Override
-						public Viewer createViewer(Composite composite) {
-							return new TreeViewer(composite);
-						}
-						@Override
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-
-				treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();
-
-				Tree tree = treeViewerWithColumns.getTree();
-				tree.setLayoutData(new FillLayout());
-				tree.setHeaderVisible(true);
-				tree.setLinesVisible(true);
-
-				TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
-				objectColumn.setText(getString("_UI_ObjectColumn_label"));
-				objectColumn.setResizable(true);
-				objectColumn.setWidth(250);
-
-				TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
-				selfColumn.setText(getString("_UI_SelfColumn_label"));
-				selfColumn.setResizable(true);
-				selfColumn.setWidth(200);
-
-				treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"});
-				treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-				treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-
-				createContextMenuFor(treeViewerWithColumns);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label"));
-			}
-
-			getSite().getShell().getDisplay().asyncExec
-				(new Runnable() {
-					 public void run() {
-						 setActivePage(0);
-					 }
-				 });
-		}
-
-		// Ensures that this editor will only display the page's tab
-		// area if there are more than one page
-		//
-		getContainer().addControlListener
-			(new ControlAdapter() {
-				boolean guard = false;
-				@Override
-				public void controlResized(ControlEvent event) {
-					if (!guard) {
-						guard = true;
-						hideTabs();
-						guard = false;
-					}
-				}
-			 });
-
-		getSite().getShell().getDisplay().asyncExec
-			(new Runnable() {
-				 public void run() {
-					 updateProblemIndication();
-				 }
-			 });
-	}
-
-	/**
-	 * If there is just one page in the multi-page editor part,
-	 * this hides the single tab at the bottom.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void hideTabs() {
-		if (getPageCount() <= 1) {
-			setPageText(0, "");
-			if (getContainer() instanceof CTabFolder) {
-				((CTabFolder)getContainer()).setTabHeight(1);
-				Point point = getContainer().getSize();
-				getContainer().setSize(point.x, point.y + 6);
-			}
-		}
-	}
-
-	/**
-	 * If there is more than one page in the multi-page editor part,
-	 * this shows the tabs at the bottom.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void showTabs() {
-		if (getPageCount() > 1) {
-			setPageText(0, getString("_UI_SelectionPage_label"));
-			if (getContainer() instanceof CTabFolder) {
-				((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
-				Point point = getContainer().getSize();
-				getContainer().setSize(point.x, point.y - 6);
-			}
-		}
-	}
-
-	/**
-	 * This is used to track the active viewer.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void pageChange(int pageIndex) {
-		super.pageChange(pageIndex);
-
-		if (contentOutlinePage != null) {
-			handleContentOutlineSelection(contentOutlinePage.getSelection());
-		}
-	}
-
-	/**
-	 * This is how the framework determines which interfaces we implement.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("rawtypes")
-	@Override
-	public Object getAdapter(Class key) {
-		if (key.equals(IContentOutlinePage.class)) {
-			return showOutlineView() ? getContentOutlinePage() : null;
-		}
-		else if (key.equals(IPropertySheetPage.class)) {
-			return getPropertySheetPage();
-		}
-		else if (key.equals(IGotoMarker.class)) {
-			return this;
-		}
-		else {
-			return super.getAdapter(key);
-		}
-	}
-
-	/**
-	 * This accesses a cached version of the content outliner.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IContentOutlinePage getContentOutlinePage() {
-		if (contentOutlinePage == null) {
-			// The content outline is just a tree.
-			//
-			class MyContentOutlinePage extends ContentOutlinePage {
-				@Override
-				public void createControl(Composite parent) {
-					super.createControl(parent);
-					contentOutlineViewer = getTreeViewer();
-					contentOutlineViewer.addSelectionChangedListener(this);
-
-					// Set up the tree viewer.
-					//
-					contentOutlineViewer.setUseHashlookup(true);
-					contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-					contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-					contentOutlineViewer.setInput(editingDomain.getResourceSet());
-
-					// Make sure our popups work.
-					//
-					createContextMenuFor(contentOutlineViewer);
-
-					if (!editingDomain.getResourceSet().getResources().isEmpty()) {
-					  // Select the root object in the view.
-					  //
-					  contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
-					}
-				}
-
-				@Override
-				public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
-					super.makeContributions(menuManager, toolBarManager, statusLineManager);
-					contentOutlineStatusLineManager = statusLineManager;
-				}
-
-				@Override
-				public void setActionBars(IActionBars actionBars) {
-					super.setActionBars(actionBars);
-					getActionBarContributor().shareGlobalActions(this, actionBars);
-				}
-			}
-
-			contentOutlinePage = new MyContentOutlinePage();
-
-			// Listen to selection so that we can handle it is a special way.
-			//
-			contentOutlinePage.addSelectionChangedListener
-				(new ISelectionChangedListener() {
-					 // This ensures that we handle selections correctly.
-					 //
-					 public void selectionChanged(SelectionChangedEvent event) {
-						 handleContentOutlineSelection(event.getSelection());
-					 }
-				 });
-		}
-
-		return contentOutlinePage;
-	}
-
-	/**
-	 * This accesses a cached version of the property sheet.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IPropertySheetPage getPropertySheetPage() {
-		PropertySheetPage propertySheetPage =
-			new ExtendedPropertySheetPage(editingDomain) {
-				@Override
-				public void setSelectionToViewer(List<?> selection) {
-					DNIAPEditor.this.setSelectionToViewer(selection);
-					DNIAPEditor.this.setFocus();
-				}
-
-				@Override
-				public void setActionBars(IActionBars actionBars) {
-					super.setActionBars(actionBars);
-					getActionBarContributor().shareGlobalActions(this, actionBars);
-				}
-			};
-		propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
-		propertySheetPages.add(propertySheetPage);
-
-		return propertySheetPage;
-	}
-
-	/**
-	 * This deals with how we want selection in the outliner to affect the other views.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void handleContentOutlineSelection(ISelection selection) {
-		if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
-			Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
-			if (selectedElements.hasNext()) {
-				// Get the first selected element.
-				//
-				Object selectedElement = selectedElements.next();
-
-				// If it's the selection viewer, then we want it to select the same selection as this selection.
-				//
-				if (currentViewerPane.getViewer() == selectionViewer) {
-					ArrayList<Object> selectionList = new ArrayList<Object>();
-					selectionList.add(selectedElement);
-					while (selectedElements.hasNext()) {
-						selectionList.add(selectedElements.next());
-					}
-
-					// Set the selection to the widget.
-					//
-					selectionViewer.setSelection(new StructuredSelection(selectionList));
-				}
-				else {
-					// Set the input to the widget.
-					//
-					if (currentViewerPane.getViewer().getInput() != selectedElement) {
-						currentViewerPane.getViewer().setInput(selectedElement);
-						currentViewerPane.setTitle(selectedElement);
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * This is for implementing {@link IEditorPart} and simply tests the command stack.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean isDirty() {
-		return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
-	}
-
-	/**
-	 * This is for implementing {@link IEditorPart} and simply saves the model file.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void doSave(IProgressMonitor progressMonitor) {
-		// Save only resources that have actually changed.
-		//
-		final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
-		saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
-		saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
-
-		// Do the work within an operation because this is a long running activity that modifies the workbench.
-		//
-		WorkspaceModifyOperation operation =
-			new WorkspaceModifyOperation() {
-				// This is the method that gets invoked when the operation runs.
-				//
-				@Override
-				public void execute(IProgressMonitor monitor) {
-					// Save the resources to the file system.
-					//
-					boolean first = true;
-					List<Resource> resources = editingDomain.getResourceSet().getResources();
-					for (int i = 0; i < resources.size(); ++i) {
-						Resource resource = resources.get(i);
-						if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
-							try {
-								long timeStamp = resource.getTimeStamp();
-								resource.save(saveOptions);
-								if (resource.getTimeStamp() != timeStamp) {
-									savedResources.add(resource);
-								}
-							}
-							catch (Exception exception) {
-								resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
-							}
-							first = false;
-						}
-					}
-				}
-			};
-
-		updateProblemIndication = false;
-		try {
-			// This runs the options, and shows progress.
-			//
-			new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
-
-			// Refresh the necessary state.
-			//
-			((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
-			firePropertyChange(IEditorPart.PROP_DIRTY);
-		}
-		catch (Exception exception) {
-			// Something went wrong that shouldn't.
-			//
-			Dnimm3apEditPlugin.INSTANCE.log(exception);
-		}
-		updateProblemIndication = true;
-		updateProblemIndication();
-	}
-
-	/**
-	 * This returns whether something has been persisted to the URI of the specified resource.
-	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected boolean isPersisted(Resource resource) {
-		boolean result = false;
-		try {
-			InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
-			if (stream != null) {
-				result = true;
-				stream.close();
-			}
-		}
-		catch (IOException e) {
-			// Ignore
-		}
-		return result;
-	}
-
-	/**
-	 * This always returns true because it is not currently supported.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean isSaveAsAllowed() {
-		return true;
-	}
-
-	/**
-	 * This also changes the editor's input.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void doSaveAs() {
-		SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
-		saveAsDialog.open();
-		IPath path = saveAsDialog.getResult();
-		if (path != null) {
-			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
-			if (file != null) {
-				doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
-			}
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void doSaveAs(URI uri, IEditorInput editorInput) {
-		(editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
-		setInputWithNotify(editorInput);
-		setPartName(editorInput.getName());
-		IProgressMonitor progressMonitor =
-			getActionBars().getStatusLineManager() != null ?
-				getActionBars().getStatusLineManager().getProgressMonitor() :
-				new NullProgressMonitor();
-		doSave(progressMonitor);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void gotoMarker(IMarker marker) {
-		List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
-		if (!targetObjects.isEmpty()) {
-			setSelectionToViewer(targetObjects);
-		}
-	}
-
-	/**
-	 * This is called during startup.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void init(IEditorSite site, IEditorInput editorInput) {
-		setSite(site);
-		setInputWithNotify(editorInput);
-		setPartName(editorInput.getName());
-		site.setSelectionProvider(this);
-		site.getPage().addPartListener(partListener);
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void setFocus() {
-		if (currentViewerPane != null) {
-			currentViewerPane.setFocus();
-		}
-		else {
-			getControl(getActivePage()).setFocus();
-		}
-	}
-
-	/**
-	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void addSelectionChangedListener(ISelectionChangedListener listener) {
-		selectionChangedListeners.add(listener);
-	}
-
-	/**
-	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-		selectionChangedListeners.remove(listener);
-	}
-
-	/**
-	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ISelection getSelection() {
-		return editorSelection;
-	}
-
-	/**
-	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
-	 * Calling this result will notify the listeners.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setSelection(ISelection selection) {
-		editorSelection = selection;
-
-		for (ISelectionChangedListener listener : selectionChangedListeners) {
-			listener.selectionChanged(new SelectionChangedEvent(this, selection));
-		}
-		setStatusLineManager(selection);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setStatusLineManager(ISelection selection) {
-		IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
-			contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
-
-		if (statusLineManager != null) {
-			if (selection instanceof IStructuredSelection) {
-				Collection<?> collection = ((IStructuredSelection)selection).toList();
-				switch (collection.size()) {
-					case 0: {
-						statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
-						break;
-					}
-					case 1: {
-						String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
-						statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
-						break;
-					}
-					default: {
-						statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
-						break;
-					}
-				}
-			}
-			else {
-				statusLineManager.setMessage("");
-			}
-		}
-	}
-
-	/**
-	 * This looks up a string in the plugin's plugin.properties file.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static String getString(String key) {
-		return Dnimm3apEditPlugin.INSTANCE.getString(key);
-	}
-
-	/**
-	 * This looks up a string in plugin.properties, making a substitution.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static String getString(String key, Object s1) {
-		return Dnimm3apEditPlugin.INSTANCE.getString(key, new Object [] { s1 });
-	}
-
-	/**
-	 * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void menuAboutToShow(IMenuManager menuManager) {
-		((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EditingDomainActionBarContributor getActionBarContributor() {
-		return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IActionBars getActionBars() {
-		return getActionBarContributor().getActionBars();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdapterFactory getAdapterFactory() {
-		return adapterFactory;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void dispose() {
-		updateProblemIndication = false;
-
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
-
-		getSite().getPage().removePartListener(partListener);
-
-		adapterFactory.dispose();
-
-		if (getActionBarContributor().getActiveEditor() == this) {
-			getActionBarContributor().setActiveEditor(null);
-		}
-
-		for (PropertySheetPage propertySheetPage : propertySheetPages) {
-			propertySheetPage.dispose();
-		}
-
-		if (contentOutlinePage != null) {
-			contentOutlinePage.dispose();
-		}
-
-		super.dispose();
-	}
-
-	/**
-	 * Returns whether the outline view should be presented to the user.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected boolean showOutlineView() {
-		return true;
-	}
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/presentation/DNIAPModelWizard.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/presentation/DNIAPModelWizard.java
deleted file mode 100644
index ae63a711..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/presentation/DNIAPModelWizard.java
+++ /dev/null
@@ -1,627 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.presentation;
-
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.MissingResourceException;
-import java.util.StringTokenizer;
-
-import org.eclipse.emf.common.CommonPlugin;
-
-import org.eclipse.emf.common.util.URI;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EClassifier;
-
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.ecore.xmi.XMLResource;
-
-import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardPage;
-
-import org.eclipse.swt.SWT;
-
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.ModifyEvent;
-
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
-
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.part.ISetSelectionTarget;
-
-import tools.descartes.dni.dnimm3ap.DNIAPFactory;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-import tools.descartes.dni.dnimm3ap.provider.Dnimm3apEditPlugin;
-
-
-import org.eclipse.core.runtime.Path;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-
-
-/**
- * This is a simple wizard for creating a new model file.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class DNIAPModelWizard extends Wizard implements INewWizard {
-	/**
-	 * The supported extensions for created files.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List<String> FILE_EXTENSIONS =
-		Collections.unmodifiableList(Arrays.asList(Dnimm3apEditPlugin.INSTANCE.getString("_UI_DNIAPEditorFilenameExtensions").split("\\s*,\\s*")));
-
-	/**
-	 * A formatted list of supported file extensions, suitable for display.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final String FORMATTED_FILE_EXTENSIONS =
-		Dnimm3apEditPlugin.INSTANCE.getString("_UI_DNIAPEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
-
-	/**
-	 * This caches an instance of the model package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected DNIAPPackage dniapPackage = DNIAPPackage.eINSTANCE;
-
-	/**
-	 * This caches an instance of the model factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected DNIAPFactory dniapFactory = dniapPackage.getDNIAPFactory();
-
-	/**
-	 * This is the file creation page.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected DNIAPModelWizardNewFileCreationPage newFileCreationPage;
-
-	/**
-	 * This is the initial object creation page.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected DNIAPModelWizardInitialObjectCreationPage initialObjectCreationPage;
-
-	/**
-	 * Remember the selection during initialization for populating the default container.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IStructuredSelection selection;
-
-	/**
-	 * Remember the workbench during initialization.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IWorkbench workbench;
-
-	/**
-	 * Caches the names of the types that can be created as the root object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected List<String> initialObjectNames;
-
-	/**
-	 * This just records the information.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void init(IWorkbench workbench, IStructuredSelection selection) {
-		this.workbench = workbench;
-		this.selection = selection;
-		setWindowTitle(Dnimm3apEditPlugin.INSTANCE.getString("_UI_Wizard_label"));
-		setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(Dnimm3apEditPlugin.INSTANCE.getImage("full/wizban/NewDNIAP")));
-	}
-
-	/**
-	 * Returns the names of the types that can be created as the root object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection<String> getInitialObjectNames() {
-		if (initialObjectNames == null) {
-			initialObjectNames = new ArrayList<String>();
-			for (EClassifier eClassifier : dniapPackage.getEClassifiers()) {
-				if (eClassifier instanceof EClass) {
-					EClass eClass = (EClass)eClassifier;
-					if (!eClass.isAbstract()) {
-						initialObjectNames.add(eClass.getName());
-					}
-				}
-			}
-			Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
-		}
-		return initialObjectNames;
-	}
-
-	/**
-	 * Create a new model.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EObject createInitialModel() {
-		EClass eClass = (EClass)dniapPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
-		EObject rootObject = dniapFactory.create(eClass);
-		return rootObject;
-	}
-
-	/**
-	 * Do the work after everything is specified.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean performFinish() {
-		try {
-			// Remember the file.
-			//
-			final IFile modelFile = getModelFile();
-
-			// Do the work within an operation.
-			//
-			WorkspaceModifyOperation operation =
-				new WorkspaceModifyOperation() {
-					@Override
-					protected void execute(IProgressMonitor progressMonitor) {
-						try {
-							// Create a resource set
-							//
-							ResourceSet resourceSet = new ResourceSetImpl();
-
-							// Get the URI of the model file.
-							//
-							URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
-
-							// Create a resource for this file.
-							//
-							Resource resource = resourceSet.createResource(fileURI);
-
-							// Add the initial model object to the contents.
-							//
-							EObject rootObject = createInitialModel();
-							if (rootObject != null) {
-								resource.getContents().add(rootObject);
-							}
-
-							// Save the contents of the resource to the file system.
-							//
-							Map<Object, Object> options = new HashMap<Object, Object>();
-							options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
-							resource.save(options);
-						}
-						catch (Exception exception) {
-							Dnimm3apEditPlugin.INSTANCE.log(exception);
-						}
-						finally {
-							progressMonitor.done();
-						}
-					}
-				};
-
-			getContainer().run(false, false, operation);
-
-			// Select the new file resource in the current view.
-			//
-			IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-			IWorkbenchPage page = workbenchWindow.getActivePage();
-			final IWorkbenchPart activePart = page.getActivePart();
-			if (activePart instanceof ISetSelectionTarget) {
-				final ISelection targetSelection = new StructuredSelection(modelFile);
-				getShell().getDisplay().asyncExec
-					(new Runnable() {
-						 public void run() {
-							 ((ISetSelectionTarget)activePart).selectReveal(targetSelection);
-						 }
-					 });
-			}
-
-			// Open an editor on the new file.
-			//
-			try {
-				page.openEditor
-					(new FileEditorInput(modelFile),
-					 workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());					 	 
-			}
-			catch (PartInitException exception) {
-				MessageDialog.openError(workbenchWindow.getShell(), Dnimm3apEditPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());
-				return false;
-			}
-
-			return true;
-		}
-		catch (Exception exception) {
-			Dnimm3apEditPlugin.INSTANCE.log(exception);
-			return false;
-		}
-	}
-
-	/**
-	 * This is the one page of the wizard.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public class DNIAPModelWizardNewFileCreationPage extends WizardNewFileCreationPage {
-		/**
-		 * Pass in the selection.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public DNIAPModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) {
-			super(pageId, selection);
-		}
-
-		/**
-		 * The framework calls this to see if the file is correct.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		@Override
-		protected boolean validatePage() {
-			if (super.validatePage()) {
-				String extension = new Path(getFileName()).getFileExtension();
-				if (extension == null || !FILE_EXTENSIONS.contains(extension)) {
-					String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";
-					setErrorMessage(Dnimm3apEditPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));
-					return false;
-				}
-				return true;
-			}
-			return false;
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public IFile getModelFile() {
-			return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
-		}
-	}
-
-	/**
-	 * This is the page where the type of object to create is selected.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public class DNIAPModelWizardInitialObjectCreationPage extends WizardPage {
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		protected Combo initialObjectField;
-
-		/**
-		 * @generated
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 */
-		protected List<String> encodings;
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		protected Combo encodingField;
-
-		/**
-		 * Pass in the selection.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public DNIAPModelWizardInitialObjectCreationPage(String pageId) {
-			super(pageId);
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public void createControl(Composite parent) {
-			Composite composite = new Composite(parent, SWT.NONE); {
-				GridLayout layout = new GridLayout();
-				layout.numColumns = 1;
-				layout.verticalSpacing = 12;
-				composite.setLayout(layout);
-
-				GridData data = new GridData();
-				data.verticalAlignment = GridData.FILL;
-				data.grabExcessVerticalSpace = true;
-				data.horizontalAlignment = GridData.FILL;
-				composite.setLayoutData(data);
-			}
-
-			Label containerLabel = new Label(composite, SWT.LEFT);
-			{
-				containerLabel.setText(Dnimm3apEditPlugin.INSTANCE.getString("_UI_ModelObject"));
-
-				GridData data = new GridData();
-				data.horizontalAlignment = GridData.FILL;
-				containerLabel.setLayoutData(data);
-			}
-
-			initialObjectField = new Combo(composite, SWT.BORDER);
-			{
-				GridData data = new GridData();
-				data.horizontalAlignment = GridData.FILL;
-				data.grabExcessHorizontalSpace = true;
-				initialObjectField.setLayoutData(data);
-			}
-
-			for (String objectName : getInitialObjectNames()) {
-				initialObjectField.add(getLabel(objectName));
-			}
-
-			if (initialObjectField.getItemCount() == 1) {
-				initialObjectField.select(0);
-			}
-			initialObjectField.addModifyListener(validator);
-
-			Label encodingLabel = new Label(composite, SWT.LEFT);
-			{
-				encodingLabel.setText(Dnimm3apEditPlugin.INSTANCE.getString("_UI_XMLEncoding"));
-
-				GridData data = new GridData();
-				data.horizontalAlignment = GridData.FILL;
-				encodingLabel.setLayoutData(data);
-			}
-			encodingField = new Combo(composite, SWT.BORDER);
-			{
-				GridData data = new GridData();
-				data.horizontalAlignment = GridData.FILL;
-				data.grabExcessHorizontalSpace = true;
-				encodingField.setLayoutData(data);
-			}
-
-			for (String encoding : getEncodings()) {
-				encodingField.add(encoding);
-			}
-
-			encodingField.select(0);
-			encodingField.addModifyListener(validator);
-
-			setPageComplete(validatePage());
-			setControl(composite);
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		protected ModifyListener validator =
-			new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					setPageComplete(validatePage());
-				}
-			};
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		protected boolean validatePage() {
-			return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		@Override
-		public void setVisible(boolean visible) {
-			super.setVisible(visible);
-			if (visible) {
-				if (initialObjectField.getItemCount() == 1) {
-					initialObjectField.clearSelection();
-					encodingField.setFocus();
-				}
-				else {
-					encodingField.clearSelection();
-					initialObjectField.setFocus();
-				}
-			}
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public String getInitialObjectName() {
-			String label = initialObjectField.getText();
-
-			for (String name : getInitialObjectNames()) {
-				if (getLabel(name).equals(label)) {
-					return name;
-				}
-			}
-			return null;
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public String getEncoding() {
-			return encodingField.getText();
-		}
-
-		/**
-		 * Returns the label for the specified type name.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		protected String getLabel(String typeName) {
-			try {
-				return Dnimm3apEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
-			}
-			catch(MissingResourceException mre) {
-				Dnimm3apEditPlugin.INSTANCE.log(mre);
-			}
-			return typeName;
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		protected Collection<String> getEncodings() {
-			if (encodings == null) {
-				encodings = new ArrayList<String>();
-				for (StringTokenizer stringTokenizer = new StringTokenizer(Dnimm3apEditPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) {
-					encodings.add(stringTokenizer.nextToken());
-				}
-			}
-			return encodings;
-		}
-	}
-
-	/**
-	 * The framework calls this to create the contents of the wizard.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-		@Override
-	public void addPages() {
-		// Create a page, set the title, and the initial model file name.
-		//
-		newFileCreationPage = new DNIAPModelWizardNewFileCreationPage("Whatever", selection);
-		newFileCreationPage.setTitle(Dnimm3apEditPlugin.INSTANCE.getString("_UI_DNIAPModelWizard_label"));
-		newFileCreationPage.setDescription(Dnimm3apEditPlugin.INSTANCE.getString("_UI_DNIAPModelWizard_description"));
-		newFileCreationPage.setFileName(Dnimm3apEditPlugin.INSTANCE.getString("_UI_DNIAPEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0));
-		addPage(newFileCreationPage);
-
-		// Try and get the resource selection to determine a current directory for the file dialog.
-		//
-		if (selection != null && !selection.isEmpty()) {
-			// Get the resource...
-			//
-			Object selectedElement = selection.iterator().next();
-			if (selectedElement instanceof IResource) {
-				// Get the resource parent, if its a file.
-				//
-				IResource selectedResource = (IResource)selectedElement;
-				if (selectedResource.getType() == IResource.FILE) {
-					selectedResource = selectedResource.getParent();
-				}
-
-				// This gives us a directory...
-				//
-				if (selectedResource instanceof IFolder || selectedResource instanceof IProject) {
-					// Set this for the container.
-					//
-					newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
-
-					// Make up a unique new name here.
-					//
-					String defaultModelBaseFilename = Dnimm3apEditPlugin.INSTANCE.getString("_UI_DNIAPEditorFilenameDefaultBase");
-					String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
-					String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension;
-					for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) {
-						modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension;
-					}
-					newFileCreationPage.setFileName(modelFilename);
-				}
-			}
-		}
-		initialObjectCreationPage = new DNIAPModelWizardInitialObjectCreationPage("Whatever2");
-		initialObjectCreationPage.setTitle(Dnimm3apEditPlugin.INSTANCE.getString("_UI_DNIAPModelWizard_label"));
-		initialObjectCreationPage.setDescription(Dnimm3apEditPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description"));
-		addPage(initialObjectCreationPage);
-	}
-
-	/**
-	 * Get the file from the page.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IFile getModelFile() {
-		return newFileCreationPage.getModelFile();
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableEndPerformanceItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableEndPerformanceItemProvider.java
deleted file mode 100644
index 0e7af09d..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableEndPerformanceItemProvider.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3ap.AdaptableEndPerformance;
-import tools.descartes.dni.dnimm3ap.DNIAPFactory;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableEndPerformance} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AdaptableEndPerformanceItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableEndPerformanceItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addEntityTypePropertyDescriptor(object);
-			addNamePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Entity Type feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntityTypePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_IAdaptableEntity_entityType_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_IAdaptableEntity_entityType_feature", "_UI_IAdaptableEntity_type"),
-				 DNIAPPackage.Literals.IADAPTABLE_ENTITY__ENTITY_TYPE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_AdaptableEndPerformance_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableEndPerformance_name_feature", "_UI_AdaptableEndPerformance_type"),
-				 DNIAPPackage.Literals.ADAPTABLE_END_PERFORMANCE__NAME,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTABLE_END_PERFORMANCE__SOFTWARE_LAYERS_DELAY);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns AdaptableEndPerformance.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AdaptableEndPerformance"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((AdaptableEndPerformance)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_AdaptableEndPerformance_type") :
-			getString("_UI_AdaptableEndPerformance_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(AdaptableEndPerformance.class)) {
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE__NAME:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE__SOFTWARE_LAYERS_DELAY:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTABLE_END_PERFORMANCE__SOFTWARE_LAYERS_DELAY,
-				 DNIAPFactory.eINSTANCE.createAlternativeVariableSet()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableIntermediatePerformanceItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableIntermediatePerformanceItemProvider.java
deleted file mode 100644
index 2bc57c0f..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableIntermediatePerformanceItemProvider.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance;
-import tools.descartes.dni.dnimm3ap.DNIAPFactory;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AdaptableIntermediatePerformanceItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableIntermediatePerformanceItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addEntityTypePropertyDescriptor(object);
-			addNamePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Entity Type feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntityTypePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_IAdaptableEntity_entityType_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_IAdaptableEntity_entityType_feature", "_UI_IAdaptableEntity_type"),
-				 DNIAPPackage.Literals.IADAPTABLE_ENTITY__ENTITY_TYPE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_AdaptableIntermediatePerformance_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableIntermediatePerformance_name_feature", "_UI_AdaptableIntermediatePerformance_type"),
-				 DNIAPPackage.Literals.ADAPTABLE_INTERMEDIATE_PERFORMANCE__NAME,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTABLE_INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns AdaptableIntermediatePerformance.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AdaptableIntermediatePerformance"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((AdaptableIntermediatePerformance)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_AdaptableIntermediatePerformance_type") :
-			getString("_UI_AdaptableIntermediatePerformance_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(AdaptableIntermediatePerformance.class)) {
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__NAME:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY:
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS:
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY,
-				 DNIAPFactory.eINSTANCE.createAlternativeVariableSet()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTABLE_INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS,
-				 DNIAPFactory.eINSTANCE.createAlternativeVariableSet()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS,
-				 DNIAPFactory.eINSTANCE.createAlternativeVariableSet()));
-	}
-
-	/**
-	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
-		Object childFeature = feature;
-		Object childObject = child;
-
-		boolean qualify =
-			childFeature == DNIAPPackage.Literals.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY ||
-			childFeature == DNIAPPackage.Literals.ADAPTABLE_INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS ||
-			childFeature == DNIAPPackage.Literals.ADAPTABLE_INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS;
-
-		if (qualify) {
-			return getString
-				("_UI_CreateChild_text2",
-				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
-		}
-		return super.getCreateChildText(owner, feature, child, selection);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableLinkItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableLinkItemProvider.java
deleted file mode 100644
index 81cbd34c..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableLinkItemProvider.java
+++ /dev/null
@@ -1,250 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3ap.AdaptableLink;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableLink} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AdaptableLinkItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableLinkItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addEntityTypePropertyDescriptor(object);
-			addNamePropertyDescriptor(object);
-			addLinkPerformancePropertyDescriptor(object);
-			addNetworkInterfacePropertyDescriptor(object);
-			addAdaptationGroupPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Entity Type feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntityTypePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_IAdaptableEntity_entityType_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_IAdaptableEntity_entityType_feature", "_UI_IAdaptableEntity_type"),
-				 DNIAPPackage.Literals.IADAPTABLE_ENTITY__ENTITY_TYPE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_AdaptableLink_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableLink_name_feature", "_UI_AdaptableLink_type"),
-				 DNIAPPackage.Literals.ADAPTABLE_LINK__NAME,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Link Performance feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addLinkPerformancePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_AdaptableLink_linkPerformance_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableLink_linkPerformance_feature", "_UI_AdaptableLink_type"),
-				 DNIAPPackage.Literals.ADAPTABLE_LINK__LINK_PERFORMANCE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Network Interface feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNetworkInterfacePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_AdaptableLink_networkInterface_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableLink_networkInterface_feature", "_UI_AdaptableLink_type"),
-				 DNIAPPackage.Literals.ADAPTABLE_LINK__NETWORK_INTERFACE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Adaptation Group feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addAdaptationGroupPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_AdaptableLink_adaptationGroup_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableLink_adaptationGroup_feature", "_UI_AdaptableLink_type"),
-				 DNIAPPackage.Literals.ADAPTABLE_LINK__ADAPTATION_GROUP,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns AdaptableLink.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AdaptableLink"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((AdaptableLink)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_AdaptableLink_type") :
-			getString("_UI_AdaptableLink_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(AdaptableLink.class)) {
-			case DNIAPPackage.ADAPTABLE_LINK__NAME:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableLinkPerformanceItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableLinkPerformanceItemProvider.java
deleted file mode 100644
index a4a266bb..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableLinkPerformanceItemProvider.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance;
-import tools.descartes.dni.dnimm3ap.DNIAPFactory;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AdaptableLinkPerformanceItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableLinkPerformanceItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addEntityTypePropertyDescriptor(object);
-			addNamePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Entity Type feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntityTypePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_IAdaptableEntity_entityType_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_IAdaptableEntity_entityType_feature", "_UI_IAdaptableEntity_type"),
-				 DNIAPPackage.Literals.IADAPTABLE_ENTITY__ENTITY_TYPE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_AdaptableLinkPerformance_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableLinkPerformance_name_feature", "_UI_AdaptableLinkPerformance_type"),
-				 DNIAPPackage.Literals.ADAPTABLE_LINK_PERFORMANCE__NAME,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTABLE_LINK_PERFORMANCE__PROPAGATION_DELAY);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTABLE_LINK_PERFORMANCE__MAXIMAL_SUPPORTED_BANDWIDTH);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns AdaptableLinkPerformance.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AdaptableLinkPerformance"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((AdaptableLinkPerformance)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_AdaptableLinkPerformance_type") :
-			getString("_UI_AdaptableLinkPerformance_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(AdaptableLinkPerformance.class)) {
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__NAME:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__PROPAGATION_DELAY:
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE__MAXIMAL_SUPPORTED_BANDWIDTH:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTABLE_LINK_PERFORMANCE__PROPAGATION_DELAY,
-				 DNIAPFactory.eINSTANCE.createAlternativeVariableSet()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTABLE_LINK_PERFORMANCE__MAXIMAL_SUPPORTED_BANDWIDTH,
-				 DNIAPFactory.eINSTANCE.createAlternativeVariableSet()));
-	}
-
-	/**
-	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
-		Object childFeature = feature;
-		Object childObject = child;
-
-		boolean qualify =
-			childFeature == DNIAPPackage.Literals.ADAPTABLE_LINK_PERFORMANCE__PROPAGATION_DELAY ||
-			childFeature == DNIAPPackage.Literals.ADAPTABLE_LINK_PERFORMANCE__MAXIMAL_SUPPORTED_BANDWIDTH;
-
-		if (qualify) {
-			return getString
-				("_UI_CreateChild_text2",
-				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
-		}
-		return super.getCreateChildText(owner, feature, child, selection);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNetworkInterfaceItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNetworkInterfaceItemProvider.java
deleted file mode 100644
index 8e3c19f9..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNetworkInterfaceItemProvider.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AdaptableNetworkInterfaceItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableNetworkInterfaceItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addEntityTypePropertyDescriptor(object);
-			addNamePropertyDescriptor(object);
-			addNetworkInterfacePerformancePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Entity Type feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntityTypePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_IAdaptableEntity_entityType_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_IAdaptableEntity_entityType_feature", "_UI_IAdaptableEntity_type"),
-				 DNIAPPackage.Literals.IADAPTABLE_ENTITY__ENTITY_TYPE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_AdaptableNetworkInterface_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableNetworkInterface_name_feature", "_UI_AdaptableNetworkInterface_type"),
-				 DNIAPPackage.Literals.ADAPTABLE_NETWORK_INTERFACE__NAME,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Network Interface Performance feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNetworkInterfacePerformancePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_AdaptableNetworkInterface_networkInterfacePerformance_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableNetworkInterface_networkInterfacePerformance_feature", "_UI_AdaptableNetworkInterface_type"),
-				 DNIAPPackage.Literals.ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns AdaptableNetworkInterface.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AdaptableNetworkInterface"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((AdaptableNetworkInterface)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_AdaptableNetworkInterface_type") :
-			getString("_UI_AdaptableNetworkInterface_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(AdaptableNetworkInterface.class)) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__NAME:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNetworkInterfacePerformanceItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNetworkInterfacePerformanceItemProvider.java
deleted file mode 100644
index e7aa6a0d..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNetworkInterfacePerformanceItemProvider.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance;
-import tools.descartes.dni.dnimm3ap.DNIAPFactory;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AdaptableNetworkInterfacePerformanceItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableNetworkInterfacePerformanceItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addEntityTypePropertyDescriptor(object);
-			addNamePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Entity Type feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntityTypePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_IAdaptableEntity_entityType_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_IAdaptableEntity_entityType_feature", "_UI_IAdaptableEntity_type"),
-				 DNIAPPackage.Literals.IADAPTABLE_ENTITY__ENTITY_TYPE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_AdaptableNetworkInterfacePerformance_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableNetworkInterfacePerformance_name_feature", "_UI_AdaptableNetworkInterfacePerformance_type"),
-				 DNIAPPackage.Literals.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__NAME,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__PACKET_PROCESSING_TIME);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__INTERFACE_THROUGHPUT);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns AdaptableNetworkInterfacePerformance.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AdaptableNetworkInterfacePerformance"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((AdaptableNetworkInterfacePerformance)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_AdaptableNetworkInterfacePerformance_type") :
-			getString("_UI_AdaptableNetworkInterfacePerformance_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(AdaptableNetworkInterfacePerformance.class)) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__NAME:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__PACKET_PROCESSING_TIME:
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__INTERFACE_THROUGHPUT:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__PACKET_PROCESSING_TIME,
-				 DNIAPFactory.eINSTANCE.createAlternativeVariableSet()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__INTERFACE_THROUGHPUT,
-				 DNIAPFactory.eINSTANCE.createAlternativeVariableSet()));
-	}
-
-	/**
-	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
-		Object childFeature = feature;
-		Object childObject = child;
-
-		boolean qualify =
-			childFeature == DNIAPPackage.Literals.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__PACKET_PROCESSING_TIME ||
-			childFeature == DNIAPPackage.Literals.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__INTERFACE_THROUGHPUT;
-
-		if (qualify) {
-			return getString
-				("_UI_CreateChild_text2",
-				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
-		}
-		return super.getCreateChildText(owner, feature, child, selection);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNodeItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNodeItemProvider.java
deleted file mode 100644
index c9fb746f..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNodeItemProvider.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3ap.AdaptableNode;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableNode} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AdaptableNodeItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableNodeItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addEntityTypePropertyDescriptor(object);
-			addNamePropertyDescriptor(object);
-			addEndPerformancePropertyDescriptor(object);
-			addIntermediatePerformancePropertyDescriptor(object);
-			addSdnNodePerformancePropertyDescriptor(object);
-			addNetworkInterfacePropertyDescriptor(object);
-			addAdaptationGroupPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Entity Type feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntityTypePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_IAdaptableEntity_entityType_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_IAdaptableEntity_entityType_feature", "_UI_IAdaptableEntity_type"),
-				 DNIAPPackage.Literals.IADAPTABLE_ENTITY__ENTITY_TYPE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_AdaptableNode_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableNode_name_feature", "_UI_AdaptableNode_type"),
-				 DNIAPPackage.Literals.ADAPTABLE_NODE__NAME,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the End Performance feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEndPerformancePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_AdaptableNode_endPerformance_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableNode_endPerformance_feature", "_UI_AdaptableNode_type"),
-				 DNIAPPackage.Literals.ADAPTABLE_NODE__END_PERFORMANCE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Intermediate Performance feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addIntermediatePerformancePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_AdaptableNode_intermediatePerformance_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableNode_intermediatePerformance_feature", "_UI_AdaptableNode_type"),
-				 DNIAPPackage.Literals.ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Sdn Node Performance feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addSdnNodePerformancePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_AdaptableNode_sdnNodePerformance_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableNode_sdnNodePerformance_feature", "_UI_AdaptableNode_type"),
-				 DNIAPPackage.Literals.ADAPTABLE_NODE__SDN_NODE_PERFORMANCE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Network Interface feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNetworkInterfacePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_AdaptableNode_networkInterface_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableNode_networkInterface_feature", "_UI_AdaptableNode_type"),
-				 DNIAPPackage.Literals.ADAPTABLE_NODE__NETWORK_INTERFACE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Adaptation Group feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addAdaptationGroupPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_AdaptableNode_adaptationGroup_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableNode_adaptationGroup_feature", "_UI_AdaptableNode_type"),
-				 DNIAPPackage.Literals.ADAPTABLE_NODE__ADAPTATION_GROUP,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns AdaptableNode.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AdaptableNode"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((AdaptableNode)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_AdaptableNode_type") :
-			getString("_UI_AdaptableNode_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(AdaptableNode.class)) {
-			case DNIAPPackage.ADAPTABLE_NODE__NAME:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableSdnNodePerformanceItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableSdnNodePerformanceItemProvider.java
deleted file mode 100644
index 6dffb36c..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableSdnNodePerformanceItemProvider.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AdaptableSdnNodePerformanceItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableSdnNodePerformanceItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addEntityTypePropertyDescriptor(object);
-			addNamePropertyDescriptor(object);
-			addSoftwareSwitchingPerformancePropertyDescriptor(object);
-			addHardwareSwitchingPerformancePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Entity Type feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntityTypePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_IAdaptableEntity_entityType_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_IAdaptableEntity_entityType_feature", "_UI_IAdaptableEntity_type"),
-				 DNIAPPackage.Literals.IADAPTABLE_ENTITY__ENTITY_TYPE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_AdaptableSdnNodePerformance_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableSdnNodePerformance_name_feature", "_UI_AdaptableSdnNodePerformance_type"),
-				 DNIAPPackage.Literals.ADAPTABLE_SDN_NODE_PERFORMANCE__NAME,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Software Switching Performance feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addSoftwareSwitchingPerformancePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_AdaptableSdnNodePerformance_softwareSwitchingPerformance_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableSdnNodePerformance_softwareSwitchingPerformance_feature", "_UI_AdaptableSdnNodePerformance_type"),
-				 DNIAPPackage.Literals.ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Hardware Switching Performance feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addHardwareSwitchingPerformancePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_AdaptableSdnNodePerformance_hardwareSwitchingPerformance_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableSdnNodePerformance_hardwareSwitchingPerformance_feature", "_UI_AdaptableSdnNodePerformance_type"),
-				 DNIAPPackage.Literals.ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns AdaptableSdnNodePerformance.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AdaptableSdnNodePerformance"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((AdaptableSdnNodePerformance)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_AdaptableSdnNodePerformance_type") :
-			getString("_UI_AdaptableSdnNodePerformance_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(AdaptableSdnNodePerformance.class)) {
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__NAME:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptationGroupsItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptationGroupsItemProvider.java
deleted file mode 100644
index 61ce2ea0..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptationGroupsItemProvider.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3ap.AdaptationGroups;
-import tools.descartes.dni.dnimm3ap.DNIAPFactory;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptationGroups} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AdaptationGroupsItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptationGroupsItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_GROUPS__NODES);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_GROUPS__LINKS);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns AdaptationGroups.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AdaptationGroups"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_AdaptationGroups_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(AdaptationGroups.class)) {
-			case DNIAPPackage.ADAPTATION_GROUPS__NODES:
-			case DNIAPPackage.ADAPTATION_GROUPS__LINKS:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_GROUPS__NODES,
-				 DNIAPFactory.eINSTANCE.createNodeAdaptationGroup()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_GROUPS__LINKS,
-				 DNIAPFactory.eINSTANCE.createLinkAdaptationGroup()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptationPointsItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptationPointsItemProvider.java
deleted file mode 100644
index 75e77505..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptationPointsItemProvider.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3ap.AdaptationPoints;
-import tools.descartes.dni.dnimm3ap.DNIAPFactory;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptationPoints} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AdaptationPointsItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptationPointsItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNetworkInfrastructurePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Network Infrastructure feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNetworkInfrastructurePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_AdaptationPoints_networkInfrastructure_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptationPoints_networkInfrastructure_feature", "_UI_AdaptationPoints_type"),
-				 DNIAPPackage.Literals.ADAPTATION_POINTS__NETWORK_INFRASTRUCTURE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_POINTS__REPOSITORIES);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_POINTS__GROUPS);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns AdaptationPoints.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AdaptationPoints"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_AdaptationPoints_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(AdaptationPoints.class)) {
-			case DNIAPPackage.ADAPTATION_POINTS__REPOSITORIES:
-			case DNIAPPackage.ADAPTATION_POINTS__GROUPS:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_POINTS__REPOSITORIES,
-				 DNIAPFactory.eINSTANCE.createAdaptationRepositories()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_POINTS__GROUPS,
-				 DNIAPFactory.eINSTANCE.createAdaptationGroups()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptationRepositoriesItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptationRepositoriesItemProvider.java
deleted file mode 100644
index a20ce802..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptationRepositoriesItemProvider.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3ap.AdaptationRepositories;
-import tools.descartes.dni.dnimm3ap.DNIAPFactory;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptationRepositories} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AdaptationRepositoriesItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptationRepositoriesItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__NODES);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__END_PERFORMANCES);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__NETWORK_INTERFACES);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__LINKS);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__LINK_PERFORMANCES);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns AdaptationRepositories.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AdaptationRepositories"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_AdaptationRepositories_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(AdaptationRepositories.class)) {
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NODES:
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCES:
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES:
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES:
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACES:
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES:
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINKS:
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCES:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__NODES,
-				 DNIAPFactory.eINSTANCE.createAdaptableNode()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__END_PERFORMANCES,
-				 DNIAPFactory.eINSTANCE.createAdaptableEndPerformance()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES,
-				 DNIAPFactory.eINSTANCE.createAdaptableIntermediatePerformance()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES,
-				 DNIAPFactory.eINSTANCE.createAdaptableSdnNodePerformance()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__NETWORK_INTERFACES,
-				 DNIAPFactory.eINSTANCE.createAdaptableNetworkInterface()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES,
-				 DNIAPFactory.eINSTANCE.createAdaptableNetworkInterfacePerformance()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__LINKS,
-				 DNIAPFactory.eINSTANCE.createAdaptableLink()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__LINK_PERFORMANCES,
-				 DNIAPFactory.eINSTANCE.createAdaptableLinkPerformance()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeConstantLongItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeConstantLongItemProvider.java
deleted file mode 100644
index 7338667c..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeConstantLongItemProvider.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AlternativeConstantLong} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AlternativeConstantLongItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AlternativeConstantLongItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_AlternativeConstantLong_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeConstantLongVariableSetItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeConstantLongVariableSetItemProvider.java
deleted file mode 100644
index 70fe5a04..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeConstantLongVariableSetItemProvider.java
+++ /dev/null
@@ -1,591 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EcoreFactory;
-import org.eclipse.emf.ecore.EcorePackage;
-
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-
-import tools.descartes.dni.dnimm3ap.AlternativeConstantLongVariableSet;
-import tools.descartes.dni.dnimm3ap.DNIAPFactory;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AlternativeConstantLongVariableSet} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AlternativeConstantLongVariableSetItemProvider extends AlternativeConstantLongItemProvider {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AlternativeConstantLongVariableSetItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns AlternativeConstantLongVariableSet.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AlternativeConstantLongVariableSet"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_AlternativeConstantLongVariableSet_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(AlternativeConstantLongVariableSet.class)) {
-			case DNIAPPackage.ALTERNATIVE_CONSTANT_LONG_VARIABLE_SET__ALTERNATIVE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptationPoints()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptationRepositories()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableNode()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableLink()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableLinkPerformance()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableEndPerformance()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableIntermediatePerformance()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableSdnNodePerformance()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableNetworkInterface()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableNetworkInterfacePerformance()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptationGroups()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createNodeAdaptationGroup()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createLinkAdaptationGroup()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAlternativeVariableSet()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAlternativeConstantLongVariableSet()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createNetworkInfrastructure()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createNetworkStructure()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createNode()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createEnd()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createIntermediate()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createLink()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createNetworkInterface()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createNetworkTraffic()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createFlow()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createSdnControlFlow()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createGenericFlowTraffic()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createCommunicatingApplication()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createTrafficSource()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createNetworkConfiguration()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createProtocolsRepository()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createProtocolStack()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createProtocolLayer()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createNetworkProtocol()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createRoutesRepository()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createDirection()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createFlowRoute()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createRoute()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createHop()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createEntityAddress()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createGenericWorkload()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createBranchAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createLoopAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createSequenceAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createStartAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createStopAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createTransmitAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createWaitAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createPerformanceLink()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createPerformanceNetworkInterface()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createSdnFlowRule()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createSdnController()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createSdnControllerApplication()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createCommon()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createSDN()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createIntermediatePerformance()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createEndPerformance()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createPerformanceSdnNode()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createSpeedUnit()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createDataUnit()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createTimeUnit()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createConstantDoubleVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createConstantLongVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createRandomVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createFloatCoordinate()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createDiscreteFunction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createExponentialFunction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createEntityTypes()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createNodeType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createEndPerformanceType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createIntermediatePerformanceType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createSdnNodePerformanceType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createNetworkInterfaceType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createNetworkInterfacePerformanceType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createLinkType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createLinkPerformanceType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEObject()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEAttribute()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEAnnotation()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEClass()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEDataType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEEnum()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEEnumLiteral()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEFactory()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEOperation()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEPackage()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEParameter()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEReference()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.create(EcorePackage.Literals.ESTRING_TO_STRING_MAP_ENTRY)));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEGenericType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createETypeParameter()));
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeVariableItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeVariableItemProvider.java
deleted file mode 100644
index 419a0c66..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeVariableItemProvider.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AlternativeVariable} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AlternativeVariableItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AlternativeVariableItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_AlternativeVariable_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeVariableSetItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeVariableSetItemProvider.java
deleted file mode 100644
index 1af4debe..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeVariableSetItemProvider.java
+++ /dev/null
@@ -1,591 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EcoreFactory;
-import org.eclipse.emf.ecore.EcorePackage;
-
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-
-import tools.descartes.dni.dnimm3ap.AlternativeVariableSet;
-import tools.descartes.dni.dnimm3ap.DNIAPFactory;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AlternativeVariableSet} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AlternativeVariableSetItemProvider extends AlternativeVariableItemProvider {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AlternativeVariableSetItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns AlternativeVariableSet.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AlternativeVariableSet"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_AlternativeVariableSet_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(AlternativeVariableSet.class)) {
-			case DNIAPPackage.ALTERNATIVE_VARIABLE_SET__ALTERNATIVE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptationPoints()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptationRepositories()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableNode()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableLink()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableLinkPerformance()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableEndPerformance()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableIntermediatePerformance()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableSdnNodePerformance()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableNetworkInterface()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableNetworkInterfacePerformance()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptationGroups()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createNodeAdaptationGroup()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createLinkAdaptationGroup()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAlternativeVariableSet()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAlternativeConstantLongVariableSet()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createNetworkInfrastructure()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createNetworkStructure()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createNode()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createEnd()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createIntermediate()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createLink()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createNetworkInterface()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createNetworkTraffic()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createFlow()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createSdnControlFlow()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createGenericFlowTraffic()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createCommunicatingApplication()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createTrafficSource()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createNetworkConfiguration()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createProtocolsRepository()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createProtocolStack()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createProtocolLayer()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createNetworkProtocol()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createRoutesRepository()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createDirection()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createFlowRoute()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createRoute()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createHop()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createEntityAddress()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createGenericWorkload()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createBranchAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createLoopAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createSequenceAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createStartAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createStopAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createTransmitAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createWaitAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createPerformanceLink()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createPerformanceNetworkInterface()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createSdnFlowRule()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createSdnController()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createSdnControllerApplication()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createCommon()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createSDN()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createIntermediatePerformance()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createEndPerformance()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createPerformanceSdnNode()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createSpeedUnit()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createDataUnit()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createTimeUnit()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createConstantDoubleVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createConstantLongVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createRandomVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createFloatCoordinate()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createDiscreteFunction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createExponentialFunction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createEntityTypes()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createNodeType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createEndPerformanceType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createIntermediatePerformanceType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createSdnNodePerformanceType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createNetworkInterfaceType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createNetworkInterfacePerformanceType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createLinkType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIFactory.eINSTANCE.createLinkPerformanceType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEObject()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEAttribute()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEAnnotation()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEClass()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEDataType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEEnum()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEEnumLiteral()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEFactory()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEOperation()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEPackage()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEParameter()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEReference()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.create(EcorePackage.Literals.ESTRING_TO_STRING_MAP_ENTRY)));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createEGenericType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 EcoreFactory.eINSTANCE.createETypeParameter()));
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/DNIAPItemProviderAdapterFactory.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/DNIAPItemProviderAdapterFactory.java
deleted file mode 100644
index c7e87f40..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/DNIAPItemProviderAdapterFactory.java
+++ /dev/null
@@ -1,535 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.Notifier;
-
-import org.eclipse.emf.edit.provider.ChangeNotifier;
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.IChangeNotifier;
-import org.eclipse.emf.edit.provider.IDisposable;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.INotifyChangedListener;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-
-import tools.descartes.dni.dnimm3ap.util.DNIAPAdapterFactory;
-
-/**
- * This is the factory that is used to provide the interfaces needed to support Viewers.
- * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
- * The adapters also support Eclipse property sheets.
- * Note that most of the adapters are shared among multiple instances.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class DNIAPItemProviderAdapterFactory extends DNIAPAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
-	/**
-	 * This keeps track of the root adapter factory that delegates to this adapter factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ComposedAdapterFactory parentAdapterFactory;
-
-	/**
-	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IChangeNotifier changeNotifier = new ChangeNotifier();
-
-	/**
-	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection<Object> supportedTypes = new ArrayList<Object>();
-
-	/**
-	 * This constructs an instance.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DNIAPItemProviderAdapterFactory() {
-		supportedTypes.add(IEditingDomainItemProvider.class);
-		supportedTypes.add(IStructuredItemContentProvider.class);
-		supportedTypes.add(ITreeItemContentProvider.class);
-		supportedTypes.add(IItemLabelProvider.class);
-		supportedTypes.add(IItemPropertySource.class);
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AdaptationPoints} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptationPointsItemProvider adaptationPointsItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptationPoints}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdaptationPointsAdapter() {
-		if (adaptationPointsItemProvider == null) {
-			adaptationPointsItemProvider = new AdaptationPointsItemProvider(this);
-		}
-
-		return adaptationPointsItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AdaptationRepositories} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptationRepositoriesItemProvider adaptationRepositoriesItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptationRepositories}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdaptationRepositoriesAdapter() {
-		if (adaptationRepositoriesItemProvider == null) {
-			adaptationRepositoriesItemProvider = new AdaptationRepositoriesItemProvider(this);
-		}
-
-		return adaptationRepositoriesItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AdaptableNode} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableNodeItemProvider adaptableNodeItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableNode}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdaptableNodeAdapter() {
-		if (adaptableNodeItemProvider == null) {
-			adaptableNodeItemProvider = new AdaptableNodeItemProvider(this);
-		}
-
-		return adaptableNodeItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AdaptableLink} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableLinkItemProvider adaptableLinkItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableLink}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdaptableLinkAdapter() {
-		if (adaptableLinkItemProvider == null) {
-			adaptableLinkItemProvider = new AdaptableLinkItemProvider(this);
-		}
-
-		return adaptableLinkItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableLinkPerformanceItemProvider adaptableLinkPerformanceItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdaptableLinkPerformanceAdapter() {
-		if (adaptableLinkPerformanceItemProvider == null) {
-			adaptableLinkPerformanceItemProvider = new AdaptableLinkPerformanceItemProvider(this);
-		}
-
-		return adaptableLinkPerformanceItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AdaptableEndPerformance} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableEndPerformanceItemProvider adaptableEndPerformanceItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableEndPerformance}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdaptableEndPerformanceAdapter() {
-		if (adaptableEndPerformanceItemProvider == null) {
-			adaptableEndPerformanceItemProvider = new AdaptableEndPerformanceItemProvider(this);
-		}
-
-		return adaptableEndPerformanceItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableIntermediatePerformanceItemProvider adaptableIntermediatePerformanceItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdaptableIntermediatePerformanceAdapter() {
-		if (adaptableIntermediatePerformanceItemProvider == null) {
-			adaptableIntermediatePerformanceItemProvider = new AdaptableIntermediatePerformanceItemProvider(this);
-		}
-
-		return adaptableIntermediatePerformanceItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableSdnNodePerformanceItemProvider adaptableSdnNodePerformanceItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdaptableSdnNodePerformanceAdapter() {
-		if (adaptableSdnNodePerformanceItemProvider == null) {
-			adaptableSdnNodePerformanceItemProvider = new AdaptableSdnNodePerformanceItemProvider(this);
-		}
-
-		return adaptableSdnNodePerformanceItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableNetworkInterfaceItemProvider adaptableNetworkInterfaceItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdaptableNetworkInterfaceAdapter() {
-		if (adaptableNetworkInterfaceItemProvider == null) {
-			adaptableNetworkInterfaceItemProvider = new AdaptableNetworkInterfaceItemProvider(this);
-		}
-
-		return adaptableNetworkInterfaceItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableNetworkInterfacePerformanceItemProvider adaptableNetworkInterfacePerformanceItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdaptableNetworkInterfacePerformanceAdapter() {
-		if (adaptableNetworkInterfacePerformanceItemProvider == null) {
-			adaptableNetworkInterfacePerformanceItemProvider = new AdaptableNetworkInterfacePerformanceItemProvider(this);
-		}
-
-		return adaptableNetworkInterfacePerformanceItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AdaptationGroups} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptationGroupsItemProvider adaptationGroupsItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptationGroups}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdaptationGroupsAdapter() {
-		if (adaptationGroupsItemProvider == null) {
-			adaptationGroupsItemProvider = new AdaptationGroupsItemProvider(this);
-		}
-
-		return adaptationGroupsItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.NodeAdaptationGroup} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NodeAdaptationGroupItemProvider nodeAdaptationGroupItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.NodeAdaptationGroup}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createNodeAdaptationGroupAdapter() {
-		if (nodeAdaptationGroupItemProvider == null) {
-			nodeAdaptationGroupItemProvider = new NodeAdaptationGroupItemProvider(this);
-		}
-
-		return nodeAdaptationGroupItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.LinkAdaptationGroup} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected LinkAdaptationGroupItemProvider linkAdaptationGroupItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.LinkAdaptationGroup}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createLinkAdaptationGroupAdapter() {
-		if (linkAdaptationGroupItemProvider == null) {
-			linkAdaptationGroupItemProvider = new LinkAdaptationGroupItemProvider(this);
-		}
-
-		return linkAdaptationGroupItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AlternativeVariableSet} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AlternativeVariableSetItemProvider alternativeVariableSetItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.AlternativeVariableSet}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createAlternativeVariableSetAdapter() {
-		if (alternativeVariableSetItemProvider == null) {
-			alternativeVariableSetItemProvider = new AlternativeVariableSetItemProvider(this);
-		}
-
-		return alternativeVariableSetItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AlternativeConstantLongVariableSet} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AlternativeConstantLongVariableSetItemProvider alternativeConstantLongVariableSetItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.AlternativeConstantLongVariableSet}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createAlternativeConstantLongVariableSetAdapter() {
-		if (alternativeConstantLongVariableSetItemProvider == null) {
-			alternativeConstantLongVariableSetItemProvider = new AlternativeConstantLongVariableSetItemProvider(this);
-		}
-
-		return alternativeConstantLongVariableSetItemProvider;
-	}
-
-	/**
-	 * This returns the root adapter factory that contains this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ComposeableAdapterFactory getRootAdapterFactory() {
-		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
-	}
-
-	/**
-	 * This sets the composed adapter factory that contains this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
-		this.parentAdapterFactory = parentAdapterFactory;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean isFactoryForType(Object type) {
-		return supportedTypes.contains(type) || super.isFactoryForType(type);
-	}
-
-	/**
-	 * This implementation substitutes the factory itself as the key for the adapter.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter adapt(Notifier notifier, Object type) {
-		return super.adapt(notifier, this);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object adapt(Object object, Object type) {
-		if (isFactoryForType(type)) {
-			Object adapter = super.adapt(object, type);
-			if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
-				return adapter;
-			}
-		}
-
-		return null;
-	}
-
-	/**
-	 * This adds a listener.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void addListener(INotifyChangedListener notifyChangedListener) {
-		changeNotifier.addListener(notifyChangedListener);
-	}
-
-	/**
-	 * This removes a listener.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void removeListener(INotifyChangedListener notifyChangedListener) {
-		changeNotifier.removeListener(notifyChangedListener);
-	}
-
-	/**
-	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void fireNotifyChanged(Notification notification) {
-		changeNotifier.fireNotifyChanged(notification);
-
-		if (parentAdapterFactory != null) {
-			parentAdapterFactory.fireNotifyChanged(notification);
-		}
-	}
-
-	/**
-	 * This disposes all of the item providers created by this factory. 
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void dispose() {
-		if (adaptationPointsItemProvider != null) adaptationPointsItemProvider.dispose();
-		if (adaptationRepositoriesItemProvider != null) adaptationRepositoriesItemProvider.dispose();
-		if (adaptableNodeItemProvider != null) adaptableNodeItemProvider.dispose();
-		if (adaptableLinkItemProvider != null) adaptableLinkItemProvider.dispose();
-		if (adaptableLinkPerformanceItemProvider != null) adaptableLinkPerformanceItemProvider.dispose();
-		if (adaptableEndPerformanceItemProvider != null) adaptableEndPerformanceItemProvider.dispose();
-		if (adaptableIntermediatePerformanceItemProvider != null) adaptableIntermediatePerformanceItemProvider.dispose();
-		if (adaptableSdnNodePerformanceItemProvider != null) adaptableSdnNodePerformanceItemProvider.dispose();
-		if (adaptableNetworkInterfaceItemProvider != null) adaptableNetworkInterfaceItemProvider.dispose();
-		if (adaptableNetworkInterfacePerformanceItemProvider != null) adaptableNetworkInterfacePerformanceItemProvider.dispose();
-		if (adaptationGroupsItemProvider != null) adaptationGroupsItemProvider.dispose();
-		if (nodeAdaptationGroupItemProvider != null) nodeAdaptationGroupItemProvider.dispose();
-		if (linkAdaptationGroupItemProvider != null) linkAdaptationGroupItemProvider.dispose();
-		if (alternativeVariableSetItemProvider != null) alternativeVariableSetItemProvider.dispose();
-		if (alternativeConstantLongVariableSetItemProvider != null) alternativeConstantLongVariableSetItemProvider.dispose();
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/Dnimm3apEditPlugin.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/Dnimm3apEditPlugin.java
deleted file mode 100644
index 22c614de..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/Dnimm3apEditPlugin.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-import org.eclipse.emf.common.EMFPlugin;
-
-import org.eclipse.emf.common.ui.EclipseUIPlugin;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import tools.descartes.dni.dnimm3.provider.Dnimm3EditPlugin;
-
-/**
- * This is the central singleton for the Dnimm3ap editor plugin.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public final class Dnimm3apEditPlugin extends EMFPlugin {
-	/**
-	 * Keep track of the singleton.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final Dnimm3apEditPlugin INSTANCE = new Dnimm3apEditPlugin();
-	
-	/**
-	 * Keep track of the singleton.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static Implementation plugin;
-
-	/**
-	 * Create the instance.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Dnimm3apEditPlugin() {
-		super
-			(new ResourceLocator [] {
-				Dnimm3EditPlugin.INSTANCE,
-			});
-	}
-
-	/**
-	 * Returns the singleton instance of the Eclipse plugin.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the singleton instance.
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getPluginResourceLocator() {
-		return plugin;
-	}
-	
-	/**
-	 * Returns the singleton instance of the Eclipse plugin.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the singleton instance.
-	 * @generated
-	 */
-	public static Implementation getPlugin() {
-		return plugin;
-	}
-	
-	/**
-	 * The actual implementation of the Eclipse <b>Plugin</b>.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static class Implementation extends EclipseUIPlugin {
-		/**
-		 * Creates an instance.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public Implementation() {
-			super();
-	
-			// Remember the static instance.
-			//
-			plugin = this;
-		}
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/LinkAdaptationGroupItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/LinkAdaptationGroupItemProvider.java
deleted file mode 100644
index f0c0cac0..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/LinkAdaptationGroupItemProvider.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-import tools.descartes.dni.dnimm3ap.LinkAdaptationGroup;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.LinkAdaptationGroup} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class LinkAdaptationGroupItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LinkAdaptationGroupItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addUidPropertyDescriptor(object);
-			addUid_generatedPropertyDescriptor(object);
-			addItemsPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUidPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid generated feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUid_generatedPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_generated_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_generated_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID_GENERATED,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Items feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addItemsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_LinkAdaptationGroup_items_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_LinkAdaptationGroup_items_feature", "_UI_LinkAdaptationGroup_type"),
-				 DNIAPPackage.Literals.LINK_ADAPTATION_GROUP__ITEMS,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns LinkAdaptationGroup.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/LinkAdaptationGroup"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((LinkAdaptationGroup)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_LinkAdaptationGroup_type") :
-			getString("_UI_LinkAdaptationGroup_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(LinkAdaptationGroup.class)) {
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__NAME:
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__DESCRIPTION:
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__UID:
-			case DNIAPPackage.LINK_ADAPTATION_GROUP__UID_GENERATED:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/NodeAdaptationGroupItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/NodeAdaptationGroupItemProvider.java
deleted file mode 100644
index c8c77054..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/NodeAdaptationGroupItemProvider.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-import tools.descartes.dni.dnimm3ap.NodeAdaptationGroup;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.NodeAdaptationGroup} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class NodeAdaptationGroupItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NodeAdaptationGroupItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addUidPropertyDescriptor(object);
-			addUid_generatedPropertyDescriptor(object);
-			addItemsPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUidPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid generated feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUid_generatedPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_generated_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_generated_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID_GENERATED,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Items feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addItemsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NodeAdaptationGroup_items_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NodeAdaptationGroup_items_feature", "_UI_NodeAdaptationGroup_type"),
-				 DNIAPPackage.Literals.NODE_ADAPTATION_GROUP__ITEMS,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns NodeAdaptationGroup.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/NodeAdaptationGroup"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((NodeAdaptationGroup)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_NodeAdaptationGroup_type") :
-			getString("_UI_NodeAdaptationGroup_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(NodeAdaptationGroup.class)) {
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__NAME:
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__DESCRIPTION:
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__UID:
-			case DNIAPPackage.NODE_ADAPTATION_GROUP__UID_GENERATED:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/tools/DNIAPParser.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/tools/DNIAPParser.java
deleted file mode 100644
index 1f8bcd31..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/tools/DNIAPParser.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package tools.descartes.dni.dnimm3ap.tools;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.util.Collections;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
-
-import tools.descartes.dni.dnimm3ap.AdaptationPoints;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-import tools.descartes.dni.dnimm3ap.impl.AdaptationPointsImpl;
-
-public class DNIAPParser {
-
-	private DNIAPParser() {
-	}
-
-	public static AdaptationPointsImpl convertToModel(File file) {
-		ResourceSet resourceSet = new ResourceSetImpl();
-		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap()
-				.put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl());
-		resourceSet.getPackageRegistry().put(DNIAPPackage.eNS_URI, DNIAPPackage.eINSTANCE);
-		Resource resource = resourceSet.getResource(URI.createFileURI(file.getAbsolutePath()), true);
-		return (AdaptationPointsImpl) resource.getContents().get(0);
-	}
-
-	public static AdaptationPointsImpl convertToModel(byte[] data) throws IOException {
-		ResourceSet resourceSet = new ResourceSetImpl();
-		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap()
-				.put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl());
-		resourceSet.getPackageRegistry().put(DNIAPPackage.eNS_URI, DNIAPPackage.eINSTANCE);
-		Resource resource = resourceSet.createResource(URI.createURI(""));
-		resource.load(new ByteArrayInputStream(data), Collections.EMPTY_MAP);
-		return (AdaptationPointsImpl) resource.getContents().get(0);
-	}
-
-	public static byte[] convertToByteArray(AdaptationPoints adaptationPoints) throws IOException {
-		ResourceSet resourceSet = new ResourceSetImpl();
-		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap()
-				.put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl());
-		resourceSet.getPackageRegistry().put(DNIAPPackage.eNS_URI, DNIAPPackage.eINSTANCE);
-		Resource resource = resourceSet.createResource(URI.createURI(""));
-		resource.getContents().add(adaptationPoints);
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
-		resource.save(baos, Collections.EMPTY_MAP);
-		return baos.toByteArray();
-	}
-
-	public static void writeToFile(AdaptationPoints adaptationPoints, File file) throws IOException {
-		ResourceSet resourceSet = new ResourceSetImpl();
-		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap()
-				.put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl());
-		resourceSet.getPackageRegistry().put(DNIAPPackage.eNS_URI, DNIAPPackage.eINSTANCE);
-		Resource resource = resourceSet.createResource(URI.createFileURI(file.getAbsolutePath()));
-		resource.getContents().add(DNIAPUtil.cloneModel(adaptationPoints));
-		resource.save(Collections.EMPTY_MAP);
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/tools/DNIAPUtil.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/tools/DNIAPUtil.java
deleted file mode 100644
index fafaaaf3..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/tools/DNIAPUtil.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package tools.descartes.dni.dnimm3ap.tools;
-
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-import tools.descartes.dni.dnimm3ap.AdaptationPoints;
-import tools.descartes.dni.dnimm3ap.impl.AdaptationPointsImpl;
-
-public class DNIAPUtil {
-
-	private DNIAPUtil() {
-	}
-
-	public static AdaptationPointsImpl cloneModel(AdaptationPoints adaptationPoints) {
-		return (AdaptationPointsImpl) EcoreUtil.copy(adaptationPoints);
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/util/DNIAPAdapterFactory.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/util/DNIAPAdapterFactory.java
deleted file mode 100644
index 19b28a8f..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/util/DNIAPAdapterFactory.java
+++ /dev/null
@@ -1,520 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.util;
-
-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 tools.descartes.dni.dnimm3.ITypedEntity;
-import tools.descartes.dni.dnimm3.Identifier;
-import tools.descartes.dni.dnimm3.NamedElement;
-
-import tools.descartes.dni.dnimm3ap.*;
-
-/**
- * <!-- 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 tools.descartes.dni.dnimm3ap.DNIAPPackage
- * @generated
- */
-public class DNIAPAdapterFactory extends AdapterFactoryImpl {
-	/**
-	 * The cached model package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected static DNIAPPackage modelPackage;
-
-	/**
-	 * Creates an instance of the adapter factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DNIAPAdapterFactory() {
-		if (modelPackage == null) {
-			modelPackage = DNIAPPackage.eINSTANCE;
-		}
-	}
-
-	/**
-	 * Returns whether this factory is applicable for the type of the object.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
-	 * <!-- end-user-doc -->
-	 * @return whether this factory is applicable for the type of the object.
-	 * @generated
-	 */
-	@Override
-	public boolean isFactoryForType(Object object) {
-		if (object == modelPackage) {
-			return true;
-		}
-		if (object instanceof EObject) {
-			return ((EObject)object).eClass().getEPackage() == modelPackage;
-		}
-		return false;
-	}
-
-	/**
-	 * The switch that delegates to the <code>createXXX</code> methods.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected DNIAPSwitch<Adapter> modelSwitch =
-		new DNIAPSwitch<Adapter>() {
-			@Override
-			public Adapter caseAdaptationPoints(AdaptationPoints object) {
-				return createAdaptationPointsAdapter();
-			}
-			@Override
-			public Adapter caseAdaptationRepositories(AdaptationRepositories object) {
-				return createAdaptationRepositoriesAdapter();
-			}
-			@Override
-			public <T extends ITypedEntity> Adapter caseIAdaptableEntity(IAdaptableEntity<T> object) {
-				return createIAdaptableEntityAdapter();
-			}
-			@Override
-			public Adapter caseIAdaptableGroupableEntity(IAdaptableGroupableEntity object) {
-				return createIAdaptableGroupableEntityAdapter();
-			}
-			@Override
-			public Adapter caseAdaptableNode(AdaptableNode object) {
-				return createAdaptableNodeAdapter();
-			}
-			@Override
-			public Adapter caseAdaptableLink(AdaptableLink object) {
-				return createAdaptableLinkAdapter();
-			}
-			@Override
-			public Adapter caseAdaptableLinkPerformance(AdaptableLinkPerformance object) {
-				return createAdaptableLinkPerformanceAdapter();
-			}
-			@Override
-			public Adapter caseAdaptableEndPerformance(AdaptableEndPerformance object) {
-				return createAdaptableEndPerformanceAdapter();
-			}
-			@Override
-			public Adapter caseAdaptableIntermediatePerformance(AdaptableIntermediatePerformance object) {
-				return createAdaptableIntermediatePerformanceAdapter();
-			}
-			@Override
-			public Adapter caseAdaptableSdnNodePerformance(AdaptableSdnNodePerformance object) {
-				return createAdaptableSdnNodePerformanceAdapter();
-			}
-			@Override
-			public Adapter caseAdaptableNetworkInterface(AdaptableNetworkInterface object) {
-				return createAdaptableNetworkInterfaceAdapter();
-			}
-			@Override
-			public Adapter caseAdaptableNetworkInterfacePerformance(AdaptableNetworkInterfacePerformance object) {
-				return createAdaptableNetworkInterfacePerformanceAdapter();
-			}
-			@Override
-			public Adapter caseAdaptationGroups(AdaptationGroups object) {
-				return createAdaptationGroupsAdapter();
-			}
-			@Override
-			public Adapter caseIAdaptationGroup(IAdaptationGroup object) {
-				return createIAdaptationGroupAdapter();
-			}
-			@Override
-			public Adapter caseNodeAdaptationGroup(NodeAdaptationGroup object) {
-				return createNodeAdaptationGroupAdapter();
-			}
-			@Override
-			public Adapter caseLinkAdaptationGroup(LinkAdaptationGroup object) {
-				return createLinkAdaptationGroupAdapter();
-			}
-			@Override
-			public <P> Adapter caseAlternativeParameterSet(AlternativeParameterSet<P> object) {
-				return createAlternativeParameterSetAdapter();
-			}
-			@Override
-			public Adapter caseAlternativeVariable(AlternativeVariable object) {
-				return createAlternativeVariableAdapter();
-			}
-			@Override
-			public Adapter caseAlternativeVariableSet(AlternativeVariableSet object) {
-				return createAlternativeVariableSetAdapter();
-			}
-			@Override
-			public Adapter caseAlternativeConstantLong(AlternativeConstantLong object) {
-				return createAlternativeConstantLongAdapter();
-			}
-			@Override
-			public Adapter caseAlternativeConstantLongVariableSet(AlternativeConstantLongVariableSet object) {
-				return createAlternativeConstantLongVariableSetAdapter();
-			}
-			@Override
-			public Adapter caseNamedElement(NamedElement object) {
-				return createNamedElementAdapter();
-			}
-			@Override
-			public Adapter caseIdentifier(Identifier object) {
-				return createIdentifierAdapter();
-			}
-			@Override
-			public Adapter defaultCase(EObject object) {
-				return createEObjectAdapter();
-			}
-		};
-
-	/**
-	 * Creates an adapter for the <code>target</code>.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param target the object to adapt.
-	 * @return the adapter for the <code>target</code>.
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdapter(Notifier target) {
-		return modelSwitch.doSwitch((EObject)target);
-	}
-
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AdaptationPoints <em>Adaptation Points</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 tools.descartes.dni.dnimm3ap.AdaptationPoints
-	 * @generated
-	 */
-	public Adapter createAdaptationPointsAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories <em>Adaptation Repositories</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 tools.descartes.dni.dnimm3ap.AdaptationRepositories
-	 * @generated
-	 */
-	public Adapter createAdaptationRepositoriesAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.IAdaptableEntity <em>IAdaptable 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 tools.descartes.dni.dnimm3ap.IAdaptableEntity
-	 * @generated
-	 */
-	public Adapter createIAdaptableEntityAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.IAdaptableGroupableEntity <em>IAdaptable Groupable 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 tools.descartes.dni.dnimm3ap.IAdaptableGroupableEntity
-	 * @generated
-	 */
-	public Adapter createIAdaptableGroupableEntityAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AdaptableNode <em>Adaptable Node</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 tools.descartes.dni.dnimm3ap.AdaptableNode
-	 * @generated
-	 */
-	public Adapter createAdaptableNodeAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AdaptableLink <em>Adaptable Link</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 tools.descartes.dni.dnimm3ap.AdaptableLink
-	 * @generated
-	 */
-	public Adapter createAdaptableLinkAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance <em>Adaptable Link Performance</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 tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance
-	 * @generated
-	 */
-	public Adapter createAdaptableLinkPerformanceAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AdaptableEndPerformance <em>Adaptable End Performance</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 tools.descartes.dni.dnimm3ap.AdaptableEndPerformance
-	 * @generated
-	 */
-	public Adapter createAdaptableEndPerformanceAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance <em>Adaptable Intermediate Performance</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 tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance
-	 * @generated
-	 */
-	public Adapter createAdaptableIntermediatePerformanceAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance <em>Adaptable Sdn Node Performance</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 tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance
-	 * @generated
-	 */
-	public Adapter createAdaptableSdnNodePerformanceAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface <em>Adaptable Network Interface</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 tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface
-	 * @generated
-	 */
-	public Adapter createAdaptableNetworkInterfaceAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance <em>Adaptable Network Interface Performance</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 tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance
-	 * @generated
-	 */
-	public Adapter createAdaptableNetworkInterfacePerformanceAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AdaptationGroups <em>Adaptation Groups</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 tools.descartes.dni.dnimm3ap.AdaptationGroups
-	 * @generated
-	 */
-	public Adapter createAdaptationGroupsAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.IAdaptationGroup <em>IAdaptation Group</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 tools.descartes.dni.dnimm3ap.IAdaptationGroup
-	 * @generated
-	 */
-	public Adapter createIAdaptationGroupAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.NodeAdaptationGroup <em>Node Adaptation Group</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 tools.descartes.dni.dnimm3ap.NodeAdaptationGroup
-	 * @generated
-	 */
-	public Adapter createNodeAdaptationGroupAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.LinkAdaptationGroup <em>Link Adaptation Group</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 tools.descartes.dni.dnimm3ap.LinkAdaptationGroup
-	 * @generated
-	 */
-	public Adapter createLinkAdaptationGroupAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AlternativeParameterSet <em>Alternative Parameter Set</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 tools.descartes.dni.dnimm3ap.AlternativeParameterSet
-	 * @generated
-	 */
-	public Adapter createAlternativeParameterSetAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AlternativeVariable <em>Alternative Variable</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 tools.descartes.dni.dnimm3ap.AlternativeVariable
-	 * @generated
-	 */
-	public Adapter createAlternativeVariableAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AlternativeVariableSet <em>Alternative Variable Set</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 tools.descartes.dni.dnimm3ap.AlternativeVariableSet
-	 * @generated
-	 */
-	public Adapter createAlternativeVariableSetAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AlternativeConstantLong <em>Alternative Constant Long</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 tools.descartes.dni.dnimm3ap.AlternativeConstantLong
-	 * @generated
-	 */
-	public Adapter createAlternativeConstantLongAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AlternativeConstantLongVariableSet <em>Alternative Constant Long Variable Set</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 tools.descartes.dni.dnimm3ap.AlternativeConstantLongVariableSet
-	 * @generated
-	 */
-	public Adapter createAlternativeConstantLongVariableSetAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.NamedElement <em>Named Element</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 tools.descartes.dni.dnimm3.NamedElement
-	 * @generated
-	 */
-	public Adapter createNamedElementAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.Identifier <em>Identifier</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 tools.descartes.dni.dnimm3.Identifier
-	 * @generated
-	 */
-	public Adapter createIdentifierAdapter() {
-		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;
-	}
-
-} //DNIAPAdapterFactory
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/util/DNIAPSwitch.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/util/DNIAPSwitch.java
deleted file mode 100644
index 9764434f..00000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/util/DNIAPSwitch.java
+++ /dev/null
@@ -1,586 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.util;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-
-import org.eclipse.emf.ecore.util.Switch;
-
-import tools.descartes.dni.dnimm3.ITypedEntity;
-import tools.descartes.dni.dnimm3.Identifier;
-import tools.descartes.dni.dnimm3.NamedElement;
-
-import tools.descartes.dni.dnimm3ap.*;
-
-/**
- * <!-- 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 tools.descartes.dni.dnimm3ap.DNIAPPackage
- * @generated
- */
-public class DNIAPSwitch<T1> extends Switch<T1> {
-	/**
-	 * The cached model package
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected static DNIAPPackage modelPackage;
-
-	/**
-	 * Creates an instance of the switch.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DNIAPSwitch() {
-		if (modelPackage == null) {
-			modelPackage = DNIAPPackage.eINSTANCE;
-		}
-	}
-
-	/**
-	 * Checks whether this is a switch for the given package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param ePackage the package in question.
-	 * @return whether this is a switch for the given package.
-	 * @generated
-	 */
-	@Override
-	protected boolean isSwitchFor(EPackage ePackage) {
-		return ePackage == modelPackage;
-	}
-
-	/**
-	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the first non-null result returned by a <code>caseXXX</code> call.
-	 * @generated
-	 */
-	@Override
-	protected T1 doSwitch(int classifierID, EObject theEObject) {
-		switch (classifierID) {
-			case DNIAPPackage.ADAPTATION_POINTS: {
-				AdaptationPoints adaptationPoints = (AdaptationPoints)theEObject;
-				T1 result = caseAdaptationPoints(adaptationPoints);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ADAPTATION_REPOSITORIES: {
-				AdaptationRepositories adaptationRepositories = (AdaptationRepositories)theEObject;
-				T1 result = caseAdaptationRepositories(adaptationRepositories);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.IADAPTABLE_ENTITY: {
-				IAdaptableEntity<?> iAdaptableEntity = (IAdaptableEntity<?>)theEObject;
-				T1 result = caseIAdaptableEntity(iAdaptableEntity);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.IADAPTABLE_GROUPABLE_ENTITY: {
-				IAdaptableGroupableEntity iAdaptableGroupableEntity = (IAdaptableGroupableEntity)theEObject;
-				T1 result = caseIAdaptableGroupableEntity(iAdaptableGroupableEntity);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ADAPTABLE_NODE: {
-				AdaptableNode adaptableNode = (AdaptableNode)theEObject;
-				T1 result = caseAdaptableNode(adaptableNode);
-				if (result == null) result = caseIAdaptableEntity(adaptableNode);
-				if (result == null) result = caseIAdaptableGroupableEntity(adaptableNode);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ADAPTABLE_LINK: {
-				AdaptableLink adaptableLink = (AdaptableLink)theEObject;
-				T1 result = caseAdaptableLink(adaptableLink);
-				if (result == null) result = caseIAdaptableEntity(adaptableLink);
-				if (result == null) result = caseIAdaptableGroupableEntity(adaptableLink);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE: {
-				AdaptableLinkPerformance adaptableLinkPerformance = (AdaptableLinkPerformance)theEObject;
-				T1 result = caseAdaptableLinkPerformance(adaptableLinkPerformance);
-				if (result == null) result = caseIAdaptableEntity(adaptableLinkPerformance);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE: {
-				AdaptableEndPerformance adaptableEndPerformance = (AdaptableEndPerformance)theEObject;
-				T1 result = caseAdaptableEndPerformance(adaptableEndPerformance);
-				if (result == null) result = caseIAdaptableEntity(adaptableEndPerformance);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE: {
-				AdaptableIntermediatePerformance adaptableIntermediatePerformance = (AdaptableIntermediatePerformance)theEObject;
-				T1 result = caseAdaptableIntermediatePerformance(adaptableIntermediatePerformance);
-				if (result == null) result = caseIAdaptableEntity(adaptableIntermediatePerformance);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE: {
-				AdaptableSdnNodePerformance adaptableSdnNodePerformance = (AdaptableSdnNodePerformance)theEObject;
-				T1 result = caseAdaptableSdnNodePerformance(adaptableSdnNodePerformance);
-				if (result == null) result = caseIAdaptableEntity(adaptableSdnNodePerformance);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE: {
-				AdaptableNetworkInterface adaptableNetworkInterface = (AdaptableNetworkInterface)theEObject;
-				T1 result = caseAdaptableNetworkInterface(adaptableNetworkInterface);
-				if (result == null) result = caseIAdaptableEntity(adaptableNetworkInterface);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE: {
-				AdaptableNetworkInterfacePerformance adaptableNetworkInterfacePerformance = (AdaptableNetworkInterfacePerformance)theEObject;
-				T1 result = caseAdaptableNetworkInterfacePerformance(adaptableNetworkInterfacePerformance);
-				if (result == null) result = caseIAdaptableEntity(adaptableNetworkInterfacePerformance);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ADAPTATION_GROUPS: {
-				AdaptationGroups adaptationGroups = (AdaptationGroups)theEObject;
-				T1 result = caseAdaptationGroups(adaptationGroups);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.IADAPTATION_GROUP: {
-				IAdaptationGroup iAdaptationGroup = (IAdaptationGroup)theEObject;
-				T1 result = caseIAdaptationGroup(iAdaptationGroup);
-				if (result == null) result = caseNamedElement(iAdaptationGroup);
-				if (result == null) result = caseIdentifier(iAdaptationGroup);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.NODE_ADAPTATION_GROUP: {
-				NodeAdaptationGroup nodeAdaptationGroup = (NodeAdaptationGroup)theEObject;
-				T1 result = caseNodeAdaptationGroup(nodeAdaptationGroup);
-				if (result == null) result = caseIAdaptationGroup(nodeAdaptationGroup);
-				if (result == null) result = caseNamedElement(nodeAdaptationGroup);
-				if (result == null) result = caseIdentifier(nodeAdaptationGroup);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.LINK_ADAPTATION_GROUP: {
-				LinkAdaptationGroup linkAdaptationGroup = (LinkAdaptationGroup)theEObject;
-				T1 result = caseLinkAdaptationGroup(linkAdaptationGroup);
-				if (result == null) result = caseIAdaptationGroup(linkAdaptationGroup);
-				if (result == null) result = caseNamedElement(linkAdaptationGroup);
-				if (result == null) result = caseIdentifier(linkAdaptationGroup);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ALTERNATIVE_PARAMETER_SET: {
-				AlternativeParameterSet<?> alternativeParameterSet = (AlternativeParameterSet<?>)theEObject;
-				T1 result = caseAlternativeParameterSet(alternativeParameterSet);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ALTERNATIVE_VARIABLE: {
-				AlternativeVariable alternativeVariable = (AlternativeVariable)theEObject;
-				T1 result = caseAlternativeVariable(alternativeVariable);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ALTERNATIVE_VARIABLE_SET: {
-				AlternativeVariableSet alternativeVariableSet = (AlternativeVariableSet)theEObject;
-				T1 result = caseAlternativeVariableSet(alternativeVariableSet);
-				if (result == null) result = caseAlternativeVariable(alternativeVariableSet);
-				if (result == null) result = caseAlternativeParameterSet(alternativeVariableSet);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ALTERNATIVE_CONSTANT_LONG: {
-				AlternativeConstantLong alternativeConstantLong = (AlternativeConstantLong)theEObject;
-				T1 result = caseAlternativeConstantLong(alternativeConstantLong);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ALTERNATIVE_CONSTANT_LONG_VARIABLE_SET: {
-				AlternativeConstantLongVariableSet alternativeConstantLongVariableSet = (AlternativeConstantLongVariableSet)theEObject;
-				T1 result = caseAlternativeConstantLongVariableSet(alternativeConstantLongVariableSet);
-				if (result == null) result = caseAlternativeConstantLong(alternativeConstantLongVariableSet);
-				if (result == null) result = caseAlternativeParameterSet(alternativeConstantLongVariableSet);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			default: return defaultCase(theEObject);
-		}
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Adaptation Points</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>Adaptation Points</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAdaptationPoints(AdaptationPoints object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Adaptation Repositories</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>Adaptation Repositories</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAdaptationRepositories(AdaptationRepositories object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>IAdaptable 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>IAdaptable Entity</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public <T extends ITypedEntity> T1 caseIAdaptableEntity(IAdaptableEntity<T> object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>IAdaptable Groupable 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>IAdaptable Groupable Entity</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseIAdaptableGroupableEntity(IAdaptableGroupableEntity object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Adaptable Node</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>Adaptable Node</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAdaptableNode(AdaptableNode object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Adaptable Link</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>Adaptable Link</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAdaptableLink(AdaptableLink object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Adaptable Link Performance</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>Adaptable Link Performance</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAdaptableLinkPerformance(AdaptableLinkPerformance object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Adaptable End Performance</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>Adaptable End Performance</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAdaptableEndPerformance(AdaptableEndPerformance object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Adaptable Intermediate Performance</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>Adaptable Intermediate Performance</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAdaptableIntermediatePerformance(AdaptableIntermediatePerformance object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Adaptable Sdn Node Performance</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>Adaptable Sdn Node Performance</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAdaptableSdnNodePerformance(AdaptableSdnNodePerformance object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Adaptable Network Interface</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>Adaptable Network Interface</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAdaptableNetworkInterface(AdaptableNetworkInterface object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Adaptable Network Interface Performance</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>Adaptable Network Interface Performance</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAdaptableNetworkInterfacePerformance(AdaptableNetworkInterfacePerformance object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Adaptation Groups</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>Adaptation Groups</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAdaptationGroups(AdaptationGroups object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>IAdaptation Group</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>IAdaptation Group</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseIAdaptationGroup(IAdaptationGroup object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Node Adaptation Group</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>Node Adaptation Group</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseNodeAdaptationGroup(NodeAdaptationGroup object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Link Adaptation Group</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>Link Adaptation Group</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseLinkAdaptationGroup(LinkAdaptationGroup object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Alternative Parameter Set</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>Alternative Parameter Set</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public <P> T1 caseAlternativeParameterSet(AlternativeParameterSet<P> object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Alternative Variable</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>Alternative Variable</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAlternativeVariable(AlternativeVariable object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Alternative Variable Set</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>Alternative Variable Set</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAlternativeVariableSet(AlternativeVariableSet object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Alternative Constant Long</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>Alternative Constant Long</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAlternativeConstantLong(AlternativeConstantLong object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Alternative Constant Long Variable Set</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>Alternative Constant Long Variable Set</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAlternativeConstantLongVariableSet(AlternativeConstantLongVariableSet object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Named Element</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>Named Element</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseNamedElement(NamedElement object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Identifier</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>Identifier</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseIdentifier(Identifier object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch, but this is the last case anyway.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
-	 * @generated
-	 */
-	@Override
-	public T1 defaultCase(EObject object) {
-		return null;
-	}
-
-} //DNIAPSwitch
diff --git a/tools.descartes.dni.core/META-INF/MANIFEST.MF b/tools.descartes.dni.core/META-INF/MANIFEST.MF
index c55d481f..4741f689 100644
--- a/tools.descartes.dni.core/META-INF/MANIFEST.MF
+++ b/tools.descartes.dni.core/META-INF/MANIFEST.MF
@@ -4,14 +4,11 @@ Bundle-Name: %pluginName
 Bundle-SymbolicName: tools.descartes.dni.core;singleton:=true
 Bundle-Version: 0.1.0.qualifier
 Bundle-ClassPath: .
-Bundle-Activator: tools.descartes.dni.dnimm3.provider.Dnimm3EditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: tools.descartes.dni.dnimm3,
  tools.descartes.dni.dnimm3.impl,
- tools.descartes.dni.dnimm3.presentation,
- tools.descartes.dni.dnimm3.provider,
  tools.descartes.dni.dnimm3.util
 Require-Bundle: org.eclipse.emf.ecore;visibility:=reexport,
  org.eclipse.xtext.xbase.lib,
diff --git a/tools.descartes.dni.core/build.properties b/tools.descartes.dni.core/build.properties
index 4465407f..697ca964 100644
--- a/tools.descartes.dni.core/build.properties
+++ b/tools.descartes.dni.core/build.properties
@@ -6,5 +6,5 @@ bin.includes = .,\
                plugin.xml,\
                plugin.properties
 jars.compile.order = .
-source.. = src/
+source.. = src-gen/
 output.. = bin/
diff --git a/tools.descartes.dni.core/model/DNIMM3.xcore b/tools.descartes.dni.core/model/DNIMM3.xcore
index 39440a71..25e7c504 100644
--- a/tools.descartes.dni.core/model/DNIMM3.xcore
+++ b/tools.descartes.dni.core/model/DNIMM3.xcore
@@ -2,8 +2,7 @@
 @Ecore(invocationDelegates="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot",
 	settingDelegates="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot",
 	validationDelegates="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot")
-@GenModel(modelDirectory="/tools.descartes.dni.core/src", editDirectory="/tools.descartes.dni.core/src",
-	editorDirectory="/tools.descartes.dni.core/src", fileExtensions="dni", prefix="DNI", suppressEMFTypes="true")
+@GenModel(fileExtensions="dni", prefix="DNI", suppressEMFTypes="true")
 package tools.descartes.dni.dnimm3
 
 import org.eclipse.emf.ecore.util.EcoreUtil
diff --git a/tools.descartes.dni.core/model/Example-SPECjEnterprise2010_6.xmi b/tools.descartes.dni.core/model/Example-SPECjEnterprise2010_6.xmi
deleted file mode 100644
index c861364e..00000000
--- a/tools.descartes.dni.core/model/Example-SPECjEnterprise2010_6.xmi
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<dnimm4:NetworkInfrastructure
-    xmi:version="2.0"
-    xmlns:xmi="http://www.omg.org/XMI"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:dnimm4="http://www.example.org/dnimm4"
-    xsi:schemaLocation="http://www.example.org/dnimm4 Dnimm4.xcore#/EPackage">
-  <traffic/>
-  <structure>
-    <nodes description="has bubble"
-        name="Node1">
-      <sdntype
-          xsi:type="dnimm4:Common"/>
-      <end name=""/>
-    </nodes>
-  </structure>
-  <configuration>
-    <protocolsAndStacks>
-      <stacks
-          name="Stack TCP/IP"
-          uid="_phtqoNpYEeWsocseSOqICQ">
-        <layers
-            name="Layer TCP"
-            uid="_prPaENpYEeWsocseSOqICQ"
-            protocol="//@configuration/@protocolsAndStacks/@protocols.1"/>
-        <layers
-            name="Layer IP"
-            uid="_sDqC8NpYEeWsocseSOqICQ"
-            protocol="//@configuration/@protocolsAndStacks/@protocols.0"/>
-      </stacks>
-      <protocols
-          name="IP"/>
-      <protocols
-          name="TCP"/>
-    </protocolsAndStacks>
-    <routes/>
-  </configuration>
-</dnimm4:NetworkInfrastructure>
diff --git a/tools.descartes.dni.core/model/output.genmodel b/tools.descartes.dni.core/model/output.genmodel
deleted file mode 100644
index bd3b90e4..00000000
--- a/tools.descartes.dni.core/model/output.genmodel
+++ /dev/null
@@ -1,283 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
-    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/dnimm3/src" editDirectory="/dnimm3.edit/src" editorDirectory="/dnimm3.editor/src"
-    modelPluginID="dnimm3" runtimeJar="true" modelName="Output" updateClasspath="false"
-    rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" testsDirectory=""
-    booleanFlagsField="eFlags" booleanFlagsReservedBits="8" importerID="org.eclipse.emf.importer.ecore"
-    containmentProxies="true" complianceLevel="8.0" language="en" usedGenPackages="../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore"
-    operationReflection="true" importOrganizing="true" decoration="Live" oSGiCompatible="true">
-  <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/exporter/org.eclipse.xsd.ecore.exporter">
-    <genAnnotations source="selectedPackages">
-      <details key="http://www.eclipse.org/emf/2002/Ecore" value="Ecore.xsd"/>
-    </genAnnotations>
-    <details key="directoryURI" value="."/>
-  </genAnnotations>
-  <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/exporter/org.eclipse.xsd.ecore.exporter.xmi">
-    <genAnnotations source="selectedPackages">
-      <details key="http://www.eclipse.org/emf/2002/Ecore" value="EcoreXMI.xsd"/>
-    </genAnnotations>
-    <details key="directoryURI" value="."/>
-  </genAnnotations>
-  <foreignModel>Dnimm3.xcore</foreignModel>
-  <modelPluginVariables>org.eclipse.xtext.xbase.lib</modelPluginVariables>
-  <modelPluginVariables>org.eclipse.emf.ecore.xcore.lib</modelPluginVariables>
-  <genPackages prefix="Dnimm3" disposableProviderFactory="true" ecorePackage="dnimm3.ecore#/">
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="dnimm3.ecore#//UnitPrefix">
-      <genEnumLiterals ecoreEnumLiteral="dnimm3.ecore#//UnitPrefix/none"/>
-      <genEnumLiterals ecoreEnumLiteral="dnimm3.ecore#//UnitPrefix/K"/>
-      <genEnumLiterals ecoreEnumLiteral="dnimm3.ecore#//UnitPrefix/M"/>
-      <genEnumLiterals ecoreEnumLiteral="dnimm3.ecore#//UnitPrefix/G"/>
-    </genEnums>
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="dnimm3.ecore#//Speed">
-      <genEnumLiterals ecoreEnumLiteral="dnimm3.ecore#//Speed/BytesPerSec"/>
-      <genEnumLiterals ecoreEnumLiteral="dnimm3.ecore#//Speed/bitsPerSec"/>
-      <genEnumLiterals ecoreEnumLiteral="dnimm3.ecore#//Speed/packetsPerSec"/>
-    </genEnums>
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="dnimm3.ecore#//Time">
-      <genEnumLiterals ecoreEnumLiteral="dnimm3.ecore#//Time/Seconds"/>
-      <genEnumLiterals ecoreEnumLiteral="dnimm3.ecore#//Time/Milliseconds"/>
-      <genEnumLiterals ecoreEnumLiteral="dnimm3.ecore#//Time/Microseconds"/>
-    </genEnums>
-    <genClasses image="false" ecoreClass="dnimm3.ecore#//NamedElement">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//NamedElement/description"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//NamedElement/name"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="dnimm3.ecore#//Identifier">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//Identifier/uid"/>
-      <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//Identifier/uid_generated"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="dnimm3.ecore#//Entity"/>
-    <genClasses ecoreClass="dnimm3.ecore#//NetworkInfrastructure">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//NetworkInfrastructure/traffic"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//NetworkInfrastructure/structure"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//NetworkInfrastructure/configuration"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//NetworkInfrastructure/dataCenterName"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//NetworkInfrastructure/metaModelVersion"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//NetworkStructure">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//NetworkStructure/nodes"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//NetworkStructure/links"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//Node">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Node/interfaces"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Node/sdntype"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//Node/isPhysical"/>
-      <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//Node/isPhysical_derived"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Node/hosts"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Node/isHostedOn"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Node/end"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Node/intermediate"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//End">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//End/performance"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//End/software"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//End/node"/>
-      <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//End/name"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//Intermediate">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Intermediate/performance"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Intermediate/node"/>
-      <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//Intermediate/name"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//Link">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Link/connects"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Link/performance"/>
-      <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//Link/name_generated"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//NetworkInterface">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//NetworkInterface/usedProtocolStack"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//NetworkInterface/performance"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//NetworkInterface/node"/>
-      <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//NetworkInterface/name_generated"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//NetworkTraffic">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//NetworkTraffic/flows"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//NetworkTraffic/software"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//Flow">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Flow/sourceSoftware"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Flow/generatedTraffic"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Flow/destinationSoftware"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Flow/destinationAddresses"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//SdnControlFlow">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//SdnControlFlow/parentFlow"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="dnimm3.ecore#//FlowTraffic">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//FlowTraffic/flow"/>
-      <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//FlowTraffic/name"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//GenericFlowTraffic">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//GenericFlowTraffic/dataSize"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//CommunicatingApplication">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//CommunicatingApplication/trafficSources"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//CommunicatingApplication/deployedOn"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//TrafficSource">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//TrafficSource/workload"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//TrafficSource/softwareComponent"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//NetworkConfiguration">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//NetworkConfiguration/protocolsAndStacks"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//NetworkConfiguration/routes"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//NetworkConfiguration/rules"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//ProtocolsRepository">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//ProtocolsRepository/stacks"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//ProtocolsRepository/protocols"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//ProtocolStack">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//ProtocolStack/layers"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//ProtocolLayer">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//ProtocolLayer/protocol"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//ProtocolLayer/isCarriedBy"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//ProtocolLayer/carries"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//NetworkProtocol">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//NetworkProtocol/mtu"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//NetworkProtocol/headersLength"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//RoutesRepository">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//RoutesRepository/routes"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//RoutesRepository/flowRoutes"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//RoutesRepository/directions"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//Direction">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Direction/onNode"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Direction/flow"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Direction/via"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//Direction/default"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//Direction/probability"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//FlowRoute">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//FlowRoute/hops"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//FlowRoute/flow"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//FlowRoute/start"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//FlowRoute/end"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//FlowRoute/probability"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//Route">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Route/hops"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Route/start"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Route/end"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//Hop">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Hop/nextHop"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Hop/interfaceref"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//EntityAddress">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//EntityAddress/address"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//EntityAddress/addressGivenBy"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="dnimm3.ecore#//AddressableEntity">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//AddressableEntity/addresses"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="dnimm3.ecore#//Workload"/>
-    <genClasses ecoreClass="dnimm3.ecore#//GenericWorkload">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//GenericWorkload/actions"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="dnimm3.ecore#//AbstractAction"/>
-    <genClasses ecoreClass="dnimm3.ecore#//BranchAction">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//BranchAction/intern"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//LoopAction">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//LoopAction/intern"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//LoopAction/numIterations"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//SequenceAction">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//SequenceAction/intern"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//StartAction"/>
-    <genClasses ecoreClass="dnimm3.ecore#//StopAction"/>
-    <genClasses ecoreClass="dnimm3.ecore#//TransmitAction">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//TransmitAction/flowTraffic"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//WaitAction">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//WaitAction/waitTime"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="dnimm3.ecore#//PerformanceSpecification"/>
-    <genClasses ecoreClass="dnimm3.ecore#//PerformanceLink">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//PerformanceLink/propagationDelay"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//PerformanceLink/maxSupportedBandwidth"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//PerformanceNetworkInterface">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//PerformanceNetworkInterface/isUp"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//PerformanceNetworkInterface/MTU"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//PerformanceNetworkInterface/packetProcessingTime"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//PerformanceNetworkInterface/interfaceThroughput"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//SdnFlowRule">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//SdnFlowRule/sdnSwitch"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//SdnFlowRule/flow"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//SdnFlowRule/probabilityHardware"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//SdnFlowRule/probabilitySoftware"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//SdnFlowRule/probabilityController"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//SdnFlowRule/controllerApplication"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//SdnController">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//SdnController/applications"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//SdnController/nodes"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//SdnControllerApplication">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//SdnControllerApplication/belongsTo"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//SdnControllerApplication/isDefault"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//SdnControllerApplication/responseDelay"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="dnimm3.ecore#//IType"/>
-    <genClasses ecoreClass="dnimm3.ecore#//Common"/>
-    <genClasses ecoreClass="dnimm3.ecore#//SDN">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//SDN/performance"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//SDN/controller"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dnimm3.ecore#//SDN/openFlowEndPoint"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//IntermediatePerformance">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//IntermediatePerformance/forwardingLatency"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//IntermediatePerformance/forwardingBandwidthBPS"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//IntermediatePerformance/switchingCapacityPPS"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//EndPerformance">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//EndPerformance/softwareLayersDelay"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//PerformanceSdnNode">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//PerformanceSdnNode/softwareSwitchingPerformance"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//PerformanceSdnNode/hardwareSwitchingPerformance"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="dnimm3.ecore#//DNIUnit"/>
-    <genClasses ecoreClass="dnimm3.ecore#//SpeedUnit">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//SpeedUnit/unit"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//SpeedUnit/prefix"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//DataUnit">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//DataUnit/prefix"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//TimeUnit">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//TimeUnit/unit"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="dnimm3.ecore#//Dependency">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//Dependency/unit"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="dnimm3.ecore#//Variable"/>
-    <genClasses image="false" ecoreClass="dnimm3.ecore#//Function"/>
-    <genClasses ecoreClass="dnimm3.ecore#//ConstantDoubleVariable">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//ConstantDoubleVariable/value"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//ConstantLongVariable">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//ConstantLongVariable/value"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//RandomVariable">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//RandomVariable/cdf"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//FloatCoordinate">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//FloatCoordinate/x"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//FloatCoordinate/y"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//DiscreteFunction">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dnimm3.ecore#//DiscreteFunction/vals"/>
-    </genClasses>
-    <genClasses ecoreClass="dnimm3.ecore#//ExponentialFunction">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dnimm3.ecore#//ExponentialFunction/lambda"/>
-    </genClasses>
-  </genPackages>
-</genmodel:GenModel>
diff --git a/tools.descartes.dni.core/plugin.xml b/tools.descartes.dni.core/plugin.xml
index 67d7e1b7..925203f6 100644
--- a/tools.descartes.dni.core/plugin.xml
+++ b/tools.descartes.dni.core/plugin.xml
@@ -5,54 +5,7 @@
 -->
 
 <plugin>
-   <extension point="org.eclipse.emf.ecore.generated_package">
-      <!-- @generated Dnimm3 -->
-      <package
-            uri="dnimm3/2016/07/07/1729"
-            class="tools.descartes.dni.core.CorePackage"
-            genModel="model/DNIMM3.xcore"/>
-   </extension>
 
-   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
-      <!-- @generated Dnimm3 -->
-      <factory
-            uri="dnimm3/2016/07/07/1729"
-            class="tools.descartes.dni.core.provider.CoreItemProviderAdapterFactory"
-            supportedTypes=
-              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
-               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
-               org.eclipse.emf.edit.provider.ITreeItemContentProvider
-               org.eclipse.emf.edit.provider.IItemLabelProvider
-               org.eclipse.emf.edit.provider.IItemPropertySource"/>
-   </extension>
-
-   <extension point="org.eclipse.ui.newWizards">
-      <!-- @generated Dnimm3 -->
-      <category
-            id="org.eclipse.emf.ecore.Wizard.category.ID"
-            name="%_UI_Wizard_category"/>
-      <wizard
-            id="tools.descartes.dni.core.presentation.CoreModelWizardID"
-            name="%_UI_CoreModelWizard_label"
-            class="tools.descartes.dni.core.presentation.CoreModelWizard"
-            category="org.eclipse.emf.ecore.Wizard.category.ID"
-            icon="icons/full/obj16/CoreModelFile.gif">
-         <description>%_UI_CoreModelWizard_description</description>
-         <selection class="org.eclipse.core.resources.IResource"/>
-      </wizard>
-   </extension>
-
-   <extension point="org.eclipse.ui.editors">
-      <!-- @generated Dnimm3 -->
-      <editor
-            id="tools.descartes.dni.core.presentation.CoreEditorID"
-            name="%_UI_CoreEditor_label"
-            icon="icons/full/obj16/CoreModelFile.gif"
-            extensions="core"
-            class="tools.descartes.dni.core.presentation.CoreEditor"
-            contributorClass="tools.descartes.dni.core.presentation.CoreActionBarContributor">
-      </editor>
-   </extension>
    <extension point="org.eclipse.emf.ecore.generated_package">
       <!-- @generated DNIMM3 -->
       <package
@@ -61,44 +14,4 @@
             genModel="model/DNIMM3.xcore"/>
    </extension>
 
-   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
-      <!-- @generated DNIMM3 -->
-      <factory
-            uri="http://descartes.tools/dni-core-metamodel-3.1"
-            class="tools.descartes.dni.dnimm3.provider.DNIItemProviderAdapterFactory"
-            supportedTypes=
-              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
-               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
-               org.eclipse.emf.edit.provider.ITreeItemContentProvider
-               org.eclipse.emf.edit.provider.IItemLabelProvider
-               org.eclipse.emf.edit.provider.IItemPropertySource"/>
-   </extension>
-
-   <extension point="org.eclipse.ui.newWizards">
-      <!-- @generated DNIMM3 -->
-      <category
-            id="org.eclipse.emf.ecore.Wizard.category.ID"
-            name="%_UI_Wizard_category"/>
-      <wizard
-            id="tools.descartes.dni.dnimm3.presentation.DNIModelWizardID"
-            name="%_UI_DNIModelWizard_label"
-            class="tools.descartes.dni.dnimm3.presentation.DNIModelWizard"
-            category="org.eclipse.emf.ecore.Wizard.category.ID"
-            icon="icons/full/obj16/DNIModelFile.gif">
-         <description>%_UI_DNIModelWizard_description</description>
-         <selection class="org.eclipse.core.resources.IResource"/>
-      </wizard>
-   </extension>
-
-   <extension point="org.eclipse.ui.editors">
-      <!-- @generated DNIMM3 -->
-      <editor
-            id="tools.descartes.dni.dnimm3.presentation.DNIEditorID"
-            name="%_UI_DNIEditor_label"
-            icon="icons/full/obj16/DNIModelFile.gif"
-            extensions="dni"
-            class="tools.descartes.dni.dnimm3.presentation.DNIEditor"
-            contributorClass="tools.descartes.dni.dnimm3.presentation.DNIActionBarContributor">
-      </editor>
-   </extension>
 </plugin>
diff --git a/tools.descartes.dni.core/pom.xml b/tools.descartes.dni.core/pom.xml
index 7fd900ba..242e46e9 100644
--- a/tools.descartes.dni.core/pom.xml
+++ b/tools.descartes.dni.core/pom.xml
@@ -5,6 +5,10 @@
 	<artifactId>core-metamodel</artifactId>
 	<version>3.1.0-SNAPSHOT</version>
 
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+	</properties>
+
 	<distributionManagement>
 		<repository>
 			<id>se-uw-nexus</id>
@@ -33,26 +37,118 @@
 	</repositories>
 
 	<build>
-		<sourceDirectory>src</sourceDirectory>
+
+		<sourceDirectory>src-gen</sourceDirectory>
 		<testSourceDirectory>src-test</testSourceDirectory>
+
 		<plugins>
 			<plugin>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<version>3.6.1</version>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-clean-plugin</artifactId>
+				<version>3.0.0</version>
 				<configuration>
-					<source />
-					<target />
-					<excludes>
-						<!-- Exclude Editor from compile -->
-						<exclude>tools/descartes/dni/dnimm3/presentation/*</exclude>
-					</excludes>
+					<filesets>
+						<fileset>
+							<directory>src-gen</directory>
+						</fileset>
+					</filesets>
 				</configuration>
 			</plugin>
 			<plugin>
-				<artifactId>maven-resources-plugin</artifactId>
-				<version>2.7</version>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>build-helper-maven-plugin</artifactId>
+				<version>3.0.0</version>
+				<executions>
+					<execution>
+						<goals>
+							<goal>add-source</goal>
+						</goals>
+						<configuration>
+							<sources>
+								<source>target/xtext-temp/stubs/</source>
+							</sources>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.eclipse.xtext</groupId>
+				<artifactId>xtext-maven-plugin</artifactId>
+				<version>2.10.0</version>
+				<executions>
+					<execution>
+						<goals>
+							<goal>generate</goal>
+						</goals>
+					</execution>
+				</executions>
+				<configuration>
+					<languages>
+						<language>
+							<setup>org.eclipse.xtext.ecore.EcoreSupport</setup>
+						</language>
+						<language>
+							<setup>org.eclipse.emf.codegen.ecore.xtext.GenModelSupport</setup>
+							<outputConfigurations>
+								<outputConfiguration>
+									<outputDirectory>${basedir}/xsemantics-gen3</outputDirectory>
+								</outputConfiguration>
+							</outputConfigurations>
+						</language>
+						<language>
+							<setup>org.eclipse.emf.ecore.xcore.XcoreStandaloneSetup</setup>
+							<outputConfigurations>
+								<outputConfiguration>
+									<outputDirectory>${basedir}/xsemantics-gen4</outputDirectory>
+								</outputConfiguration>
+							</outputConfigurations>
+						</language>
+					</languages>
+					<sourceRoots>
+						<root>${project.basedir}/model</root>
+					</sourceRoots>
+				</configuration>
+				<dependencies>
+					<dependency>
+						<groupId>org.osgi</groupId>
+						<artifactId>org.osgi.core</artifactId>
+						<version>4.3.1</version>
+					</dependency>
+					<dependency>
+						<groupId>org.eclipse.core</groupId>
+						<artifactId>org.eclipse.core.resources</artifactId>
+						<version>3.7.100</version>
+					</dependency>
+					<dependency>
+						<groupId>org.eclipse.text</groupId>
+						<artifactId>org.eclipse.text</artifactId>
+						<version>3.5.101</version>
+					</dependency>
+					<dependency>
+						<groupId>org.eclipse.emf</groupId>
+						<artifactId>org.eclipse.emf.codegen.ecore.xtext</artifactId>
+						<version>1.2.0</version>
+					</dependency>
+					<dependency>
+						<groupId>org.eclipse.emf</groupId>
+						<artifactId>org.eclipse.emf.ecore.xcore.lib</artifactId>
+						<version>1.1.100</version>
+					</dependency>
+					<dependency>
+						<groupId>org.eclipse.emf</groupId>
+						<artifactId>org.eclipse.emf.ecore.xcore</artifactId>
+						<version>1.3.1</version>
+					</dependency>
+				</dependencies>
 			</plugin>
 		</plugins>
+
+		<resources>
+			<resource>
+				<directory>model</directory>
+			</resource>
+		</resources>
+
 	</build>
 
 	<dependencies>
@@ -66,36 +162,15 @@
 			<artifactId>org.eclipse.emf.ecore</artifactId>
 			<version>2.12.0</version>
 		</dependency>
-		<dependency>
-			<groupId>org.eclipse.emf</groupId>
-			<artifactId>org.eclipse.emf.ecore.xmi</artifactId>
-			<version>2.12.0</version>
-		</dependency>
 		<dependency>
 			<groupId>org.eclipse.emf</groupId>
 			<artifactId>org.eclipse.emf.ecore.xcore.lib</artifactId>
 			<version>1.1.100</version>
 		</dependency>
 		<dependency>
-			<groupId>org.eclipse.emf</groupId>
-			<artifactId>edit</artifactId>
-			<version>2.3.0-v200706262000</version>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.emf.common</groupId>
-			<artifactId>ui</artifactId>
-			<version>2.3.0-v200706262000</version>
-		</dependency>
-		<dependency>
-			<groupId>com.google.guava</groupId>
-			<artifactId>guava</artifactId>
-			<version>15.0</version>
-		</dependency>
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>4.12</version>
-			<scope>test</scope>
+			<groupId>org.eclipse.xtext</groupId>
+			<artifactId>org.eclipse.xtext.xbase.lib</artifactId>
+			<version>2.12.0</version>
 		</dependency>
 	</dependencies>
 
diff --git a/tools.descartes.dni.core/resources-test/scenario0A.dni b/tools.descartes.dni.core/resources-test/scenario0A.dni
deleted file mode 100644
index 181c02c7..00000000
--- a/tools.descartes.dni.core/resources-test/scenario0A.dni
+++ /dev/null
@@ -1,222 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<dnimm3:NetworkInfrastructure xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dnimm3="http://descartes.tools/dni-core-metamodel-3.1" xmi:id="_YRLUIOlEEeWVGvgYicTWCQ" dataCenterName="ntwrk_infr">
-  <traffic xmi:id="_YRLUIelEEeWVGvgYicTWCQ">
-    <flows xmi:id="_GzM58ERgEeafFpwgYSzDXA" name="Traffic_send" sourceSoftware="_P7pXEEReEeafFpwgYSzDXA" destinationSoftware="_PmoJUEReEeafFpwgYSzDXA">
-      <generatedTraffic xsi:type="dnimm3:GenericFlowTraffic" xmi:id="_GzM58URgEeafFpwgYSzDXA">
-        <dataSize xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_GzM58kRgEeafFpwgYSzDXA" value="100.0">
-          <unit xsi:type="dnimm3:DataUnit" xmi:id="_GzM580RgEeafFpwgYSzDXA" prefix="M"/>
-        </dataSize>
-      </generatedTraffic>
-    </flows>
-    <software xmi:id="_PmoJUEReEeafFpwgYSzDXA" name="Requester" deployedOn="_d4soIERbEeafFpwgYSzDXA"/>
-    <software xmi:id="_P7pXEEReEeafFpwgYSzDXA" name="Sender" deployedOn="_2prOc0RbEeafFpwgYSzDXA">
-      <trafficSources xmi:id="_3OkHYERfEeafFpwgYSzDXA" name="ts_send">
-        <workload xsi:type="dnimm3:GenericWorkload" xmi:id="_7wGY4ERfEeafFpwgYSzDXA">
-          <actions xsi:type="dnimm3:StartAction" xmi:id="_-MeUsERfEeafFpwgYSzDXA"/>
-          <actions xsi:type="dnimm3:WaitAction" xmi:id="__-YXMERfEeafFpwgYSzDXA">
-            <waitTime xsi:type="dnimm3:ConstantLongVariable" xmi:id="_BUvGIERgEeafFpwgYSzDXA" value="20">
-              <unit xsi:type="dnimm3:TimeUnit" xmi:id="_D4rpkERgEeafFpwgYSzDXA" unit="ms"/>
-            </waitTime>
-          </actions>
-          <actions xsi:type="dnimm3:LoopAction" xmi:id="_TWrBkERgEeafFpwgYSzDXA">
-            <intern xsi:type="dnimm3:SequenceAction" xmi:id="_dX09cERgEeafFpwgYSzDXA">
-              <intern xsi:type="dnimm3:TransmitAction" xmi:id="_eFfUsERgEeafFpwgYSzDXA" flowTraffic="_GzM58URgEeafFpwgYSzDXA"/>
-              <intern xsi:type="dnimm3:WaitAction" xmi:id="_e86E4ERgEeafFpwgYSzDXA">
-                <waitTime xsi:type="dnimm3:ConstantLongVariable" xmi:id="_hwwFgERgEeafFpwgYSzDXA" value="2">
-                  <unit xsi:type="dnimm3:TimeUnit" xmi:id="_jLwD4ERgEeafFpwgYSzDXA"/>
-                </waitTime>
-              </intern>
-            </intern>
-            <numIterations xsi:type="dnimm3:ConstantLongVariable" xmi:id="_lKj58ERgEeafFpwgYSzDXA" value="100"/>
-          </actions>
-          <actions xsi:type="dnimm3:StopAction" xmi:id="_Q_RsYERgEeafFpwgYSzDXA"/>
-        </workload>
-      </trafficSources>
-    </software>
-  </traffic>
-  <structure xmi:id="_YRLUKOlEEeWVGvgYicTWCQ">
-    <nodes xmi:id="_I59kYERbEeafFpwgYSzDXA" name="C10">
-      <interfaces xmi:id="_l4UxIERbEeafFpwgYSzDXA" name="C10_i1" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_Celj8ElfEeaTI4FV-m29jw">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_Dd66AElfEeaTI4FV-m29jw" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_EtC_kElfEeaTI4FV-m29jw" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <sdntype xsi:type="dnimm3:Common" xmi:id="_mxxhoERbEeafFpwgYSzDXA"/>
-      <end xmi:id="_d4soIERbEeafFpwgYSzDXA" software="_PmoJUEReEeafFpwgYSzDXA"/>
-    </nodes>
-    <nodes xmi:id="_2prOcERbEeafFpwgYSzDXA" name="C39">
-      <interfaces xmi:id="_2prOcURbEeafFpwgYSzDXA" name="C39_i1" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_6jaTYE4PEeaBkM5VNV3dKg">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_6jaTYU4PEeaBkM5VNV3dKg" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_6jaTYk4PEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <sdntype xsi:type="dnimm3:Common" xmi:id="_2prOckRbEeafFpwgYSzDXA"/>
-      <end xmi:id="_2prOc0RbEeafFpwgYSzDXA" software="_P7pXEEReEeafFpwgYSzDXA"/>
-    </nodes>
-    <nodes xmi:id="_81U4YERbEeafFpwgYSzDXA" name="SW40">
-      <interfaces xmi:id="_81U4YURbEeafFpwgYSzDXA" name="SW40_i_C10" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_KE_7sElfEeaTI4FV-m29jw">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_KE_7sUlfEeaTI4FV-m29jw" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_KE_7sklfEeaTI4FV-m29jw" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <interfaces xmi:id="__7h0UERbEeafFpwgYSzDXA" name="SW40_i_SW00" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_-8IAEE4PEeaBkM5VNV3dKg">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_-8IAEU4PEeaBkM5VNV3dKg" value="10">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_-8IAEk4PEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <sdntype xsi:type="dnimm3:Common" xmi:id="_81U4YkRbEeafFpwgYSzDXA"/>
-      <intermediate xmi:id="_-CrC0E3_EeaBkM5VNV3dKg">
-        <performance xmi:id="_-YStgE3_EeaBkM5VNV3dKg">
-          <forwardingLatency xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_q4RS4GLZEea1es0BNrNkVA" value="5.0">
-            <unit xsi:type="dnimm3:TimeUnit" xmi:id="_r-YmYGLZEea1es0BNrNkVA" unit="us"/>
-          </forwardingLatency>
-          <forwardingBandwidthBPS xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_oTGGEE4BEeaBkM5VNV3dKg" value="128.0">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_qJK24E4BEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </forwardingBandwidthBPS>
-          <switchingCapacityPPS xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_J8kB8E4AEeaBkM5VNV3dKg" value="96.0">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_Lq7BME4AEeaBkM5VNV3dKg" unit="packetsPerSec" prefix="M"/>
-          </switchingCapacityPPS>
-        </performance>
-      </intermediate>
-    </nodes>
-    <nodes xmi:id="_C-3pgERcEeafFpwgYSzDXA" name="SW00">
-      <interfaces xmi:id="_C-3pgURcEeafFpwgYSzDXA" name="SW00_i_SW40" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_LTRFoElfEeaTI4FV-m29jw">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_LTRFoUlfEeaTI4FV-m29jw" value="40">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_LTRFoklfEeaTI4FV-m29jw" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <interfaces xmi:id="_C-3pgkRcEeafFpwgYSzDXA" name="SW00_i_C16" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_vczLUE4PEeaBkM5VNV3dKg">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_vczLUU4PEeaBkM5VNV3dKg" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_vczLUk4PEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <interfaces xmi:id="_GcqJkERdEeafFpwgYSzDXA" name="SW00_i_SW35" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_2sTe8E4PEeaBkM5VNV3dKg">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_2sTe8U4PEeaBkM5VNV3dKg" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_2sTe8k4PEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <sdntype xsi:type="dnimm3:Common" xmi:id="_C-3pg0RcEeafFpwgYSzDXA"/>
-      <intermediate xmi:id="_RnyZgE4GEeaBkM5VNV3dKg">
-        <performance xmi:id="_RnyZgU4GEeaBkM5VNV3dKg">
-          <forwardingLatency xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_A8Q5EGLbEea1es0BNrNkVA" value="1.5">
-            <unit xsi:type="dnimm3:TimeUnit" xmi:id="_ayAIAGLbEea1es0BNrNkVA" unit="us"/>
-          </forwardingLatency>
-          <forwardingBandwidthBPS xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_RnyZhE4GEeaBkM5VNV3dKg" value="960.0">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_RnyZhU4GEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </forwardingBandwidthBPS>
-          <switchingCapacityPPS xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_RnyZhk4GEeaBkM5VNV3dKg" value="714.2">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_RnyZh04GEeaBkM5VNV3dKg" unit="packetsPerSec" prefix="M"/>
-          </switchingCapacityPPS>
-        </performance>
-      </intermediate>
-    </nodes>
-    <nodes xmi:id="_DIopgERcEeafFpwgYSzDXA" name="SW35">
-      <interfaces xmi:id="_DIopgURcEeafFpwgYSzDXA" name="SW35_i1" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_4d_fAE4PEeaBkM5VNV3dKg">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_4d_fAU4PEeaBkM5VNV3dKg" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_4d_fAk4PEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <interfaces xmi:id="_DIopgkRcEeafFpwgYSzDXA" name="SW35_i2" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_4m6KcE4PEeaBkM5VNV3dKg">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_4m6KcU4PEeaBkM5VNV3dKg" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_4m6Kck4PEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <sdntype xsi:type="dnimm3:Common" xmi:id="_P3_J4FJmEeaaxa87zqCaAg"/>
-      <intermediate xmi:id="_YYS_0E4NEeaBkM5VNV3dKg">
-        <performance xmi:id="_Z045oE4NEeaBkM5VNV3dKg">
-          <forwardingLatency xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_GWIgwGLbEea1es0BNrNkVA" value="3.4">
-            <unit xsi:type="dnimm3:TimeUnit" xmi:id="_ZORrcGLbEea1es0BNrNkVA" unit="us"/>
-          </forwardingLatency>
-          <forwardingBandwidthBPS xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_Z045o04NEeaBkM5VNV3dKg" value="101.8">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_Z045pE4NEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </forwardingBandwidthBPS>
-          <switchingCapacityPPS xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_Z045pU4NEeaBkM5VNV3dKg" value="75.7">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_Z045pk4NEeaBkM5VNV3dKg" unit="packetsPerSec" prefix="M"/>
-          </switchingCapacityPPS>
-        </performance>
-      </intermediate>
-    </nodes>
-    <nodes xmi:id="_SSrKwERcEeafFpwgYSzDXA" name="C16">
-      <interfaces xmi:id="_SSrKwURcEeafFpwgYSzDXA" name="C16_i1" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_skMmgE4PEeaBkM5VNV3dKg">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_skMmgU4PEeaBkM5VNV3dKg" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_skMmgk4PEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <sdntype xsi:type="dnimm3:Common" xmi:id="_WUeMQERcEeafFpwgYSzDXA"/>
-      <end xmi:id="_SSrKw0RcEeafFpwgYSzDXA"/>
-    </nodes>
-    <links xmi:id="_ZRjocERcEeafFpwgYSzDXA" uid="" name="C10-SW40" connects="_l4UxIERbEeafFpwgYSzDXA _81U4YURbEeafFpwgYSzDXA">
-      <performance xmi:id="_dP6e8ERdEeafFpwgYSzDXA">
-        <maxSupportedBandwidth xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_gmOTcERdEeafFpwgYSzDXA" value="1.0">
-          <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_i-5bAERdEeafFpwgYSzDXA" prefix="G"/>
-        </maxSupportedBandwidth>
-      </performance>
-    </links>
-    <links xmi:id="_h5nqcERcEeafFpwgYSzDXA" uid="" description="" name="SW40-SW00" connects="_C-3pgURcEeafFpwgYSzDXA __7h0UERbEeafFpwgYSzDXA">
-      <performance xmi:id="_yV0hsERdEeafFpwgYSzDXA">
-        <maxSupportedBandwidth xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_yV0hsURdEeafFpwgYSzDXA" value="10.0">
-          <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_yV0hskRdEeafFpwgYSzDXA" prefix="G"/>
-        </maxSupportedBandwidth>
-      </performance>
-    </links>
-    <links xmi:id="_iJHfAERcEeafFpwgYSzDXA" uid="" name="SW00-C16" connects="_C-3pgkRcEeafFpwgYSzDXA _SSrKwURcEeafFpwgYSzDXA">
-      <performance xmi:id="_0apgMERdEeafFpwgYSzDXA">
-        <maxSupportedBandwidth xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_0apgMURdEeafFpwgYSzDXA" value="1.0">
-          <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_0apgMkRdEeafFpwgYSzDXA" prefix="G"/>
-        </maxSupportedBandwidth>
-      </performance>
-    </links>
-    <links xmi:id="_iSCKcERcEeafFpwgYSzDXA" uid="" name="SW00-SW35" connects="_GcqJkERdEeafFpwgYSzDXA _DIopgURcEeafFpwgYSzDXA">
-      <performance xmi:id="_myWegERdEeafFpwgYSzDXA">
-        <maxSupportedBandwidth xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_myWegURdEeafFpwgYSzDXA" value="1.0">
-          <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_myWegkRdEeafFpwgYSzDXA" prefix="G"/>
-        </maxSupportedBandwidth>
-      </performance>
-    </links>
-    <links xmi:id="_iZv8AERcEeafFpwgYSzDXA" uid="" name="SW35-C39" connects="_DIopgkRcEeafFpwgYSzDXA _2prOcURbEeafFpwgYSzDXA">
-      <performance xmi:id="_nYf4gERdEeafFpwgYSzDXA">
-        <maxSupportedBandwidth xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_nYf4gURdEeafFpwgYSzDXA" value="1.0">
-          <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_nYf4gkRdEeafFpwgYSzDXA" prefix="G"/>
-        </maxSupportedBandwidth>
-      </performance>
-    </links>
-  </structure>
-  <configuration xmi:id="_YRLUTOlEEeWVGvgYicTWCQ">
-    <protocolsAndStacks xmi:id="_YRLUTelEEeWVGvgYicTWCQ">
-      <stacks xmi:id="_YRLUTulEEeWVGvgYicTWCQ" uid="_yxkrANrdEeWEHbr8cSx2OQ" description="" name="Stack TCP/IP/Eth">
-        <layers xmi:id="_YRLUT-lEEeWVGvgYicTWCQ" uid="_zMMxgNrdEeWEHbr8cSx2OQ" name="Layer TCP" protocol="_YRLUU-lEEeWVGvgYicTWCQ" isCarriedBy="_YRLUUOlEEeWVGvgYicTWCQ"/>
-        <layers xmi:id="_YRLUUOlEEeWVGvgYicTWCQ" uid="_zUIlgNrdEeWEHbr8cSx2OQ" name="Layer IP" protocol="_YRLUUulEEeWVGvgYicTWCQ" isCarriedBy="_YRLUUelEEeWVGvgYicTWCQ" carries="_YRLUT-lEEeWVGvgYicTWCQ"/>
-        <layers xmi:id="_YRLUUelEEeWVGvgYicTWCQ" uid="_2MNl4NrdEeWEHbr8cSx2OQ" name="Ethernet" protocol="_YRLUVOlEEeWVGvgYicTWCQ" carries="_YRLUUOlEEeWVGvgYicTWCQ"/>
-      </stacks>
-      <protocols xmi:id="_YRLUUulEEeWVGvgYicTWCQ" uid="_y46CENrdEeWEHbr8cSx2OQ" name="IP"/>
-      <protocols xmi:id="_YRLUU-lEEeWVGvgYicTWCQ" uid="_-X-tcNrdEeWEHbr8cSx2OQ" name="TCP"/>
-      <protocols xmi:id="_YRLUVOlEEeWVGvgYicTWCQ" uid="_0y-iENrdEeWEHbr8cSx2OQ" name="Eth"/>
-    </protocolsAndStacks>
-    <routes xmi:id="_YRLUVelEEeWVGvgYicTWCQ">
-      <directions xmi:id="_caOa0ERiEeafFpwgYSzDXA" name="send_C39-SW35" onNode="_2prOcERbEeafFpwgYSzDXA" flow="_GzM58ERgEeafFpwgYSzDXA" via="_2prOcURbEeafFpwgYSzDXA"/>
-      <directions xmi:id="_jbW7QERiEeafFpwgYSzDXA" name="send_SW35-SW01" onNode="_DIopgERcEeafFpwgYSzDXA" flow="_GzM58ERgEeafFpwgYSzDXA" via="_DIopgURcEeafFpwgYSzDXA"/>
-      <directions xmi:id="_jlWkwERiEeafFpwgYSzDXA" name="send_SW01-SW40" onNode="_C-3pgERcEeafFpwgYSzDXA" flow="_GzM58ERgEeafFpwgYSzDXA" via="_C-3pgURcEeafFpwgYSzDXA"/>
-      <directions xmi:id="_kLRVQERiEeafFpwgYSzDXA" name="send_SW40-SW35" onNode="_81U4YERbEeafFpwgYSzDXA" flow="_GzM58ERgEeafFpwgYSzDXA" via="_81U4YURbEeafFpwgYSzDXA"/>
-    </routes>
-  </configuration>
-</dnimm3:NetworkInfrastructure>
diff --git a/tools.descartes.dni.core/resources-test/scenario0B.dni b/tools.descartes.dni.core/resources-test/scenario0B.dni
deleted file mode 100644
index a41ee331..00000000
--- a/tools.descartes.dni.core/resources-test/scenario0B.dni
+++ /dev/null
@@ -1,229 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<dnimm3:NetworkInfrastructure xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dnimm3="http://descartes.tools/dni-core-metamodel-3.1" xmi:id="_YRLUIOlEEeWVGvgYicTWCQ" dataCenterName="ntwrk_infr">
-  <traffic xmi:id="_YRLUIelEEeWVGvgYicTWCQ">
-    <flows xmi:id="_GzM58ERgEeafFpwgYSzDXA" name="Traffic_send" sourceSoftware="_P7pXEEReEeafFpwgYSzDXA" destinationSoftware="_PmoJUEReEeafFpwgYSzDXA">
-      <generatedTraffic xsi:type="dnimm3:GenericFlowTraffic" xmi:id="_GzM58URgEeafFpwgYSzDXA">
-        <dataSize xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_GzM58kRgEeafFpwgYSzDXA" value="100.0">
-          <unit xsi:type="dnimm3:DataUnit" xmi:id="_GzM580RgEeafFpwgYSzDXA" prefix="M"/>
-        </dataSize>
-      </generatedTraffic>
-    </flows>
-    <software xmi:id="_PmoJUEReEeafFpwgYSzDXA" name="Requester" deployedOn="_d4soIERbEeafFpwgYSzDXA"/>
-    <software xmi:id="_P7pXEEReEeafFpwgYSzDXA" name="Sender" deployedOn="_2prOc0RbEeafFpwgYSzDXA">
-      <trafficSources xmi:id="_3OkHYERfEeafFpwgYSzDXA" name="ts_send">
-        <workload xsi:type="dnimm3:GenericWorkload" xmi:id="_7wGY4ERfEeafFpwgYSzDXA">
-          <actions xsi:type="dnimm3:StartAction" xmi:id="_-MeUsERfEeafFpwgYSzDXA"/>
-          <actions xsi:type="dnimm3:WaitAction" xmi:id="__-YXMERfEeafFpwgYSzDXA">
-            <waitTime xsi:type="dnimm3:ConstantLongVariable" xmi:id="_BUvGIERgEeafFpwgYSzDXA" value="20">
-              <unit xsi:type="dnimm3:TimeUnit" xmi:id="_D4rpkERgEeafFpwgYSzDXA" unit="ms"/>
-            </waitTime>
-          </actions>
-          <actions xsi:type="dnimm3:LoopAction" xmi:id="_TWrBkERgEeafFpwgYSzDXA">
-            <intern xsi:type="dnimm3:SequenceAction" xmi:id="_dX09cERgEeafFpwgYSzDXA">
-              <intern xsi:type="dnimm3:TransmitAction" xmi:id="_eFfUsERgEeafFpwgYSzDXA" flowTraffic="_GzM58URgEeafFpwgYSzDXA"/>
-              <intern xsi:type="dnimm3:WaitAction" xmi:id="_e86E4ERgEeafFpwgYSzDXA">
-                <waitTime xsi:type="dnimm3:ConstantLongVariable" xmi:id="_hwwFgERgEeafFpwgYSzDXA" value="2">
-                  <unit xsi:type="dnimm3:TimeUnit" xmi:id="_jLwD4ERgEeafFpwgYSzDXA"/>
-                </waitTime>
-              </intern>
-            </intern>
-            <numIterations xsi:type="dnimm3:ConstantLongVariable" xmi:id="_lKj58ERgEeafFpwgYSzDXA" value="100"/>
-          </actions>
-          <actions xsi:type="dnimm3:StopAction" xmi:id="_Q_RsYERgEeafFpwgYSzDXA"/>
-        </workload>
-      </trafficSources>
-    </software>
-  </traffic>
-  <structure xmi:id="_YRLUKOlEEeWVGvgYicTWCQ">
-    <nodes xmi:id="_I59kYERbEeafFpwgYSzDXA" uid="_FTXDQG1HEeeLKum3LCNExw" name="C10" isPhysical="true" entityType="//@entityTypes/@types.2">
-      <interfaces xmi:id="_l4UxIERbEeafFpwgYSzDXA" name="C10_i1" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_Celj8ElfEeaTI4FV-m29jw">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_Dd66AElfEeaTI4FV-m29jw" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_EtC_kElfEeaTI4FV-m29jw" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <sdntype xsi:type="dnimm3:Common" xmi:id="_mxxhoERbEeafFpwgYSzDXA"/>
-      <end xmi:id="_d4soIERbEeafFpwgYSzDXA" software="_PmoJUEReEeafFpwgYSzDXA"/>
-    </nodes>
-    <nodes xmi:id="_2prOcERbEeafFpwgYSzDXA" name="C39" entityType="//@entityTypes/@types.2">
-      <interfaces xmi:id="_2prOcURbEeafFpwgYSzDXA" name="C39_i1" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_6jaTYE4PEeaBkM5VNV3dKg">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_6jaTYU4PEeaBkM5VNV3dKg" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_6jaTYk4PEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <sdntype xsi:type="dnimm3:Common" xmi:id="_2prOckRbEeafFpwgYSzDXA"/>
-      <end xmi:id="_2prOc0RbEeafFpwgYSzDXA" software="_P7pXEEReEeafFpwgYSzDXA"/>
-    </nodes>
-    <nodes xmi:id="_81U4YERbEeafFpwgYSzDXA" name="SW40" entityType="//@entityTypes/@types.1">
-      <interfaces xmi:id="_81U4YURbEeafFpwgYSzDXA" name="SW40_i_C10" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_KE_7sElfEeaTI4FV-m29jw">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_KE_7sUlfEeaTI4FV-m29jw" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_KE_7sklfEeaTI4FV-m29jw" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <interfaces xmi:id="__7h0UERbEeafFpwgYSzDXA" name="SW40_i_SW00" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_-8IAEE4PEeaBkM5VNV3dKg">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_-8IAEU4PEeaBkM5VNV3dKg" value="10">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_-8IAEk4PEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <sdntype xsi:type="dnimm3:Common" xmi:id="_81U4YkRbEeafFpwgYSzDXA"/>
-      <intermediate xmi:id="_-CrC0E3_EeaBkM5VNV3dKg">
-        <performance xmi:id="_-YStgE3_EeaBkM5VNV3dKg">
-          <forwardingLatency xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_q4RS4GLZEea1es0BNrNkVA" value="5.0">
-            <unit xsi:type="dnimm3:TimeUnit" xmi:id="_r-YmYGLZEea1es0BNrNkVA" unit="us"/>
-          </forwardingLatency>
-          <forwardingBandwidthBPS xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_oTGGEE4BEeaBkM5VNV3dKg" value="128.0">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_qJK24E4BEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </forwardingBandwidthBPS>
-          <switchingCapacityPPS xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_J8kB8E4AEeaBkM5VNV3dKg" value="96.0">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_Lq7BME4AEeaBkM5VNV3dKg" unit="packetsPerSec" prefix="M"/>
-          </switchingCapacityPPS>
-        </performance>
-      </intermediate>
-    </nodes>
-    <nodes xmi:id="_C-3pgERcEeafFpwgYSzDXA" name="SW00" entityType="//@entityTypes/@types.0">
-      <interfaces xmi:id="_C-3pgURcEeafFpwgYSzDXA" name="SW00_i_SW40" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_LTRFoElfEeaTI4FV-m29jw">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_LTRFoUlfEeaTI4FV-m29jw" value="40">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_LTRFoklfEeaTI4FV-m29jw" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <interfaces xmi:id="_C-3pgkRcEeafFpwgYSzDXA" name="SW00_i_C16" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_vczLUE4PEeaBkM5VNV3dKg">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_vczLUU4PEeaBkM5VNV3dKg" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_vczLUk4PEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <interfaces xmi:id="_GcqJkERdEeafFpwgYSzDXA" name="SW00_i_SW35" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_2sTe8E4PEeaBkM5VNV3dKg">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_2sTe8U4PEeaBkM5VNV3dKg" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_2sTe8k4PEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <sdntype xsi:type="dnimm3:Common" xmi:id="_C-3pg0RcEeafFpwgYSzDXA"/>
-      <intermediate xmi:id="_RnyZgE4GEeaBkM5VNV3dKg">
-        <performance xmi:id="_RnyZgU4GEeaBkM5VNV3dKg">
-          <forwardingLatency xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_A8Q5EGLbEea1es0BNrNkVA" value="1.5">
-            <unit xsi:type="dnimm3:TimeUnit" xmi:id="_ayAIAGLbEea1es0BNrNkVA" unit="us"/>
-          </forwardingLatency>
-          <forwardingBandwidthBPS xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_RnyZhE4GEeaBkM5VNV3dKg" value="960.0">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_RnyZhU4GEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </forwardingBandwidthBPS>
-          <switchingCapacityPPS xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_RnyZhk4GEeaBkM5VNV3dKg" value="714.2">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_RnyZh04GEeaBkM5VNV3dKg" unit="packetsPerSec" prefix="M"/>
-          </switchingCapacityPPS>
-        </performance>
-      </intermediate>
-    </nodes>
-    <nodes xmi:id="_DIopgERcEeafFpwgYSzDXA" uid="_0rWSsG1HEeeLKum3LCNExw" name="SW35" isPhysical="true" entityType="//@entityTypes/@types.0">
-      <interfaces xmi:id="_DIopgURcEeafFpwgYSzDXA" name="SW35_i1" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_4d_fAE4PEeaBkM5VNV3dKg">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_4d_fAU4PEeaBkM5VNV3dKg" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_4d_fAk4PEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <interfaces xmi:id="_DIopgkRcEeafFpwgYSzDXA" name="SW35_i2" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_4m6KcE4PEeaBkM5VNV3dKg">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_4m6KcU4PEeaBkM5VNV3dKg" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_4m6Kck4PEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <sdntype xsi:type="dnimm3:Common" xmi:id="_P3_J4FJmEeaaxa87zqCaAg"/>
-      <intermediate xmi:id="_YYS_0E4NEeaBkM5VNV3dKg">
-        <performance xmi:id="_Z045oE4NEeaBkM5VNV3dKg">
-          <forwardingLatency xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_GWIgwGLbEea1es0BNrNkVA" value="3.4">
-            <unit xsi:type="dnimm3:TimeUnit" xmi:id="_ZORrcGLbEea1es0BNrNkVA" unit="us"/>
-          </forwardingLatency>
-          <forwardingBandwidthBPS xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_Z045o04NEeaBkM5VNV3dKg" value="101.8">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_Z045pE4NEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </forwardingBandwidthBPS>
-          <switchingCapacityPPS xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_Z045pU4NEeaBkM5VNV3dKg" value="75.7">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_Z045pk4NEeaBkM5VNV3dKg" unit="packetsPerSec" prefix="M"/>
-          </switchingCapacityPPS>
-        </performance>
-      </intermediate>
-    </nodes>
-    <nodes xmi:id="_SSrKwERcEeafFpwgYSzDXA" uid="_0qD5QG1HEeeLKum3LCNExw" name="C16" isPhysical="true" entityType="//@entityTypes/@types.2">
-      <interfaces xmi:id="_SSrKwURcEeafFpwgYSzDXA" name="C16_i1" usedProtocolStack="_YRLUTulEEeWVGvgYicTWCQ">
-        <performance xmi:id="_skMmgE4PEeaBkM5VNV3dKg">
-          <interfaceThroughput xsi:type="dnimm3:ConstantLongVariable" xmi:id="_skMmgU4PEeaBkM5VNV3dKg" value="1">
-            <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_skMmgk4PEeaBkM5VNV3dKg" unit="bitsPerSec" prefix="G"/>
-          </interfaceThroughput>
-        </performance>
-      </interfaces>
-      <sdntype xsi:type="dnimm3:Common" xmi:id="_WUeMQERcEeafFpwgYSzDXA"/>
-      <end xmi:id="_SSrKw0RcEeafFpwgYSzDXA"/>
-    </nodes>
-    <links xmi:id="_ZRjocERcEeafFpwgYSzDXA" uid="_Kld2EG1HEeeLKum3LCNExw" name="Link_C10_i1&lt;-->SW40_i_C10" connects="_l4UxIERbEeafFpwgYSzDXA _81U4YURbEeafFpwgYSzDXA" entityType="//@entityTypes/@types.4">
-      <performance xmi:id="_dP6e8ERdEeafFpwgYSzDXA">
-        <maxSupportedBandwidth xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_gmOTcERdEeafFpwgYSzDXA" value="1.0">
-          <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_i-5bAERdEeafFpwgYSzDXA" prefix="G"/>
-        </maxSupportedBandwidth>
-      </performance>
-    </links>
-    <links xmi:id="_h5nqcERcEeafFpwgYSzDXA" uid="_Ku430G1HEeeLKum3LCNExw" name="Link_SW00_i_SW40&lt;-->SW40_i_SW00" description="" connects="_C-3pgURcEeafFpwgYSzDXA __7h0UERbEeafFpwgYSzDXA" entityType="//@entityTypes/@types.4">
-      <performance xmi:id="_yV0hsERdEeafFpwgYSzDXA">
-        <maxSupportedBandwidth xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_yV0hsURdEeafFpwgYSzDXA" value="10.0">
-          <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_yV0hskRdEeafFpwgYSzDXA" prefix="G"/>
-        </maxSupportedBandwidth>
-      </performance>
-    </links>
-    <links xmi:id="_iJHfAERcEeafFpwgYSzDXA" uid="_KzDmIG1HEeeLKum3LCNExw" name="Link_SW00_i_C16&lt;-->C16_i1" connects="_C-3pgkRcEeafFpwgYSzDXA _SSrKwURcEeafFpwgYSzDXA" entityType="//@entityTypes/@types.4">
-      <performance xmi:id="_0apgMERdEeafFpwgYSzDXA">
-        <maxSupportedBandwidth xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_0apgMURdEeafFpwgYSzDXA" value="1.0">
-          <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_0apgMkRdEeafFpwgYSzDXA" prefix="G"/>
-        </maxSupportedBandwidth>
-      </performance>
-    </links>
-    <links xmi:id="_iSCKcERcEeafFpwgYSzDXA" uid="_K2PdAG1HEeeLKum3LCNExw" name="Link_SW00_i_SW35&lt;-->SW35_i1" connects="_GcqJkERdEeafFpwgYSzDXA _DIopgURcEeafFpwgYSzDXA" entityType="//@entityTypes/@types.4">
-      <performance xmi:id="_myWegERdEeafFpwgYSzDXA">
-        <maxSupportedBandwidth xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_myWegURdEeafFpwgYSzDXA" value="1.0">
-          <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_myWegkRdEeafFpwgYSzDXA" prefix="G"/>
-        </maxSupportedBandwidth>
-      </performance>
-    </links>
-    <links xmi:id="_iZv8AERcEeafFpwgYSzDXA" uid="_K6ENEG1HEeeLKum3LCNExw" name="Link_SW35_i2&lt;-->C39_i1" connects="_DIopgkRcEeafFpwgYSzDXA _2prOcURbEeafFpwgYSzDXA" entityType="//@entityTypes/@types.3">
-      <performance xmi:id="_nYf4gERdEeafFpwgYSzDXA">
-        <maxSupportedBandwidth xsi:type="dnimm3:ConstantDoubleVariable" xmi:id="_nYf4gURdEeafFpwgYSzDXA" value="1.0">
-          <unit xsi:type="dnimm3:SpeedUnit" xmi:id="_nYf4gkRdEeafFpwgYSzDXA" prefix="G"/>
-        </maxSupportedBandwidth>
-      </performance>
-    </links>
-  </structure>
-  <configuration xmi:id="_YRLUTOlEEeWVGvgYicTWCQ">
-    <protocolsAndStacks xmi:id="_YRLUTelEEeWVGvgYicTWCQ">
-      <stacks xmi:id="_YRLUTulEEeWVGvgYicTWCQ" uid="_yxkrANrdEeWEHbr8cSx2OQ" name="Stack TCP/IP/Eth" description="">
-        <layers xmi:id="_YRLUT-lEEeWVGvgYicTWCQ" uid="_zMMxgNrdEeWEHbr8cSx2OQ" name="Layer TCP" protocol="_YRLUU-lEEeWVGvgYicTWCQ" isCarriedBy="_YRLUUOlEEeWVGvgYicTWCQ"/>
-        <layers xmi:id="_YRLUUOlEEeWVGvgYicTWCQ" uid="_zUIlgNrdEeWEHbr8cSx2OQ" name="Layer IP" protocol="_YRLUUulEEeWVGvgYicTWCQ" isCarriedBy="_YRLUUelEEeWVGvgYicTWCQ" carries="_YRLUT-lEEeWVGvgYicTWCQ"/>
-        <layers xmi:id="_YRLUUelEEeWVGvgYicTWCQ" uid="_2MNl4NrdEeWEHbr8cSx2OQ" name="Ethernet" protocol="_YRLUVOlEEeWVGvgYicTWCQ" carries="_YRLUUOlEEeWVGvgYicTWCQ"/>
-      </stacks>
-      <protocols xmi:id="_YRLUUulEEeWVGvgYicTWCQ" uid="_y46CENrdEeWEHbr8cSx2OQ" name="IP"/>
-      <protocols xmi:id="_YRLUU-lEEeWVGvgYicTWCQ" uid="_-X-tcNrdEeWEHbr8cSx2OQ" name="TCP"/>
-      <protocols xmi:id="_YRLUVOlEEeWVGvgYicTWCQ" uid="_0y-iENrdEeWEHbr8cSx2OQ" name="Eth"/>
-    </protocolsAndStacks>
-    <routes xmi:id="_YRLUVelEEeWVGvgYicTWCQ">
-      <directions xmi:id="_caOa0ERiEeafFpwgYSzDXA" name="send_C39-SW35" onNode="_2prOcERbEeafFpwgYSzDXA" flow="_GzM58ERgEeafFpwgYSzDXA" via="_2prOcURbEeafFpwgYSzDXA"/>
-      <directions xmi:id="_jbW7QERiEeafFpwgYSzDXA" name="send_SW35-SW01" onNode="_DIopgERcEeafFpwgYSzDXA" flow="_GzM58ERgEeafFpwgYSzDXA" via="_DIopgURcEeafFpwgYSzDXA"/>
-      <directions xmi:id="_jlWkwERiEeafFpwgYSzDXA" name="send_SW01-SW40" onNode="_C-3pgERcEeafFpwgYSzDXA" flow="_GzM58ERgEeafFpwgYSzDXA" via="_C-3pgURcEeafFpwgYSzDXA"/>
-      <directions xmi:id="_kLRVQERiEeafFpwgYSzDXA" name="send_SW40-SW35" onNode="_81U4YERbEeafFpwgYSzDXA" flow="_GzM58ERgEeafFpwgYSzDXA" via="_81U4YURbEeafFpwgYSzDXA"/>
-    </routes>
-  </configuration>
-  <entityTypes>
-    <types xsi:type="dnimm3:NodeType" name="HP 2920" entities="_C-3pgERcEeafFpwgYSzDXA _DIopgERcEeafFpwgYSzDXA"/>
-    <types xsi:type="dnimm3:NodeType" name="Cisco 2960" entities="_81U4YERbEeafFpwgYSzDXA"/>
-    <types xsi:type="dnimm3:NodeType" name="HP-Server" entities="_I59kYERbEeafFpwgYSzDXA _SSrKwERcEeafFpwgYSzDXA _2prOcERbEeafFpwgYSzDXA"/>
-    <types xsi:type="dnimm3:LinkType" name="Cable blue" description="" entities="_iZv8AERcEeafFpwgYSzDXA"/>
-    <types xsi:type="dnimm3:LinkType" name="Cable red" description="" entities="_ZRjocERcEeafFpwgYSzDXA _iJHfAERcEeafFpwgYSzDXA _iSCKcERcEeafFpwgYSzDXA _h5nqcERcEeafFpwgYSzDXA"/>
-  </entityTypes>
-</dnimm3:NetworkInfrastructure>
diff --git a/tools.descartes.dni.core/src-test/tools/descartes/dni/dnimm3/tools/ParserTest.java b/tools.descartes.dni.core/src-test/tools/descartes/dni/dnimm3/tools/ParserTest.java
deleted file mode 100644
index 0c8d9eac..00000000
--- a/tools.descartes.dni.core/src-test/tools/descartes/dni/dnimm3/tools/ParserTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package tools.descartes.dni.dnimm3.tools;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-import tools.descartes.dni.dnimm3.NetworkInfrastructure;
-import tools.descartes.dni.dnimm3.impl.DNIFactoryImpl;
-import tools.descartes.dni.dnimm3.impl.NetworkInfrastructureImpl;
-
-public class ParserTest {
-
-	@Test
-	public void shouldConvertFileToModel() {
-		File file = new File("resources-test/scenario0A.dni");
-		NetworkInfrastructureImpl networkInfrastructure = DNIParser.convertToModel(file);
-		Assert.assertEquals(6, networkInfrastructure.getStructure().getNodes().size());
-	}
-
-	@Test
-	public void shouldConvertFileWithAdaptationToModel() {
-		File file = new File("resources-test/scenario0B.dni");
-		NetworkInfrastructureImpl networkInfrastructure = DNIParser.convertToModel(file);
-		Assert.assertEquals(6, networkInfrastructure.getStructure().getNodes().size());
-	}
-
-	@Test
-	public void shouldConvertModelToFile() throws IOException {
-		DNIFactoryImpl factory = new DNIFactoryImpl();
-		NetworkInfrastructure model = factory.createNetworkInfrastructure();
-		File file = File.createTempFile("junit-dni-", ".dni");
-		file.deleteOnExit();
-		DNIParser.writeToFile(model, file);
-		Assert.assertTrue(file.length() > 100);
-	}
-
-	@Test
-	public void shouldConvertModelToByteArray() throws IOException {
-		DNIFactoryImpl factory = new DNIFactoryImpl();
-		NetworkInfrastructure model = factory.createNetworkInfrastructure();
-		byte[] bytes = DNIParser.convertToByteArray(model);
-		Assert.assertTrue(bytes.length > 100);
-	}
-
-	@Test
-	public void shouldConvertByteArrayToModel() throws IOException {
-		Path path = Paths.get("resources-test/scenario0A.dni");
-		byte[] data = Files.readAllBytes(path);
-		NetworkInfrastructureImpl networkInfrastructure = DNIParser.convertToModel(data);
-		Assert.assertEquals(6, networkInfrastructure.getStructure().getNodes().size());
-	}
-
-}
diff --git a/tools.descartes.dni.core/src-test/tools/descartes/dni/dnimm3/tools/UtilTest.java b/tools.descartes.dni.core/src-test/tools/descartes/dni/dnimm3/tools/UtilTest.java
deleted file mode 100644
index 120bda93..00000000
--- a/tools.descartes.dni.core/src-test/tools/descartes/dni/dnimm3/tools/UtilTest.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package tools.descartes.dni.dnimm3.tools;
-
-import java.io.File;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-import tools.descartes.dni.dnimm3.impl.NetworkInfrastructureImpl;
-
-public class UtilTest {
-
-	@Test
-	public void shouldCloneModel() {
-		File file = new File("resources-test/scenario0B.dni");
-		NetworkInfrastructureImpl networkInfrastructure1 = DNIParser.convertToModel(file);
-		NetworkInfrastructureImpl networkInfrastructure2 = DNIUtil.cloneModel(networkInfrastructure1);
-		Assert.assertNotEquals(networkInfrastructure1, networkInfrastructure2);
-		Assert.assertEquals(networkInfrastructure1.getStructure().getNodes().size(),
-				networkInfrastructure2.getStructure().getNodes().size());
-		Assert.assertEquals(networkInfrastructure1.getStructure().getNodes().get(0).getUid_generated(),
-				networkInfrastructure2.getStructure().getNodes().get(0).getUid_generated());
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/AbstractAction.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/AbstractAction.java
deleted file mode 100644
index 5a52f271..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/AbstractAction.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Abstract Action</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getAbstractAction()
- * @model interface="true" abstract="true"
- * @generated
- */
-public interface AbstractAction extends EObject {
-} // AbstractAction
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/AddressableEntity.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/AddressableEntity.java
deleted file mode 100644
index 5e00c53a..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/AddressableEntity.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Addressable Entity</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.AddressableEntity#getAddresses <em>Addresses</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getAddressableEntity()
- * @model interface="true" abstract="true"
- * @generated
- */
-public interface AddressableEntity extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Addresses</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.EntityAddress}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Addresses</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>Addresses</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getAddressableEntity_Addresses()
-	 * @model containment="true"
-	 * @generated
-	 */
-	List<EntityAddress> getAddresses();
-
-} // AddressableEntity
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/BranchAction.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/BranchAction.java
deleted file mode 100644
index 9ec3261b..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/BranchAction.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Branch Action</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.BranchAction#getIntern <em>Intern</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getBranchAction()
- * @model
- * @generated
- */
-public interface BranchAction extends AbstractAction {
-	/**
-	 * Returns the value of the '<em><b>Intern</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.AbstractAction}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Intern</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>Intern</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getBranchAction_Intern()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	List<AbstractAction> getIntern();
-
-} // BranchAction
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Common.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Common.java
deleted file mode 100644
index d8f605cb..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Common.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Common</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getCommon()
- * @model
- * @generated
- */
-public interface Common extends IType {
-} // Common
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/CommunicatingApplication.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/CommunicatingApplication.java
deleted file mode 100644
index 81be28ee..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/CommunicatingApplication.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Communicating Application</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.CommunicatingApplication#getTrafficSources <em>Traffic Sources</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.CommunicatingApplication#getDeployedOn <em>Deployed On</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getCommunicatingApplication()
- * @model
- * @generated
- */
-public interface CommunicatingApplication extends Entity {
-	/**
-	 * Returns the value of the '<em><b>Traffic Sources</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.TrafficSource}.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.TrafficSource#getSoftwareComponent <em>Software Component</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Traffic Sources</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>Traffic Sources</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getCommunicatingApplication_TrafficSources()
-	 * @see tools.descartes.dni.dnimm3.TrafficSource#getSoftwareComponent
-	 * @model opposite="softwareComponent" containment="true"
-	 * @generated
-	 */
-	List<TrafficSource> getTrafficSources();
-
-	/**
-	 * Returns the value of the '<em><b>Deployed On</b></em>' reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.End#getSoftware <em>Software</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Deployed On</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Deployed On</em>' reference.
-	 * @see #setDeployedOn(End)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getCommunicatingApplication_DeployedOn()
-	 * @see tools.descartes.dni.dnimm3.End#getSoftware
-	 * @model opposite="software"
-	 * @generated
-	 */
-	End getDeployedOn();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.CommunicatingApplication#getDeployedOn <em>Deployed On</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Deployed On</em>' reference.
-	 * @see #getDeployedOn()
-	 * @generated
-	 */
-	void setDeployedOn(End value);
-
-} // CommunicatingApplication
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ConstantDoubleVariable.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ConstantDoubleVariable.java
deleted file mode 100644
index dc71bc2b..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ConstantDoubleVariable.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Constant Double Variable</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.ConstantDoubleVariable#getValue <em>Value</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getConstantDoubleVariable()
- * @model
- * @generated
- */
-public interface ConstantDoubleVariable extends Variable {
-	/**
-	 * Returns the value of the '<em><b>Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Value</em>' attribute.
-	 * @see #setValue(double)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getConstantDoubleVariable_Value()
-	 * @model unique="false" required="true"
-	 * @generated
-	 */
-	double getValue();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.ConstantDoubleVariable#getValue <em>Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Value</em>' attribute.
-	 * @see #getValue()
-	 * @generated
-	 */
-	void setValue(double value);
-
-} // ConstantDoubleVariable
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ConstantLongVariable.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ConstantLongVariable.java
deleted file mode 100644
index 28fb41be..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ConstantLongVariable.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Constant Long Variable</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.ConstantLongVariable#getValue <em>Value</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getConstantLongVariable()
- * @model
- * @generated
- */
-public interface ConstantLongVariable extends Variable {
-	/**
-	 * Returns the value of the '<em><b>Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Value</em>' attribute.
-	 * @see #setValue(long)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getConstantLongVariable_Value()
-	 * @model unique="false" required="true"
-	 * @generated
-	 */
-	long getValue();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.ConstantLongVariable#getValue <em>Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Value</em>' attribute.
-	 * @see #getValue()
-	 * @generated
-	 */
-	void setValue(long value);
-
-} // ConstantLongVariable
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/DNIFactory.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/DNIFactory.java
deleted file mode 100644
index e52a8be4..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/DNIFactory.java
+++ /dev/null
@@ -1,573 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-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 tools.descartes.dni.dnimm3.DNIPackage
- * @generated
- */
-public interface DNIFactory extends EFactory {
-	/**
-	 * The singleton instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	DNIFactory eINSTANCE = tools.descartes.dni.dnimm3.impl.DNIFactoryImpl.init();
-
-	/**
-	 * Returns a new object of class '<em>Network Infrastructure</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Network Infrastructure</em>'.
-	 * @generated
-	 */
-	NetworkInfrastructure createNetworkInfrastructure();
-
-	/**
-	 * Returns a new object of class '<em>Network Structure</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Network Structure</em>'.
-	 * @generated
-	 */
-	NetworkStructure createNetworkStructure();
-
-	/**
-	 * Returns a new object of class '<em>Node</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Node</em>'.
-	 * @generated
-	 */
-	Node createNode();
-
-	/**
-	 * Returns a new object of class '<em>End</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>End</em>'.
-	 * @generated
-	 */
-	End createEnd();
-
-	/**
-	 * Returns a new object of class '<em>Intermediate</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Intermediate</em>'.
-	 * @generated
-	 */
-	Intermediate createIntermediate();
-
-	/**
-	 * Returns a new object of class '<em>Link</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Link</em>'.
-	 * @generated
-	 */
-	Link createLink();
-
-	/**
-	 * Returns a new object of class '<em>Network Interface</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Network Interface</em>'.
-	 * @generated
-	 */
-	NetworkInterface createNetworkInterface();
-
-	/**
-	 * Returns a new object of class '<em>Network Traffic</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Network Traffic</em>'.
-	 * @generated
-	 */
-	NetworkTraffic createNetworkTraffic();
-
-	/**
-	 * Returns a new object of class '<em>Flow</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Flow</em>'.
-	 * @generated
-	 */
-	Flow createFlow();
-
-	/**
-	 * Returns a new object of class '<em>Sdn Control Flow</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Sdn Control Flow</em>'.
-	 * @generated
-	 */
-	SdnControlFlow createSdnControlFlow();
-
-	/**
-	 * Returns a new object of class '<em>Generic Flow Traffic</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Generic Flow Traffic</em>'.
-	 * @generated
-	 */
-	GenericFlowTraffic createGenericFlowTraffic();
-
-	/**
-	 * Returns a new object of class '<em>Communicating Application</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Communicating Application</em>'.
-	 * @generated
-	 */
-	CommunicatingApplication createCommunicatingApplication();
-
-	/**
-	 * Returns a new object of class '<em>Traffic Source</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Traffic Source</em>'.
-	 * @generated
-	 */
-	TrafficSource createTrafficSource();
-
-	/**
-	 * Returns a new object of class '<em>Network Configuration</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Network Configuration</em>'.
-	 * @generated
-	 */
-	NetworkConfiguration createNetworkConfiguration();
-
-	/**
-	 * Returns a new object of class '<em>Protocols Repository</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Protocols Repository</em>'.
-	 * @generated
-	 */
-	ProtocolsRepository createProtocolsRepository();
-
-	/**
-	 * Returns a new object of class '<em>Protocol Stack</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Protocol Stack</em>'.
-	 * @generated
-	 */
-	ProtocolStack createProtocolStack();
-
-	/**
-	 * Returns a new object of class '<em>Protocol Layer</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Protocol Layer</em>'.
-	 * @generated
-	 */
-	ProtocolLayer createProtocolLayer();
-
-	/**
-	 * Returns a new object of class '<em>Network Protocol</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Network Protocol</em>'.
-	 * @generated
-	 */
-	NetworkProtocol createNetworkProtocol();
-
-	/**
-	 * Returns a new object of class '<em>Routes Repository</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Routes Repository</em>'.
-	 * @generated
-	 */
-	RoutesRepository createRoutesRepository();
-
-	/**
-	 * Returns a new object of class '<em>Direction</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Direction</em>'.
-	 * @generated
-	 */
-	Direction createDirection();
-
-	/**
-	 * Returns a new object of class '<em>Flow Route</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Flow Route</em>'.
-	 * @generated
-	 */
-	FlowRoute createFlowRoute();
-
-	/**
-	 * Returns a new object of class '<em>Route</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Route</em>'.
-	 * @generated
-	 */
-	Route createRoute();
-
-	/**
-	 * Returns a new object of class '<em>Hop</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Hop</em>'.
-	 * @generated
-	 */
-	Hop createHop();
-
-	/**
-	 * Returns a new object of class '<em>Entity Address</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Entity Address</em>'.
-	 * @generated
-	 */
-	EntityAddress createEntityAddress();
-
-	/**
-	 * Returns a new object of class '<em>Generic Workload</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Generic Workload</em>'.
-	 * @generated
-	 */
-	GenericWorkload createGenericWorkload();
-
-	/**
-	 * Returns a new object of class '<em>Branch Action</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Branch Action</em>'.
-	 * @generated
-	 */
-	BranchAction createBranchAction();
-
-	/**
-	 * Returns a new object of class '<em>Loop Action</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Loop Action</em>'.
-	 * @generated
-	 */
-	LoopAction createLoopAction();
-
-	/**
-	 * Returns a new object of class '<em>Sequence Action</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Sequence Action</em>'.
-	 * @generated
-	 */
-	SequenceAction createSequenceAction();
-
-	/**
-	 * Returns a new object of class '<em>Start Action</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Start Action</em>'.
-	 * @generated
-	 */
-	StartAction createStartAction();
-
-	/**
-	 * Returns a new object of class '<em>Stop Action</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Stop Action</em>'.
-	 * @generated
-	 */
-	StopAction createStopAction();
-
-	/**
-	 * Returns a new object of class '<em>Transmit Action</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Transmit Action</em>'.
-	 * @generated
-	 */
-	TransmitAction createTransmitAction();
-
-	/**
-	 * Returns a new object of class '<em>Wait Action</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Wait Action</em>'.
-	 * @generated
-	 */
-	WaitAction createWaitAction();
-
-	/**
-	 * Returns a new object of class '<em>Performance Link</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Performance Link</em>'.
-	 * @generated
-	 */
-	PerformanceLink createPerformanceLink();
-
-	/**
-	 * Returns a new object of class '<em>Performance Network Interface</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Performance Network Interface</em>'.
-	 * @generated
-	 */
-	PerformanceNetworkInterface createPerformanceNetworkInterface();
-
-	/**
-	 * Returns a new object of class '<em>Sdn Flow Rule</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Sdn Flow Rule</em>'.
-	 * @generated
-	 */
-	SdnFlowRule createSdnFlowRule();
-
-	/**
-	 * Returns a new object of class '<em>Sdn Controller</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Sdn Controller</em>'.
-	 * @generated
-	 */
-	SdnController createSdnController();
-
-	/**
-	 * Returns a new object of class '<em>Sdn Controller Application</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Sdn Controller Application</em>'.
-	 * @generated
-	 */
-	SdnControllerApplication createSdnControllerApplication();
-
-	/**
-	 * Returns a new object of class '<em>Common</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Common</em>'.
-	 * @generated
-	 */
-	Common createCommon();
-
-	/**
-	 * Returns a new object of class '<em>SDN</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>SDN</em>'.
-	 * @generated
-	 */
-	SDN createSDN();
-
-	/**
-	 * Returns a new object of class '<em>Intermediate Performance</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Intermediate Performance</em>'.
-	 * @generated
-	 */
-	IntermediatePerformance createIntermediatePerformance();
-
-	/**
-	 * Returns a new object of class '<em>End Performance</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>End Performance</em>'.
-	 * @generated
-	 */
-	EndPerformance createEndPerformance();
-
-	/**
-	 * Returns a new object of class '<em>Performance Sdn Node</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Performance Sdn Node</em>'.
-	 * @generated
-	 */
-	PerformanceSdnNode createPerformanceSdnNode();
-
-	/**
-	 * Returns a new object of class '<em>Speed Unit</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Speed Unit</em>'.
-	 * @generated
-	 */
-	SpeedUnit createSpeedUnit();
-
-	/**
-	 * Returns a new object of class '<em>Data Unit</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Data Unit</em>'.
-	 * @generated
-	 */
-	DataUnit createDataUnit();
-
-	/**
-	 * Returns a new object of class '<em>Time Unit</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Time Unit</em>'.
-	 * @generated
-	 */
-	TimeUnit createTimeUnit();
-
-	/**
-	 * Returns a new object of class '<em>Constant Double Variable</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Constant Double Variable</em>'.
-	 * @generated
-	 */
-	ConstantDoubleVariable createConstantDoubleVariable();
-
-	/**
-	 * Returns a new object of class '<em>Constant Long Variable</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Constant Long Variable</em>'.
-	 * @generated
-	 */
-	ConstantLongVariable createConstantLongVariable();
-
-	/**
-	 * Returns a new object of class '<em>Random Variable</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Random Variable</em>'.
-	 * @generated
-	 */
-	RandomVariable createRandomVariable();
-
-	/**
-	 * Returns a new object of class '<em>Float Coordinate</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Float Coordinate</em>'.
-	 * @generated
-	 */
-	FloatCoordinate createFloatCoordinate();
-
-	/**
-	 * Returns a new object of class '<em>Discrete Function</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Discrete Function</em>'.
-	 * @generated
-	 */
-	DiscreteFunction createDiscreteFunction();
-
-	/**
-	 * Returns a new object of class '<em>Exponential Function</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Exponential Function</em>'.
-	 * @generated
-	 */
-	ExponentialFunction createExponentialFunction();
-
-	/**
-	 * Returns a new object of class '<em>Entity Types</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Entity Types</em>'.
-	 * @generated
-	 */
-	EntityTypes createEntityTypes();
-
-	/**
-	 * Returns a new object of class '<em>Node Type</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Node Type</em>'.
-	 * @generated
-	 */
-	NodeType createNodeType();
-
-	/**
-	 * Returns a new object of class '<em>End Performance Type</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>End Performance Type</em>'.
-	 * @generated
-	 */
-	EndPerformanceType createEndPerformanceType();
-
-	/**
-	 * Returns a new object of class '<em>Intermediate Performance Type</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Intermediate Performance Type</em>'.
-	 * @generated
-	 */
-	IntermediatePerformanceType createIntermediatePerformanceType();
-
-	/**
-	 * Returns a new object of class '<em>Sdn Node Performance Type</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Sdn Node Performance Type</em>'.
-	 * @generated
-	 */
-	SdnNodePerformanceType createSdnNodePerformanceType();
-
-	/**
-	 * Returns a new object of class '<em>Network Interface Type</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Network Interface Type</em>'.
-	 * @generated
-	 */
-	NetworkInterfaceType createNetworkInterfaceType();
-
-	/**
-	 * Returns a new object of class '<em>Network Interface Performance Type</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Network Interface Performance Type</em>'.
-	 * @generated
-	 */
-	NetworkInterfacePerformanceType createNetworkInterfacePerformanceType();
-
-	/**
-	 * Returns a new object of class '<em>Link Type</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Link Type</em>'.
-	 * @generated
-	 */
-	LinkType createLinkType();
-
-	/**
-	 * Returns a new object of class '<em>Link Performance Type</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Link Performance Type</em>'.
-	 * @generated
-	 */
-	LinkPerformanceType createLinkPerformanceType();
-
-	/**
-	 * Returns the package supported by this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the package supported by this factory.
-	 * @generated
-	 */
-	DNIPackage getDNIPackage();
-
-} //DNIFactory
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/DNIPackage.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/DNIPackage.java
deleted file mode 100644
index b75ec467..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/DNIPackage.java
+++ /dev/null
@@ -1,8813 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-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.EReference;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Package</b> for the model.
- * It contains accessors for the meta objects to represent
- * <ul>
- *   <li>each class,</li>
- *   <li>each feature of each class,</li>
- *   <li>each operation of each class,</li>
- *   <li>each enum,</li>
- *   <li>and each data type</li>
- * </ul>
- * <!-- end-user-doc -->
- * @see tools.descartes.dni.dnimm3.DNIFactory
- * @model kind="package"
- *        annotation="http://www.eclipse.org/emf/2002/GenModel modelDirectory='/tools.descartes.dni.core/src' editDirectory='/tools.descartes.dni.core/src' editorDirectory='/tools.descartes.dni.core/src' fileExtensions='dni' prefix='DNI' suppressEMFTypes='true' basePackage='tools.descartes.dni'"
- *        annotation="http://www.eclipse.org/emf/2011/Xcore Pivot='http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot'"
- * @generated
- */
-public interface DNIPackage extends EPackage {
-	/**
-	 * The package name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNAME = "dnimm3";
-
-	/**
-	 * The package namespace URI.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNS_URI = "http://descartes.tools/dni-core-metamodel-3.1";
-
-	/**
-	 * The package namespace name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNS_PREFIX = "dnimm3";
-
-	/**
-	 * The singleton instance of the package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	DNIPackage eINSTANCE = tools.descartes.dni.dnimm3.impl.DNIPackageImpl.init();
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.NamedElement <em>Named Element</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.NamedElement
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNamedElement()
-	 * @generated
-	 */
-	int NAMED_ELEMENT = 0;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NAMED_ELEMENT__NAME = 0;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NAMED_ELEMENT__DESCRIPTION = 1;
-
-	/**
-	 * The number of structural features of the '<em>Named Element</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NAMED_ELEMENT_FEATURE_COUNT = 2;
-
-	/**
-	 * The number of operations of the '<em>Named Element</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NAMED_ELEMENT_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.IdentifierImpl <em>Identifier</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.IdentifierImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getIdentifier()
-	 * @generated
-	 */
-	int IDENTIFIER = 1;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IDENTIFIER__UID = 0;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IDENTIFIER__UID_GENERATED = 1;
-
-	/**
-	 * The number of structural features of the '<em>Identifier</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IDENTIFIER_FEATURE_COUNT = 2;
-
-	/**
-	 * The number of operations of the '<em>Identifier</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IDENTIFIER_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.Entity <em>Entity</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.Entity
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getEntity()
-	 * @generated
-	 */
-	int ENTITY = 2;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENTITY__UID = IDENTIFIER__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENTITY__UID_GENERATED = IDENTIFIER__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENTITY__NAME = IDENTIFIER_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENTITY__DESCRIPTION = IDENTIFIER_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Entity</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENTITY_FEATURE_COUNT = IDENTIFIER_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of operations of the '<em>Entity</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENTITY_OPERATION_COUNT = IDENTIFIER_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.NetworkInfrastructureImpl <em>Network Infrastructure</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.NetworkInfrastructureImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNetworkInfrastructure()
-	 * @generated
-	 */
-	int NETWORK_INFRASTRUCTURE = 3;
-
-	/**
-	 * The feature id for the '<em><b>Traffic</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INFRASTRUCTURE__TRAFFIC = 0;
-
-	/**
-	 * The feature id for the '<em><b>Structure</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INFRASTRUCTURE__STRUCTURE = 1;
-
-	/**
-	 * The feature id for the '<em><b>Configuration</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INFRASTRUCTURE__CONFIGURATION = 2;
-
-	/**
-	 * The feature id for the '<em><b>Entity Types</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INFRASTRUCTURE__ENTITY_TYPES = 3;
-
-	/**
-	 * The feature id for the '<em><b>Data Center Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INFRASTRUCTURE__DATA_CENTER_NAME = 4;
-
-	/**
-	 * The feature id for the '<em><b>Meta Model Version</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INFRASTRUCTURE__META_MODEL_VERSION = 5;
-
-	/**
-	 * The number of structural features of the '<em>Network Infrastructure</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INFRASTRUCTURE_FEATURE_COUNT = 6;
-
-	/**
-	 * The number of operations of the '<em>Network Infrastructure</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INFRASTRUCTURE_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.NetworkStructureImpl <em>Network Structure</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.NetworkStructureImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNetworkStructure()
-	 * @generated
-	 */
-	int NETWORK_STRUCTURE = 4;
-
-	/**
-	 * The feature id for the '<em><b>Nodes</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_STRUCTURE__NODES = 0;
-
-	/**
-	 * The feature id for the '<em><b>Links</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_STRUCTURE__LINKS = 1;
-
-	/**
-	 * The number of structural features of the '<em>Network Structure</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_STRUCTURE_FEATURE_COUNT = 2;
-
-	/**
-	 * The number of operations of the '<em>Network Structure</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_STRUCTURE_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.NodeImpl <em>Node</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.NodeImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNode()
-	 * @generated
-	 */
-	int NODE = 5;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE__UID = ENTITY__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE__UID_GENERATED = ENTITY__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE__NAME = ENTITY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE__DESCRIPTION = ENTITY__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Interfaces</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE__INTERFACES = ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Sdntype</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE__SDNTYPE = ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Is Physical</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE__IS_PHYSICAL = ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Is Physical derived</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE__IS_PHYSICAL_DERIVED = ENTITY_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Hosts</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE__HOSTS = ENTITY_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Is Hosted On</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE__IS_HOSTED_ON = ENTITY_FEATURE_COUNT + 5;
-
-	/**
-	 * The feature id for the '<em><b>End</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE__END = ENTITY_FEATURE_COUNT + 6;
-
-	/**
-	 * The feature id for the '<em><b>Intermediate</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE__INTERMEDIATE = ENTITY_FEATURE_COUNT + 7;
-
-	/**
-	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE__ENTITY_TYPE = ENTITY_FEATURE_COUNT + 8;
-
-	/**
-	 * The number of structural features of the '<em>Node</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE_FEATURE_COUNT = ENTITY_FEATURE_COUNT + 9;
-
-	/**
-	 * The number of operations of the '<em>Node</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE_OPERATION_COUNT = ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.EndImpl <em>End</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.EndImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getEnd()
-	 * @generated
-	 */
-	int END = 6;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int END__UID = IDENTIFIER__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int END__UID_GENERATED = IDENTIFIER__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Performance</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int END__PERFORMANCE = IDENTIFIER_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Software</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int END__SOFTWARE = IDENTIFIER_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Node</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int END__NODE = IDENTIFIER_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int END__NAME = IDENTIFIER_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of structural features of the '<em>End</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int END_FEATURE_COUNT = IDENTIFIER_FEATURE_COUNT + 4;
-
-	/**
-	 * The number of operations of the '<em>End</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int END_OPERATION_COUNT = IDENTIFIER_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.IntermediateImpl <em>Intermediate</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.IntermediateImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getIntermediate()
-	 * @generated
-	 */
-	int INTERMEDIATE = 7;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERMEDIATE__UID = IDENTIFIER__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERMEDIATE__UID_GENERATED = IDENTIFIER__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Performance</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERMEDIATE__PERFORMANCE = IDENTIFIER_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Node</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERMEDIATE__NODE = IDENTIFIER_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERMEDIATE__NAME = IDENTIFIER_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of structural features of the '<em>Intermediate</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERMEDIATE_FEATURE_COUNT = IDENTIFIER_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of operations of the '<em>Intermediate</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERMEDIATE_OPERATION_COUNT = IDENTIFIER_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.LinkImpl <em>Link</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.LinkImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getLink()
-	 * @generated
-	 */
-	int LINK = 8;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK__UID = ENTITY__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK__UID_GENERATED = ENTITY__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK__NAME = ENTITY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK__DESCRIPTION = ENTITY__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Connects</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK__CONNECTS = ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Performance</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK__PERFORMANCE = ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Name generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK__NAME_GENERATED = ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK__ENTITY_TYPE = ENTITY_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of structural features of the '<em>Link</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_FEATURE_COUNT = ENTITY_FEATURE_COUNT + 4;
-
-	/**
-	 * The number of operations of the '<em>Link</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_OPERATION_COUNT = ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.AddressableEntity <em>Addressable Entity</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.AddressableEntity
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getAddressableEntity()
-	 * @generated
-	 */
-	int ADDRESSABLE_ENTITY = 28;
-
-	/**
-	 * The feature id for the '<em><b>Addresses</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADDRESSABLE_ENTITY__ADDRESSES = 0;
-
-	/**
-	 * The number of structural features of the '<em>Addressable Entity</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADDRESSABLE_ENTITY_FEATURE_COUNT = 1;
-
-	/**
-	 * The number of operations of the '<em>Addressable Entity</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADDRESSABLE_ENTITY_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.NetworkInterfaceImpl <em>Network Interface</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.NetworkInterfaceImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNetworkInterface()
-	 * @generated
-	 */
-	int NETWORK_INTERFACE = 9;
-
-	/**
-	 * The feature id for the '<em><b>Addresses</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE__ADDRESSES = ADDRESSABLE_ENTITY__ADDRESSES;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE__NAME = ADDRESSABLE_ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE__DESCRIPTION = ADDRESSABLE_ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE__UID = ADDRESSABLE_ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE__UID_GENERATED = ADDRESSABLE_ENTITY_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Used Protocol Stack</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE__USED_PROTOCOL_STACK = ADDRESSABLE_ENTITY_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Performance</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE__PERFORMANCE = ADDRESSABLE_ENTITY_FEATURE_COUNT + 5;
-
-	/**
-	 * The feature id for the '<em><b>Node</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE__NODE = ADDRESSABLE_ENTITY_FEATURE_COUNT + 6;
-
-	/**
-	 * The feature id for the '<em><b>Name generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE__NAME_GENERATED = ADDRESSABLE_ENTITY_FEATURE_COUNT + 7;
-
-	/**
-	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE__ENTITY_TYPE = ADDRESSABLE_ENTITY_FEATURE_COUNT + 8;
-
-	/**
-	 * The number of structural features of the '<em>Network Interface</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE_FEATURE_COUNT = ADDRESSABLE_ENTITY_FEATURE_COUNT + 9;
-
-	/**
-	 * The number of operations of the '<em>Network Interface</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE_OPERATION_COUNT = ADDRESSABLE_ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.NetworkTrafficImpl <em>Network Traffic</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.NetworkTrafficImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNetworkTraffic()
-	 * @generated
-	 */
-	int NETWORK_TRAFFIC = 10;
-
-	/**
-	 * The feature id for the '<em><b>Flows</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_TRAFFIC__FLOWS = 0;
-
-	/**
-	 * The feature id for the '<em><b>Software</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_TRAFFIC__SOFTWARE = 1;
-
-	/**
-	 * The number of structural features of the '<em>Network Traffic</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_TRAFFIC_FEATURE_COUNT = 2;
-
-	/**
-	 * The number of operations of the '<em>Network Traffic</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_TRAFFIC_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.FlowImpl <em>Flow</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.FlowImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getFlow()
-	 * @generated
-	 */
-	int FLOW = 11;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW__UID = ENTITY__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW__UID_GENERATED = ENTITY__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW__NAME = ENTITY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW__DESCRIPTION = ENTITY__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Source Software</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW__SOURCE_SOFTWARE = ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Generated Traffic</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW__GENERATED_TRAFFIC = ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Destination Software</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW__DESTINATION_SOFTWARE = ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Destination Addresses</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW__DESTINATION_ADDRESSES = ENTITY_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of structural features of the '<em>Flow</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW_FEATURE_COUNT = ENTITY_FEATURE_COUNT + 4;
-
-	/**
-	 * The number of operations of the '<em>Flow</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW_OPERATION_COUNT = ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.SdnControlFlowImpl <em>Sdn Control Flow</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.SdnControlFlowImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getSdnControlFlow()
-	 * @generated
-	 */
-	int SDN_CONTROL_FLOW = 12;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROL_FLOW__UID = FLOW__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROL_FLOW__UID_GENERATED = FLOW__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROL_FLOW__NAME = FLOW__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROL_FLOW__DESCRIPTION = FLOW__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Source Software</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROL_FLOW__SOURCE_SOFTWARE = FLOW__SOURCE_SOFTWARE;
-
-	/**
-	 * The feature id for the '<em><b>Generated Traffic</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROL_FLOW__GENERATED_TRAFFIC = FLOW__GENERATED_TRAFFIC;
-
-	/**
-	 * The feature id for the '<em><b>Destination Software</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROL_FLOW__DESTINATION_SOFTWARE = FLOW__DESTINATION_SOFTWARE;
-
-	/**
-	 * The feature id for the '<em><b>Destination Addresses</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROL_FLOW__DESTINATION_ADDRESSES = FLOW__DESTINATION_ADDRESSES;
-
-	/**
-	 * The feature id for the '<em><b>Parent Flow</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROL_FLOW__PARENT_FLOW = FLOW_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Sdn Control Flow</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROL_FLOW_FEATURE_COUNT = FLOW_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Sdn Control Flow</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROL_FLOW_OPERATION_COUNT = FLOW_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.FlowTrafficImpl <em>Flow Traffic</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.FlowTrafficImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getFlowTraffic()
-	 * @generated
-	 */
-	int FLOW_TRAFFIC = 13;
-
-	/**
-	 * The feature id for the '<em><b>Flow</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW_TRAFFIC__FLOW = 0;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW_TRAFFIC__NAME = 1;
-
-	/**
-	 * The number of structural features of the '<em>Flow Traffic</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW_TRAFFIC_FEATURE_COUNT = 2;
-
-	/**
-	 * The number of operations of the '<em>Flow Traffic</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW_TRAFFIC_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.GenericFlowTrafficImpl <em>Generic Flow Traffic</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.GenericFlowTrafficImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getGenericFlowTraffic()
-	 * @generated
-	 */
-	int GENERIC_FLOW_TRAFFIC = 14;
-
-	/**
-	 * The feature id for the '<em><b>Flow</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GENERIC_FLOW_TRAFFIC__FLOW = FLOW_TRAFFIC__FLOW;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GENERIC_FLOW_TRAFFIC__NAME = FLOW_TRAFFIC__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Data Size</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GENERIC_FLOW_TRAFFIC__DATA_SIZE = FLOW_TRAFFIC_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Generic Flow Traffic</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GENERIC_FLOW_TRAFFIC_FEATURE_COUNT = FLOW_TRAFFIC_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Generic Flow Traffic</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GENERIC_FLOW_TRAFFIC_OPERATION_COUNT = FLOW_TRAFFIC_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.CommunicatingApplicationImpl <em>Communicating Application</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.CommunicatingApplicationImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getCommunicatingApplication()
-	 * @generated
-	 */
-	int COMMUNICATING_APPLICATION = 15;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMMUNICATING_APPLICATION__UID = ENTITY__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMMUNICATING_APPLICATION__UID_GENERATED = ENTITY__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMMUNICATING_APPLICATION__NAME = ENTITY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMMUNICATING_APPLICATION__DESCRIPTION = ENTITY__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Traffic Sources</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMMUNICATING_APPLICATION__TRAFFIC_SOURCES = ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Deployed On</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMMUNICATING_APPLICATION__DEPLOYED_ON = ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Communicating Application</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMMUNICATING_APPLICATION_FEATURE_COUNT = ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of operations of the '<em>Communicating Application</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMMUNICATING_APPLICATION_OPERATION_COUNT = ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.TrafficSourceImpl <em>Traffic Source</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.TrafficSourceImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getTrafficSource()
-	 * @generated
-	 */
-	int TRAFFIC_SOURCE = 16;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRAFFIC_SOURCE__UID = ENTITY__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRAFFIC_SOURCE__UID_GENERATED = ENTITY__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRAFFIC_SOURCE__NAME = ENTITY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRAFFIC_SOURCE__DESCRIPTION = ENTITY__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Addresses</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRAFFIC_SOURCE__ADDRESSES = ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Workload</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRAFFIC_SOURCE__WORKLOAD = ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Software Component</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRAFFIC_SOURCE__SOFTWARE_COMPONENT = ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of structural features of the '<em>Traffic Source</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRAFFIC_SOURCE_FEATURE_COUNT = ENTITY_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of operations of the '<em>Traffic Source</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRAFFIC_SOURCE_OPERATION_COUNT = ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.NetworkConfigurationImpl <em>Network Configuration</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.NetworkConfigurationImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNetworkConfiguration()
-	 * @generated
-	 */
-	int NETWORK_CONFIGURATION = 17;
-
-	/**
-	 * The feature id for the '<em><b>Protocols And Stacks</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_CONFIGURATION__PROTOCOLS_AND_STACKS = 0;
-
-	/**
-	 * The feature id for the '<em><b>Routes</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_CONFIGURATION__ROUTES = 1;
-
-	/**
-	 * The feature id for the '<em><b>Rules</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_CONFIGURATION__RULES = 2;
-
-	/**
-	 * The number of structural features of the '<em>Network Configuration</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_CONFIGURATION_FEATURE_COUNT = 3;
-
-	/**
-	 * The number of operations of the '<em>Network Configuration</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_CONFIGURATION_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.ProtocolsRepositoryImpl <em>Protocols Repository</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.ProtocolsRepositoryImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getProtocolsRepository()
-	 * @generated
-	 */
-	int PROTOCOLS_REPOSITORY = 18;
-
-	/**
-	 * The feature id for the '<em><b>Stacks</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOLS_REPOSITORY__STACKS = 0;
-
-	/**
-	 * The feature id for the '<em><b>Protocols</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOLS_REPOSITORY__PROTOCOLS = 1;
-
-	/**
-	 * The number of structural features of the '<em>Protocols Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOLS_REPOSITORY_FEATURE_COUNT = 2;
-
-	/**
-	 * The number of operations of the '<em>Protocols Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOLS_REPOSITORY_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.ProtocolStackImpl <em>Protocol Stack</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.ProtocolStackImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getProtocolStack()
-	 * @generated
-	 */
-	int PROTOCOL_STACK = 19;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_STACK__UID = ENTITY__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_STACK__UID_GENERATED = ENTITY__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_STACK__NAME = ENTITY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_STACK__DESCRIPTION = ENTITY__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Layers</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_STACK__LAYERS = ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Protocol Stack</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_STACK_FEATURE_COUNT = ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Protocol Stack</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_STACK_OPERATION_COUNT = ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.ProtocolLayerImpl <em>Protocol Layer</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.ProtocolLayerImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getProtocolLayer()
-	 * @generated
-	 */
-	int PROTOCOL_LAYER = 20;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_LAYER__UID = ENTITY__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_LAYER__UID_GENERATED = ENTITY__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_LAYER__NAME = ENTITY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_LAYER__DESCRIPTION = ENTITY__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Protocol</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_LAYER__PROTOCOL = ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Is Carried By</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_LAYER__IS_CARRIED_BY = ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Carries</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_LAYER__CARRIES = ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of structural features of the '<em>Protocol Layer</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_LAYER_FEATURE_COUNT = ENTITY_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of operations of the '<em>Protocol Layer</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROTOCOL_LAYER_OPERATION_COUNT = ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.NetworkProtocolImpl <em>Network Protocol</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.NetworkProtocolImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNetworkProtocol()
-	 * @generated
-	 */
-	int NETWORK_PROTOCOL = 21;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_PROTOCOL__UID = ENTITY__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_PROTOCOL__UID_GENERATED = ENTITY__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_PROTOCOL__NAME = ENTITY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_PROTOCOL__DESCRIPTION = ENTITY__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Mtu</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_PROTOCOL__MTU = ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Headers Length</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_PROTOCOL__HEADERS_LENGTH = ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Network Protocol</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_PROTOCOL_FEATURE_COUNT = ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of operations of the '<em>Network Protocol</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_PROTOCOL_OPERATION_COUNT = ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.RoutesRepositoryImpl <em>Routes Repository</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.RoutesRepositoryImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getRoutesRepository()
-	 * @generated
-	 */
-	int ROUTES_REPOSITORY = 22;
-
-	/**
-	 * The feature id for the '<em><b>Routes</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ROUTES_REPOSITORY__ROUTES = 0;
-
-	/**
-	 * The feature id for the '<em><b>Flow Routes</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ROUTES_REPOSITORY__FLOW_ROUTES = 1;
-
-	/**
-	 * The feature id for the '<em><b>Directions</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ROUTES_REPOSITORY__DIRECTIONS = 2;
-
-	/**
-	 * The number of structural features of the '<em>Routes Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ROUTES_REPOSITORY_FEATURE_COUNT = 3;
-
-	/**
-	 * The number of operations of the '<em>Routes Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ROUTES_REPOSITORY_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.DirectionImpl <em>Direction</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.DirectionImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getDirection()
-	 * @generated
-	 */
-	int DIRECTION = 23;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DIRECTION__UID = ENTITY__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DIRECTION__UID_GENERATED = ENTITY__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DIRECTION__NAME = ENTITY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DIRECTION__DESCRIPTION = ENTITY__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>On Node</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DIRECTION__ON_NODE = ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Flow</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DIRECTION__FLOW = ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Via</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DIRECTION__VIA = ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Default</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DIRECTION__DEFAULT = ENTITY_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Probability</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DIRECTION__PROBABILITY = ENTITY_FEATURE_COUNT + 4;
-
-	/**
-	 * The number of structural features of the '<em>Direction</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DIRECTION_FEATURE_COUNT = ENTITY_FEATURE_COUNT + 5;
-
-	/**
-	 * The number of operations of the '<em>Direction</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DIRECTION_OPERATION_COUNT = ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.FlowRouteImpl <em>Flow Route</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.FlowRouteImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getFlowRoute()
-	 * @generated
-	 */
-	int FLOW_ROUTE = 24;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW_ROUTE__UID = ENTITY__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW_ROUTE__UID_GENERATED = ENTITY__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW_ROUTE__NAME = ENTITY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW_ROUTE__DESCRIPTION = ENTITY__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Hops</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW_ROUTE__HOPS = ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Flow</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW_ROUTE__FLOW = ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Start</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW_ROUTE__START = ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>End</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW_ROUTE__END = ENTITY_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Probability</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW_ROUTE__PROBABILITY = ENTITY_FEATURE_COUNT + 4;
-
-	/**
-	 * The number of structural features of the '<em>Flow Route</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW_ROUTE_FEATURE_COUNT = ENTITY_FEATURE_COUNT + 5;
-
-	/**
-	 * The number of operations of the '<em>Flow Route</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOW_ROUTE_OPERATION_COUNT = ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.RouteImpl <em>Route</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.RouteImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getRoute()
-	 * @generated
-	 */
-	int ROUTE = 25;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ROUTE__UID = ENTITY__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ROUTE__UID_GENERATED = ENTITY__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ROUTE__NAME = ENTITY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ROUTE__DESCRIPTION = ENTITY__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Hops</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ROUTE__HOPS = ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Start</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ROUTE__START = ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>End</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ROUTE__END = ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of structural features of the '<em>Route</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ROUTE_FEATURE_COUNT = ENTITY_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of operations of the '<em>Route</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ROUTE_OPERATION_COUNT = ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.HopImpl <em>Hop</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.HopImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getHop()
-	 * @generated
-	 */
-	int HOP = 26;
-
-	/**
-	 * The feature id for the '<em><b>Next Hop</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int HOP__NEXT_HOP = 0;
-
-	/**
-	 * The feature id for the '<em><b>Interfaceref</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int HOP__INTERFACEREF = 1;
-
-	/**
-	 * The number of structural features of the '<em>Hop</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int HOP_FEATURE_COUNT = 2;
-
-	/**
-	 * The number of operations of the '<em>Hop</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int HOP_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.EntityAddressImpl <em>Entity Address</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.EntityAddressImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getEntityAddress()
-	 * @generated
-	 */
-	int ENTITY_ADDRESS = 27;
-
-	/**
-	 * The feature id for the '<em><b>Address</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENTITY_ADDRESS__ADDRESS = 0;
-
-	/**
-	 * The feature id for the '<em><b>Address Given By</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENTITY_ADDRESS__ADDRESS_GIVEN_BY = 1;
-
-	/**
-	 * The number of structural features of the '<em>Entity Address</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENTITY_ADDRESS_FEATURE_COUNT = 2;
-
-	/**
-	 * The number of operations of the '<em>Entity Address</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENTITY_ADDRESS_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.Workload <em>Workload</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.Workload
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getWorkload()
-	 * @generated
-	 */
-	int WORKLOAD = 29;
-
-	/**
-	 * The number of structural features of the '<em>Workload</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WORKLOAD_FEATURE_COUNT = 0;
-
-	/**
-	 * The number of operations of the '<em>Workload</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WORKLOAD_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.GenericWorkloadImpl <em>Generic Workload</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.GenericWorkloadImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getGenericWorkload()
-	 * @generated
-	 */
-	int GENERIC_WORKLOAD = 30;
-
-	/**
-	 * The feature id for the '<em><b>Actions</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GENERIC_WORKLOAD__ACTIONS = WORKLOAD_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Generic Workload</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GENERIC_WORKLOAD_FEATURE_COUNT = WORKLOAD_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Generic Workload</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GENERIC_WORKLOAD_OPERATION_COUNT = WORKLOAD_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.AbstractAction <em>Abstract Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.AbstractAction
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getAbstractAction()
-	 * @generated
-	 */
-	int ABSTRACT_ACTION = 31;
-
-	/**
-	 * The number of structural features of the '<em>Abstract Action</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ABSTRACT_ACTION_FEATURE_COUNT = 0;
-
-	/**
-	 * The number of operations of the '<em>Abstract Action</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ABSTRACT_ACTION_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.BranchActionImpl <em>Branch Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.BranchActionImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getBranchAction()
-	 * @generated
-	 */
-	int BRANCH_ACTION = 32;
-
-	/**
-	 * The feature id for the '<em><b>Intern</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BRANCH_ACTION__INTERN = ABSTRACT_ACTION_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Branch Action</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BRANCH_ACTION_FEATURE_COUNT = ABSTRACT_ACTION_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Branch Action</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BRANCH_ACTION_OPERATION_COUNT = ABSTRACT_ACTION_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.LoopActionImpl <em>Loop Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.LoopActionImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getLoopAction()
-	 * @generated
-	 */
-	int LOOP_ACTION = 33;
-
-	/**
-	 * The feature id for the '<em><b>Intern</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LOOP_ACTION__INTERN = ABSTRACT_ACTION_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Num Iterations</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LOOP_ACTION__NUM_ITERATIONS = ABSTRACT_ACTION_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Loop Action</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LOOP_ACTION_FEATURE_COUNT = ABSTRACT_ACTION_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of operations of the '<em>Loop Action</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LOOP_ACTION_OPERATION_COUNT = ABSTRACT_ACTION_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.SequenceActionImpl <em>Sequence Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.SequenceActionImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getSequenceAction()
-	 * @generated
-	 */
-	int SEQUENCE_ACTION = 34;
-
-	/**
-	 * The feature id for the '<em><b>Intern</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SEQUENCE_ACTION__INTERN = ABSTRACT_ACTION_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Sequence Action</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SEQUENCE_ACTION_FEATURE_COUNT = ABSTRACT_ACTION_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Sequence Action</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SEQUENCE_ACTION_OPERATION_COUNT = ABSTRACT_ACTION_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.StartActionImpl <em>Start Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.StartActionImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getStartAction()
-	 * @generated
-	 */
-	int START_ACTION = 35;
-
-	/**
-	 * The number of structural features of the '<em>Start Action</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int START_ACTION_FEATURE_COUNT = ABSTRACT_ACTION_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of operations of the '<em>Start Action</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int START_ACTION_OPERATION_COUNT = ABSTRACT_ACTION_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.StopActionImpl <em>Stop Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.StopActionImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getStopAction()
-	 * @generated
-	 */
-	int STOP_ACTION = 36;
-
-	/**
-	 * The number of structural features of the '<em>Stop Action</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STOP_ACTION_FEATURE_COUNT = ABSTRACT_ACTION_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of operations of the '<em>Stop Action</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STOP_ACTION_OPERATION_COUNT = ABSTRACT_ACTION_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.TransmitActionImpl <em>Transmit Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.TransmitActionImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getTransmitAction()
-	 * @generated
-	 */
-	int TRANSMIT_ACTION = 37;
-
-	/**
-	 * The feature id for the '<em><b>Flow Traffic</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRANSMIT_ACTION__FLOW_TRAFFIC = ABSTRACT_ACTION_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Transmit Action</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRANSMIT_ACTION_FEATURE_COUNT = ABSTRACT_ACTION_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Transmit Action</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRANSMIT_ACTION_OPERATION_COUNT = ABSTRACT_ACTION_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.WaitActionImpl <em>Wait Action</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.WaitActionImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getWaitAction()
-	 * @generated
-	 */
-	int WAIT_ACTION = 38;
-
-	/**
-	 * The feature id for the '<em><b>Wait Time</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WAIT_ACTION__WAIT_TIME = ABSTRACT_ACTION_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Wait Action</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WAIT_ACTION_FEATURE_COUNT = ABSTRACT_ACTION_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Wait Action</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WAIT_ACTION_OPERATION_COUNT = ABSTRACT_ACTION_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.PerformanceSpecification <em>Performance Specification</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.PerformanceSpecification
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getPerformanceSpecification()
-	 * @generated
-	 */
-	int PERFORMANCE_SPECIFICATION = 39;
-
-	/**
-	 * The number of structural features of the '<em>Performance Specification</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERFORMANCE_SPECIFICATION_FEATURE_COUNT = 0;
-
-	/**
-	 * The number of operations of the '<em>Performance Specification</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERFORMANCE_SPECIFICATION_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.PerformanceLinkImpl <em>Performance Link</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.PerformanceLinkImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getPerformanceLink()
-	 * @generated
-	 */
-	int PERFORMANCE_LINK = 40;
-
-	/**
-	 * The feature id for the '<em><b>Propagation Delay</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERFORMANCE_LINK__PROPAGATION_DELAY = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Max Supported Bandwidth</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERFORMANCE_LINK__MAX_SUPPORTED_BANDWIDTH = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERFORMANCE_LINK__ENTITY_TYPE = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of structural features of the '<em>Performance Link</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERFORMANCE_LINK_FEATURE_COUNT = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of operations of the '<em>Performance Link</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERFORMANCE_LINK_OPERATION_COUNT = PERFORMANCE_SPECIFICATION_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.PerformanceNetworkInterfaceImpl <em>Performance Network Interface</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.PerformanceNetworkInterfaceImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getPerformanceNetworkInterface()
-	 * @generated
-	 */
-	int PERFORMANCE_NETWORK_INTERFACE = 41;
-
-	/**
-	 * The feature id for the '<em><b>Is Up</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERFORMANCE_NETWORK_INTERFACE__IS_UP = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>MTU</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERFORMANCE_NETWORK_INTERFACE__MTU = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Packet Processing Time</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERFORMANCE_NETWORK_INTERFACE__PACKET_PROCESSING_TIME = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Interface Throughput</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERFORMANCE_NETWORK_INTERFACE__INTERFACE_THROUGHPUT = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERFORMANCE_NETWORK_INTERFACE__ENTITY_TYPE = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 4;
-
-	/**
-	 * The number of structural features of the '<em>Performance Network Interface</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERFORMANCE_NETWORK_INTERFACE_FEATURE_COUNT = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 5;
-
-	/**
-	 * The number of operations of the '<em>Performance Network Interface</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERFORMANCE_NETWORK_INTERFACE_OPERATION_COUNT = PERFORMANCE_SPECIFICATION_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.SdnFlowRuleImpl <em>Sdn Flow Rule</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.SdnFlowRuleImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getSdnFlowRule()
-	 * @generated
-	 */
-	int SDN_FLOW_RULE = 42;
-
-	/**
-	 * The feature id for the '<em><b>Sdn Switch</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_FLOW_RULE__SDN_SWITCH = 0;
-
-	/**
-	 * The feature id for the '<em><b>Flow</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_FLOW_RULE__FLOW = 1;
-
-	/**
-	 * The feature id for the '<em><b>Probability Hardware</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_FLOW_RULE__PROBABILITY_HARDWARE = 2;
-
-	/**
-	 * The feature id for the '<em><b>Probability Software</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_FLOW_RULE__PROBABILITY_SOFTWARE = 3;
-
-	/**
-	 * The feature id for the '<em><b>Probability Controller</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_FLOW_RULE__PROBABILITY_CONTROLLER = 4;
-
-	/**
-	 * The feature id for the '<em><b>Controller Application</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_FLOW_RULE__CONTROLLER_APPLICATION = 5;
-
-	/**
-	 * The number of structural features of the '<em>Sdn Flow Rule</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_FLOW_RULE_FEATURE_COUNT = 6;
-
-	/**
-	 * The number of operations of the '<em>Sdn Flow Rule</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_FLOW_RULE_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.SdnControllerImpl <em>Sdn Controller</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.SdnControllerImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getSdnController()
-	 * @generated
-	 */
-	int SDN_CONTROLLER = 43;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROLLER__UID = COMMUNICATING_APPLICATION__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROLLER__UID_GENERATED = COMMUNICATING_APPLICATION__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROLLER__NAME = COMMUNICATING_APPLICATION__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROLLER__DESCRIPTION = COMMUNICATING_APPLICATION__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Traffic Sources</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROLLER__TRAFFIC_SOURCES = COMMUNICATING_APPLICATION__TRAFFIC_SOURCES;
-
-	/**
-	 * The feature id for the '<em><b>Deployed On</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROLLER__DEPLOYED_ON = COMMUNICATING_APPLICATION__DEPLOYED_ON;
-
-	/**
-	 * The feature id for the '<em><b>Applications</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROLLER__APPLICATIONS = COMMUNICATING_APPLICATION_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Nodes</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROLLER__NODES = COMMUNICATING_APPLICATION_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Sdn Controller</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROLLER_FEATURE_COUNT = COMMUNICATING_APPLICATION_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of operations of the '<em>Sdn Controller</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROLLER_OPERATION_COUNT = COMMUNICATING_APPLICATION_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.SdnControllerApplicationImpl <em>Sdn Controller Application</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.SdnControllerApplicationImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getSdnControllerApplication()
-	 * @generated
-	 */
-	int SDN_CONTROLLER_APPLICATION = 44;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROLLER_APPLICATION__UID = COMMUNICATING_APPLICATION__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROLLER_APPLICATION__UID_GENERATED = COMMUNICATING_APPLICATION__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROLLER_APPLICATION__NAME = COMMUNICATING_APPLICATION__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROLLER_APPLICATION__DESCRIPTION = COMMUNICATING_APPLICATION__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Traffic Sources</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROLLER_APPLICATION__TRAFFIC_SOURCES = COMMUNICATING_APPLICATION__TRAFFIC_SOURCES;
-
-	/**
-	 * The feature id for the '<em><b>Deployed On</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROLLER_APPLICATION__DEPLOYED_ON = COMMUNICATING_APPLICATION__DEPLOYED_ON;
-
-	/**
-	 * The feature id for the '<em><b>Belongs To</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROLLER_APPLICATION__BELONGS_TO = COMMUNICATING_APPLICATION_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Is Default</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROLLER_APPLICATION__IS_DEFAULT = COMMUNICATING_APPLICATION_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Response Delay</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROLLER_APPLICATION__RESPONSE_DELAY = COMMUNICATING_APPLICATION_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of structural features of the '<em>Sdn Controller Application</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROLLER_APPLICATION_FEATURE_COUNT = COMMUNICATING_APPLICATION_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of operations of the '<em>Sdn Controller Application</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_CONTROLLER_APPLICATION_OPERATION_COUNT = COMMUNICATING_APPLICATION_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.IType <em>IType</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.IType
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getIType()
-	 * @generated
-	 */
-	int ITYPE = 45;
-
-	/**
-	 * The number of structural features of the '<em>IType</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ITYPE_FEATURE_COUNT = 0;
-
-	/**
-	 * The number of operations of the '<em>IType</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ITYPE_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.CommonImpl <em>Common</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.CommonImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getCommon()
-	 * @generated
-	 */
-	int COMMON = 46;
-
-	/**
-	 * The number of structural features of the '<em>Common</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMMON_FEATURE_COUNT = ITYPE_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of operations of the '<em>Common</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMMON_OPERATION_COUNT = ITYPE_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.SDNImpl <em>SDN</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.SDNImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getSDN()
-	 * @generated
-	 */
-	int SDN = 47;
-
-	/**
-	 * The feature id for the '<em><b>Performance</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN__PERFORMANCE = ITYPE_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Controller</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN__CONTROLLER = ITYPE_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Open Flow End Point</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN__OPEN_FLOW_END_POINT = ITYPE_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of structural features of the '<em>SDN</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_FEATURE_COUNT = ITYPE_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of operations of the '<em>SDN</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_OPERATION_COUNT = ITYPE_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.IntermediatePerformanceImpl <em>Intermediate Performance</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.IntermediatePerformanceImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getIntermediatePerformance()
-	 * @generated
-	 */
-	int INTERMEDIATE_PERFORMANCE = 48;
-
-	/**
-	 * The feature id for the '<em><b>Forwarding Latency</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Forwarding Bandwidth BPS</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Switching Capacity PPS</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERMEDIATE_PERFORMANCE__ENTITY_TYPE = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of structural features of the '<em>Intermediate Performance</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERMEDIATE_PERFORMANCE_FEATURE_COUNT = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 4;
-
-	/**
-	 * The number of operations of the '<em>Intermediate Performance</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERMEDIATE_PERFORMANCE_OPERATION_COUNT = PERFORMANCE_SPECIFICATION_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.EndPerformanceImpl <em>End Performance</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.EndPerformanceImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getEndPerformance()
-	 * @generated
-	 */
-	int END_PERFORMANCE = 49;
-
-	/**
-	 * The feature id for the '<em><b>Software Layers Delay</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int END_PERFORMANCE__SOFTWARE_LAYERS_DELAY = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int END_PERFORMANCE__ENTITY_TYPE = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>End Performance</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int END_PERFORMANCE_FEATURE_COUNT = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of operations of the '<em>End Performance</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int END_PERFORMANCE_OPERATION_COUNT = PERFORMANCE_SPECIFICATION_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.PerformanceSdnNodeImpl <em>Performance Sdn Node</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.PerformanceSdnNodeImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getPerformanceSdnNode()
-	 * @generated
-	 */
-	int PERFORMANCE_SDN_NODE = 50;
-
-	/**
-	 * The feature id for the '<em><b>Software Switching Performance</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERFORMANCE_SDN_NODE__SOFTWARE_SWITCHING_PERFORMANCE = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Hardware Switching Performance</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERFORMANCE_SDN_NODE__HARDWARE_SWITCHING_PERFORMANCE = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERFORMANCE_SDN_NODE__ENTITY_TYPE = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of structural features of the '<em>Performance Sdn Node</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERFORMANCE_SDN_NODE_FEATURE_COUNT = PERFORMANCE_SPECIFICATION_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of operations of the '<em>Performance Sdn Node</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PERFORMANCE_SDN_NODE_OPERATION_COUNT = PERFORMANCE_SPECIFICATION_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.DNIUnit <em>Unit</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.DNIUnit
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getDNIUnit()
-	 * @generated
-	 */
-	int DNI_UNIT = 51;
-
-	/**
-	 * The number of structural features of the '<em>Unit</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DNI_UNIT_FEATURE_COUNT = 0;
-
-	/**
-	 * The number of operations of the '<em>Unit</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DNI_UNIT_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.SpeedUnitImpl <em>Speed Unit</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.SpeedUnitImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getSpeedUnit()
-	 * @generated
-	 */
-	int SPEED_UNIT = 52;
-
-	/**
-	 * The feature id for the '<em><b>Unit</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SPEED_UNIT__UNIT = DNI_UNIT_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Prefix</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SPEED_UNIT__PREFIX = DNI_UNIT_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Speed Unit</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SPEED_UNIT_FEATURE_COUNT = DNI_UNIT_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of operations of the '<em>Speed Unit</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SPEED_UNIT_OPERATION_COUNT = DNI_UNIT_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.DataUnitImpl <em>Data Unit</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.DataUnitImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getDataUnit()
-	 * @generated
-	 */
-	int DATA_UNIT = 53;
-
-	/**
-	 * The feature id for the '<em><b>Prefix</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DATA_UNIT__PREFIX = DNI_UNIT_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Data Unit</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DATA_UNIT_FEATURE_COUNT = DNI_UNIT_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Data Unit</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DATA_UNIT_OPERATION_COUNT = DNI_UNIT_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.TimeUnitImpl <em>Time Unit</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.TimeUnitImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getTimeUnit()
-	 * @generated
-	 */
-	int TIME_UNIT = 54;
-
-	/**
-	 * The feature id for the '<em><b>Unit</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TIME_UNIT__UNIT = DNI_UNIT_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Time Unit</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TIME_UNIT_FEATURE_COUNT = DNI_UNIT_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Time Unit</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TIME_UNIT_OPERATION_COUNT = DNI_UNIT_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.Dependency <em>Dependency</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.Dependency
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getDependency()
-	 * @generated
-	 */
-	int DEPENDENCY = 55;
-
-	/**
-	 * The feature id for the '<em><b>Unit</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEPENDENCY__UNIT = 0;
-
-	/**
-	 * The number of structural features of the '<em>Dependency</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEPENDENCY_FEATURE_COUNT = 1;
-
-	/**
-	 * The number of operations of the '<em>Dependency</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEPENDENCY_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.Variable <em>Variable</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.Variable
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getVariable()
-	 * @generated
-	 */
-	int VARIABLE = 56;
-
-	/**
-	 * The feature id for the '<em><b>Unit</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int VARIABLE__UNIT = DEPENDENCY__UNIT;
-
-	/**
-	 * The number of structural features of the '<em>Variable</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int VARIABLE_FEATURE_COUNT = DEPENDENCY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of operations of the '<em>Variable</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int VARIABLE_OPERATION_COUNT = DEPENDENCY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.Function <em>Function</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.Function
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getFunction()
-	 * @generated
-	 */
-	int FUNCTION = 57;
-
-	/**
-	 * The feature id for the '<em><b>Unit</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FUNCTION__UNIT = DEPENDENCY__UNIT;
-
-	/**
-	 * The number of structural features of the '<em>Function</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FUNCTION_FEATURE_COUNT = DEPENDENCY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of operations of the '<em>Function</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FUNCTION_OPERATION_COUNT = DEPENDENCY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.ConstantDoubleVariableImpl <em>Constant Double Variable</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.ConstantDoubleVariableImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getConstantDoubleVariable()
-	 * @generated
-	 */
-	int CONSTANT_DOUBLE_VARIABLE = 58;
-
-	/**
-	 * The feature id for the '<em><b>Unit</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTANT_DOUBLE_VARIABLE__UNIT = VARIABLE__UNIT;
-
-	/**
-	 * The feature id for the '<em><b>Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTANT_DOUBLE_VARIABLE__VALUE = VARIABLE_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Constant Double Variable</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTANT_DOUBLE_VARIABLE_FEATURE_COUNT = VARIABLE_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Constant Double Variable</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTANT_DOUBLE_VARIABLE_OPERATION_COUNT = VARIABLE_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.ConstantLongVariableImpl <em>Constant Long Variable</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.ConstantLongVariableImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getConstantLongVariable()
-	 * @generated
-	 */
-	int CONSTANT_LONG_VARIABLE = 59;
-
-	/**
-	 * The feature id for the '<em><b>Unit</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTANT_LONG_VARIABLE__UNIT = VARIABLE__UNIT;
-
-	/**
-	 * The feature id for the '<em><b>Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTANT_LONG_VARIABLE__VALUE = VARIABLE_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Constant Long Variable</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTANT_LONG_VARIABLE_FEATURE_COUNT = VARIABLE_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Constant Long Variable</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONSTANT_LONG_VARIABLE_OPERATION_COUNT = VARIABLE_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.RandomVariableImpl <em>Random Variable</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.RandomVariableImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getRandomVariable()
-	 * @generated
-	 */
-	int RANDOM_VARIABLE = 60;
-
-	/**
-	 * The feature id for the '<em><b>Unit</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int RANDOM_VARIABLE__UNIT = VARIABLE__UNIT;
-
-	/**
-	 * The feature id for the '<em><b>Cdf</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int RANDOM_VARIABLE__CDF = VARIABLE_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Random Variable</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int RANDOM_VARIABLE_FEATURE_COUNT = VARIABLE_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Random Variable</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int RANDOM_VARIABLE_OPERATION_COUNT = VARIABLE_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.FloatCoordinateImpl <em>Float Coordinate</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.FloatCoordinateImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getFloatCoordinate()
-	 * @generated
-	 */
-	int FLOAT_COORDINATE = 61;
-
-	/**
-	 * The feature id for the '<em><b>X</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOAT_COORDINATE__X = 0;
-
-	/**
-	 * The feature id for the '<em><b>Y</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOAT_COORDINATE__Y = 1;
-
-	/**
-	 * The number of structural features of the '<em>Float Coordinate</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOAT_COORDINATE_FEATURE_COUNT = 2;
-
-	/**
-	 * The number of operations of the '<em>Float Coordinate</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FLOAT_COORDINATE_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.DiscreteFunctionImpl <em>Discrete Function</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.DiscreteFunctionImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getDiscreteFunction()
-	 * @generated
-	 */
-	int DISCRETE_FUNCTION = 62;
-
-	/**
-	 * The feature id for the '<em><b>Unit</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DISCRETE_FUNCTION__UNIT = FUNCTION__UNIT;
-
-	/**
-	 * The feature id for the '<em><b>Vals</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DISCRETE_FUNCTION__VALS = FUNCTION_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Discrete Function</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DISCRETE_FUNCTION_FEATURE_COUNT = FUNCTION_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Discrete Function</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DISCRETE_FUNCTION_OPERATION_COUNT = FUNCTION_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.ExponentialFunctionImpl <em>Exponential Function</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.ExponentialFunctionImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getExponentialFunction()
-	 * @generated
-	 */
-	int EXPONENTIAL_FUNCTION = 63;
-
-	/**
-	 * The feature id for the '<em><b>Unit</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXPONENTIAL_FUNCTION__UNIT = FUNCTION__UNIT;
-
-	/**
-	 * The feature id for the '<em><b>Lambda</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXPONENTIAL_FUNCTION__LAMBDA = FUNCTION_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Exponential Function</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXPONENTIAL_FUNCTION_FEATURE_COUNT = FUNCTION_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Exponential Function</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXPONENTIAL_FUNCTION_OPERATION_COUNT = FUNCTION_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.EntityTypesImpl <em>Entity Types</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.EntityTypesImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getEntityTypes()
-	 * @generated
-	 */
-	int ENTITY_TYPES = 64;
-
-	/**
-	 * The feature id for the '<em><b>Types</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENTITY_TYPES__TYPES = 0;
-
-	/**
-	 * The number of structural features of the '<em>Entity Types</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENTITY_TYPES_FEATURE_COUNT = 1;
-
-	/**
-	 * The number of operations of the '<em>Entity Types</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENTITY_TYPES_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.ITypedEntity <em>ITyped Entity</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.ITypedEntity
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getITypedEntity()
-	 * @generated
-	 */
-	int ITYPED_ENTITY = 65;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ITYPED_ENTITY__NAME = NAMED_ELEMENT__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ITYPED_ENTITY__DESCRIPTION = NAMED_ELEMENT__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ITYPED_ENTITY__UID = NAMED_ELEMENT_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ITYPED_ENTITY__UID_GENERATED = NAMED_ELEMENT_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>ITyped Entity</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ITYPED_ENTITY_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of operations of the '<em>ITyped Entity</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ITYPED_ENTITY_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.NodeTypeImpl <em>Node Type</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.NodeTypeImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNodeType()
-	 * @generated
-	 */
-	int NODE_TYPE = 66;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE_TYPE__NAME = ITYPED_ENTITY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE_TYPE__DESCRIPTION = ITYPED_ENTITY__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE_TYPE__UID = ITYPED_ENTITY__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE_TYPE__UID_GENERATED = ITYPED_ENTITY__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Entities</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE_TYPE__ENTITIES = ITYPED_ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Node Type</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE_TYPE_FEATURE_COUNT = ITYPED_ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Node Type</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NODE_TYPE_OPERATION_COUNT = ITYPED_ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.EndPerformanceTypeImpl <em>End Performance Type</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.EndPerformanceTypeImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getEndPerformanceType()
-	 * @generated
-	 */
-	int END_PERFORMANCE_TYPE = 67;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int END_PERFORMANCE_TYPE__NAME = ITYPED_ENTITY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int END_PERFORMANCE_TYPE__DESCRIPTION = ITYPED_ENTITY__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int END_PERFORMANCE_TYPE__UID = ITYPED_ENTITY__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int END_PERFORMANCE_TYPE__UID_GENERATED = ITYPED_ENTITY__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Entities</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int END_PERFORMANCE_TYPE__ENTITIES = ITYPED_ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>End Performance Type</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int END_PERFORMANCE_TYPE_FEATURE_COUNT = ITYPED_ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>End Performance Type</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int END_PERFORMANCE_TYPE_OPERATION_COUNT = ITYPED_ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.IntermediatePerformanceTypeImpl <em>Intermediate Performance Type</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.IntermediatePerformanceTypeImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getIntermediatePerformanceType()
-	 * @generated
-	 */
-	int INTERMEDIATE_PERFORMANCE_TYPE = 68;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERMEDIATE_PERFORMANCE_TYPE__NAME = ITYPED_ENTITY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERMEDIATE_PERFORMANCE_TYPE__DESCRIPTION = ITYPED_ENTITY__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERMEDIATE_PERFORMANCE_TYPE__UID = ITYPED_ENTITY__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERMEDIATE_PERFORMANCE_TYPE__UID_GENERATED = ITYPED_ENTITY__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Entities</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERMEDIATE_PERFORMANCE_TYPE__ENTITIES = ITYPED_ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Intermediate Performance Type</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERMEDIATE_PERFORMANCE_TYPE_FEATURE_COUNT = ITYPED_ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Intermediate Performance Type</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERMEDIATE_PERFORMANCE_TYPE_OPERATION_COUNT = ITYPED_ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.SdnNodePerformanceTypeImpl <em>Sdn Node Performance Type</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.SdnNodePerformanceTypeImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getSdnNodePerformanceType()
-	 * @generated
-	 */
-	int SDN_NODE_PERFORMANCE_TYPE = 69;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_NODE_PERFORMANCE_TYPE__NAME = ITYPED_ENTITY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_NODE_PERFORMANCE_TYPE__DESCRIPTION = ITYPED_ENTITY__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_NODE_PERFORMANCE_TYPE__UID = ITYPED_ENTITY__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_NODE_PERFORMANCE_TYPE__UID_GENERATED = ITYPED_ENTITY__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Entities</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_NODE_PERFORMANCE_TYPE__ENTITIES = ITYPED_ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Sdn Node Performance Type</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_NODE_PERFORMANCE_TYPE_FEATURE_COUNT = ITYPED_ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Sdn Node Performance Type</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SDN_NODE_PERFORMANCE_TYPE_OPERATION_COUNT = ITYPED_ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.NetworkInterfaceTypeImpl <em>Network Interface Type</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.NetworkInterfaceTypeImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNetworkInterfaceType()
-	 * @generated
-	 */
-	int NETWORK_INTERFACE_TYPE = 70;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE_TYPE__NAME = ITYPED_ENTITY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE_TYPE__DESCRIPTION = ITYPED_ENTITY__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE_TYPE__UID = ITYPED_ENTITY__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE_TYPE__UID_GENERATED = ITYPED_ENTITY__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Entities</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE_TYPE__ENTITIES = ITYPED_ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Network Interface Type</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE_TYPE_FEATURE_COUNT = ITYPED_ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Network Interface Type</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE_TYPE_OPERATION_COUNT = ITYPED_ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.NetworkInterfacePerformanceTypeImpl <em>Network Interface Performance Type</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.NetworkInterfacePerformanceTypeImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNetworkInterfacePerformanceType()
-	 * @generated
-	 */
-	int NETWORK_INTERFACE_PERFORMANCE_TYPE = 71;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE_PERFORMANCE_TYPE__NAME = ITYPED_ENTITY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE_PERFORMANCE_TYPE__DESCRIPTION = ITYPED_ENTITY__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE_PERFORMANCE_TYPE__UID = ITYPED_ENTITY__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE_PERFORMANCE_TYPE__UID_GENERATED = ITYPED_ENTITY__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Entities</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE_PERFORMANCE_TYPE__ENTITIES = ITYPED_ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Network Interface Performance Type</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE_PERFORMANCE_TYPE_FEATURE_COUNT = ITYPED_ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Network Interface Performance Type</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NETWORK_INTERFACE_PERFORMANCE_TYPE_OPERATION_COUNT = ITYPED_ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.LinkTypeImpl <em>Link Type</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.LinkTypeImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getLinkType()
-	 * @generated
-	 */
-	int LINK_TYPE = 72;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_TYPE__NAME = ITYPED_ENTITY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_TYPE__DESCRIPTION = ITYPED_ENTITY__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_TYPE__UID = ITYPED_ENTITY__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_TYPE__UID_GENERATED = ITYPED_ENTITY__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Entities</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_TYPE__ENTITIES = ITYPED_ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Link Type</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_TYPE_FEATURE_COUNT = ITYPED_ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Link Type</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_TYPE_OPERATION_COUNT = ITYPED_ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.impl.LinkPerformanceTypeImpl <em>Link Performance Type</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.impl.LinkPerformanceTypeImpl
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getLinkPerformanceType()
-	 * @generated
-	 */
-	int LINK_PERFORMANCE_TYPE = 73;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_PERFORMANCE_TYPE__NAME = ITYPED_ENTITY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_PERFORMANCE_TYPE__DESCRIPTION = ITYPED_ENTITY__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_PERFORMANCE_TYPE__UID = ITYPED_ENTITY__UID;
-
-	/**
-	 * The feature id for the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_PERFORMANCE_TYPE__UID_GENERATED = ITYPED_ENTITY__UID_GENERATED;
-
-	/**
-	 * The feature id for the '<em><b>Entities</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_PERFORMANCE_TYPE__ENTITIES = ITYPED_ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Link Performance Type</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_PERFORMANCE_TYPE_FEATURE_COUNT = ITYPED_ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Link Performance Type</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LINK_PERFORMANCE_TYPE_OPERATION_COUNT = ITYPED_ENTITY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.UnitPrefix <em>Unit Prefix</em>}' enum.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.UnitPrefix
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getUnitPrefix()
-	 * @generated
-	 */
-	int UNIT_PREFIX = 74;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.Speed <em>Speed</em>}' enum.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.Speed
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getSpeed()
-	 * @generated
-	 */
-	int SPEED = 75;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3.Time <em>Time</em>}' enum.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3.Time
-	 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getTime()
-	 * @generated
-	 */
-	int TIME = 76;
-
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.NamedElement <em>Named Element</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Named Element</em>'.
-	 * @see tools.descartes.dni.dnimm3.NamedElement
-	 * @generated
-	 */
-	EClass getNamedElement();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.NamedElement#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see tools.descartes.dni.dnimm3.NamedElement#getName()
-	 * @see #getNamedElement()
-	 * @generated
-	 */
-	EAttribute getNamedElement_Name();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.NamedElement#getDescription <em>Description</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Description</em>'.
-	 * @see tools.descartes.dni.dnimm3.NamedElement#getDescription()
-	 * @see #getNamedElement()
-	 * @generated
-	 */
-	EAttribute getNamedElement_Description();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.Identifier <em>Identifier</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Identifier</em>'.
-	 * @see tools.descartes.dni.dnimm3.Identifier
-	 * @generated
-	 */
-	EClass getIdentifier();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.Identifier#getUid <em>Uid</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Uid</em>'.
-	 * @see tools.descartes.dni.dnimm3.Identifier#getUid()
-	 * @see #getIdentifier()
-	 * @generated
-	 */
-	EAttribute getIdentifier_Uid();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.Identifier#getUid_generated <em>Uid generated</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Uid generated</em>'.
-	 * @see tools.descartes.dni.dnimm3.Identifier#getUid_generated()
-	 * @see #getIdentifier()
-	 * @generated
-	 */
-	EAttribute getIdentifier_Uid_generated();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.Entity <em>Entity</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Entity</em>'.
-	 * @see tools.descartes.dni.dnimm3.Entity
-	 * @generated
-	 */
-	EClass getEntity();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.NetworkInfrastructure <em>Network Infrastructure</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Network Infrastructure</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkInfrastructure
-	 * @generated
-	 */
-	EClass getNetworkInfrastructure();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.NetworkInfrastructure#getTraffic <em>Traffic</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Traffic</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkInfrastructure#getTraffic()
-	 * @see #getNetworkInfrastructure()
-	 * @generated
-	 */
-	EReference getNetworkInfrastructure_Traffic();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.NetworkInfrastructure#getStructure <em>Structure</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Structure</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkInfrastructure#getStructure()
-	 * @see #getNetworkInfrastructure()
-	 * @generated
-	 */
-	EReference getNetworkInfrastructure_Structure();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.NetworkInfrastructure#getConfiguration <em>Configuration</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Configuration</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkInfrastructure#getConfiguration()
-	 * @see #getNetworkInfrastructure()
-	 * @generated
-	 */
-	EReference getNetworkInfrastructure_Configuration();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.NetworkInfrastructure#getEntityTypes <em>Entity Types</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Entity Types</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkInfrastructure#getEntityTypes()
-	 * @see #getNetworkInfrastructure()
-	 * @generated
-	 */
-	EReference getNetworkInfrastructure_EntityTypes();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.NetworkInfrastructure#getDataCenterName <em>Data Center Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Data Center Name</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkInfrastructure#getDataCenterName()
-	 * @see #getNetworkInfrastructure()
-	 * @generated
-	 */
-	EAttribute getNetworkInfrastructure_DataCenterName();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.NetworkInfrastructure#getMetaModelVersion <em>Meta Model Version</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Meta Model Version</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkInfrastructure#getMetaModelVersion()
-	 * @see #getNetworkInfrastructure()
-	 * @generated
-	 */
-	EAttribute getNetworkInfrastructure_MetaModelVersion();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.NetworkStructure <em>Network Structure</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Network Structure</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkStructure
-	 * @generated
-	 */
-	EClass getNetworkStructure();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.NetworkStructure#getNodes <em>Nodes</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Nodes</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkStructure#getNodes()
-	 * @see #getNetworkStructure()
-	 * @generated
-	 */
-	EReference getNetworkStructure_Nodes();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.NetworkStructure#getLinks <em>Links</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Links</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkStructure#getLinks()
-	 * @see #getNetworkStructure()
-	 * @generated
-	 */
-	EReference getNetworkStructure_Links();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.Node <em>Node</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Node</em>'.
-	 * @see tools.descartes.dni.dnimm3.Node
-	 * @generated
-	 */
-	EClass getNode();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.Node#getInterfaces <em>Interfaces</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Interfaces</em>'.
-	 * @see tools.descartes.dni.dnimm3.Node#getInterfaces()
-	 * @see #getNode()
-	 * @generated
-	 */
-	EReference getNode_Interfaces();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.Node#getSdntype <em>Sdntype</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Sdntype</em>'.
-	 * @see tools.descartes.dni.dnimm3.Node#getSdntype()
-	 * @see #getNode()
-	 * @generated
-	 */
-	EReference getNode_Sdntype();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.Node#isIsPhysical <em>Is Physical</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Is Physical</em>'.
-	 * @see tools.descartes.dni.dnimm3.Node#isIsPhysical()
-	 * @see #getNode()
-	 * @generated
-	 */
-	EAttribute getNode_IsPhysical();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.Node#isIsPhysical_derived <em>Is Physical derived</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Is Physical derived</em>'.
-	 * @see tools.descartes.dni.dnimm3.Node#isIsPhysical_derived()
-	 * @see #getNode()
-	 * @generated
-	 */
-	EAttribute getNode_IsPhysical_derived();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3.Node#getHosts <em>Hosts</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Hosts</em>'.
-	 * @see tools.descartes.dni.dnimm3.Node#getHosts()
-	 * @see #getNode()
-	 * @generated
-	 */
-	EReference getNode_Hosts();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.Node#getIsHostedOn <em>Is Hosted On</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Is Hosted On</em>'.
-	 * @see tools.descartes.dni.dnimm3.Node#getIsHostedOn()
-	 * @see #getNode()
-	 * @generated
-	 */
-	EReference getNode_IsHostedOn();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.Node#getEnd <em>End</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>End</em>'.
-	 * @see tools.descartes.dni.dnimm3.Node#getEnd()
-	 * @see #getNode()
-	 * @generated
-	 */
-	EReference getNode_End();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.Node#getIntermediate <em>Intermediate</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Intermediate</em>'.
-	 * @see tools.descartes.dni.dnimm3.Node#getIntermediate()
-	 * @see #getNode()
-	 * @generated
-	 */
-	EReference getNode_Intermediate();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.Node#getEntityType <em>Entity Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Entity Type</em>'.
-	 * @see tools.descartes.dni.dnimm3.Node#getEntityType()
-	 * @see #getNode()
-	 * @generated
-	 */
-	EReference getNode_EntityType();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.End <em>End</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>End</em>'.
-	 * @see tools.descartes.dni.dnimm3.End
-	 * @generated
-	 */
-	EClass getEnd();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.End#getPerformance <em>Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3.End#getPerformance()
-	 * @see #getEnd()
-	 * @generated
-	 */
-	EReference getEnd_Performance();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3.End#getSoftware <em>Software</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Software</em>'.
-	 * @see tools.descartes.dni.dnimm3.End#getSoftware()
-	 * @see #getEnd()
-	 * @generated
-	 */
-	EReference getEnd_Software();
-
-	/**
-	 * Returns the meta object for the container reference '{@link tools.descartes.dni.dnimm3.End#getNode <em>Node</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the container reference '<em>Node</em>'.
-	 * @see tools.descartes.dni.dnimm3.End#getNode()
-	 * @see #getEnd()
-	 * @generated
-	 */
-	EReference getEnd_Node();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.End#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see tools.descartes.dni.dnimm3.End#getName()
-	 * @see #getEnd()
-	 * @generated
-	 */
-	EAttribute getEnd_Name();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.Intermediate <em>Intermediate</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Intermediate</em>'.
-	 * @see tools.descartes.dni.dnimm3.Intermediate
-	 * @generated
-	 */
-	EClass getIntermediate();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.Intermediate#getPerformance <em>Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3.Intermediate#getPerformance()
-	 * @see #getIntermediate()
-	 * @generated
-	 */
-	EReference getIntermediate_Performance();
-
-	/**
-	 * Returns the meta object for the container reference '{@link tools.descartes.dni.dnimm3.Intermediate#getNode <em>Node</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the container reference '<em>Node</em>'.
-	 * @see tools.descartes.dni.dnimm3.Intermediate#getNode()
-	 * @see #getIntermediate()
-	 * @generated
-	 */
-	EReference getIntermediate_Node();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.Intermediate#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see tools.descartes.dni.dnimm3.Intermediate#getName()
-	 * @see #getIntermediate()
-	 * @generated
-	 */
-	EAttribute getIntermediate_Name();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.Link <em>Link</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Link</em>'.
-	 * @see tools.descartes.dni.dnimm3.Link
-	 * @generated
-	 */
-	EClass getLink();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3.Link#getConnects <em>Connects</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Connects</em>'.
-	 * @see tools.descartes.dni.dnimm3.Link#getConnects()
-	 * @see #getLink()
-	 * @generated
-	 */
-	EReference getLink_Connects();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.Link#getPerformance <em>Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3.Link#getPerformance()
-	 * @see #getLink()
-	 * @generated
-	 */
-	EReference getLink_Performance();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.Link#getName_generated <em>Name generated</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name generated</em>'.
-	 * @see tools.descartes.dni.dnimm3.Link#getName_generated()
-	 * @see #getLink()
-	 * @generated
-	 */
-	EAttribute getLink_Name_generated();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.Link#getEntityType <em>Entity Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Entity Type</em>'.
-	 * @see tools.descartes.dni.dnimm3.Link#getEntityType()
-	 * @see #getLink()
-	 * @generated
-	 */
-	EReference getLink_EntityType();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.NetworkInterface <em>Network Interface</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Network Interface</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkInterface
-	 * @generated
-	 */
-	EClass getNetworkInterface();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.NetworkInterface#getUsedProtocolStack <em>Used Protocol Stack</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Used Protocol Stack</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkInterface#getUsedProtocolStack()
-	 * @see #getNetworkInterface()
-	 * @generated
-	 */
-	EReference getNetworkInterface_UsedProtocolStack();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.NetworkInterface#getPerformance <em>Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkInterface#getPerformance()
-	 * @see #getNetworkInterface()
-	 * @generated
-	 */
-	EReference getNetworkInterface_Performance();
-
-	/**
-	 * Returns the meta object for the container reference '{@link tools.descartes.dni.dnimm3.NetworkInterface#getNode <em>Node</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the container reference '<em>Node</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkInterface#getNode()
-	 * @see #getNetworkInterface()
-	 * @generated
-	 */
-	EReference getNetworkInterface_Node();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.NetworkInterface#getName_generated <em>Name generated</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name generated</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkInterface#getName_generated()
-	 * @see #getNetworkInterface()
-	 * @generated
-	 */
-	EAttribute getNetworkInterface_Name_generated();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.NetworkInterface#getEntityType <em>Entity Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Entity Type</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkInterface#getEntityType()
-	 * @see #getNetworkInterface()
-	 * @generated
-	 */
-	EReference getNetworkInterface_EntityType();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.NetworkTraffic <em>Network Traffic</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Network Traffic</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkTraffic
-	 * @generated
-	 */
-	EClass getNetworkTraffic();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.NetworkTraffic#getFlows <em>Flows</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Flows</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkTraffic#getFlows()
-	 * @see #getNetworkTraffic()
-	 * @generated
-	 */
-	EReference getNetworkTraffic_Flows();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.NetworkTraffic#getSoftware <em>Software</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Software</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkTraffic#getSoftware()
-	 * @see #getNetworkTraffic()
-	 * @generated
-	 */
-	EReference getNetworkTraffic_Software();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.Flow <em>Flow</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Flow</em>'.
-	 * @see tools.descartes.dni.dnimm3.Flow
-	 * @generated
-	 */
-	EClass getFlow();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.Flow#getSourceSoftware <em>Source Software</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Source Software</em>'.
-	 * @see tools.descartes.dni.dnimm3.Flow#getSourceSoftware()
-	 * @see #getFlow()
-	 * @generated
-	 */
-	EReference getFlow_SourceSoftware();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.Flow#getGeneratedTraffic <em>Generated Traffic</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Generated Traffic</em>'.
-	 * @see tools.descartes.dni.dnimm3.Flow#getGeneratedTraffic()
-	 * @see #getFlow()
-	 * @generated
-	 */
-	EReference getFlow_GeneratedTraffic();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3.Flow#getDestinationSoftware <em>Destination Software</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Destination Software</em>'.
-	 * @see tools.descartes.dni.dnimm3.Flow#getDestinationSoftware()
-	 * @see #getFlow()
-	 * @generated
-	 */
-	EReference getFlow_DestinationSoftware();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.Flow#getDestinationAddresses <em>Destination Addresses</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Destination Addresses</em>'.
-	 * @see tools.descartes.dni.dnimm3.Flow#getDestinationAddresses()
-	 * @see #getFlow()
-	 * @generated
-	 */
-	EReference getFlow_DestinationAddresses();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.SdnControlFlow <em>Sdn Control Flow</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Sdn Control Flow</em>'.
-	 * @see tools.descartes.dni.dnimm3.SdnControlFlow
-	 * @generated
-	 */
-	EClass getSdnControlFlow();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.SdnControlFlow#getParentFlow <em>Parent Flow</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Parent Flow</em>'.
-	 * @see tools.descartes.dni.dnimm3.SdnControlFlow#getParentFlow()
-	 * @see #getSdnControlFlow()
-	 * @generated
-	 */
-	EReference getSdnControlFlow_ParentFlow();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.FlowTraffic <em>Flow Traffic</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Flow Traffic</em>'.
-	 * @see tools.descartes.dni.dnimm3.FlowTraffic
-	 * @generated
-	 */
-	EClass getFlowTraffic();
-
-	/**
-	 * Returns the meta object for the container reference '{@link tools.descartes.dni.dnimm3.FlowTraffic#getFlow <em>Flow</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the container reference '<em>Flow</em>'.
-	 * @see tools.descartes.dni.dnimm3.FlowTraffic#getFlow()
-	 * @see #getFlowTraffic()
-	 * @generated
-	 */
-	EReference getFlowTraffic_Flow();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.FlowTraffic#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see tools.descartes.dni.dnimm3.FlowTraffic#getName()
-	 * @see #getFlowTraffic()
-	 * @generated
-	 */
-	EAttribute getFlowTraffic_Name();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.GenericFlowTraffic <em>Generic Flow Traffic</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Generic Flow Traffic</em>'.
-	 * @see tools.descartes.dni.dnimm3.GenericFlowTraffic
-	 * @generated
-	 */
-	EClass getGenericFlowTraffic();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.GenericFlowTraffic#getDataSize <em>Data Size</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Data Size</em>'.
-	 * @see tools.descartes.dni.dnimm3.GenericFlowTraffic#getDataSize()
-	 * @see #getGenericFlowTraffic()
-	 * @generated
-	 */
-	EReference getGenericFlowTraffic_DataSize();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.CommunicatingApplication <em>Communicating Application</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Communicating Application</em>'.
-	 * @see tools.descartes.dni.dnimm3.CommunicatingApplication
-	 * @generated
-	 */
-	EClass getCommunicatingApplication();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.CommunicatingApplication#getTrafficSources <em>Traffic Sources</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Traffic Sources</em>'.
-	 * @see tools.descartes.dni.dnimm3.CommunicatingApplication#getTrafficSources()
-	 * @see #getCommunicatingApplication()
-	 * @generated
-	 */
-	EReference getCommunicatingApplication_TrafficSources();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.CommunicatingApplication#getDeployedOn <em>Deployed On</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Deployed On</em>'.
-	 * @see tools.descartes.dni.dnimm3.CommunicatingApplication#getDeployedOn()
-	 * @see #getCommunicatingApplication()
-	 * @generated
-	 */
-	EReference getCommunicatingApplication_DeployedOn();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.TrafficSource <em>Traffic Source</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Traffic Source</em>'.
-	 * @see tools.descartes.dni.dnimm3.TrafficSource
-	 * @generated
-	 */
-	EClass getTrafficSource();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.TrafficSource#getWorkload <em>Workload</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Workload</em>'.
-	 * @see tools.descartes.dni.dnimm3.TrafficSource#getWorkload()
-	 * @see #getTrafficSource()
-	 * @generated
-	 */
-	EReference getTrafficSource_Workload();
-
-	/**
-	 * Returns the meta object for the container reference '{@link tools.descartes.dni.dnimm3.TrafficSource#getSoftwareComponent <em>Software Component</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the container reference '<em>Software Component</em>'.
-	 * @see tools.descartes.dni.dnimm3.TrafficSource#getSoftwareComponent()
-	 * @see #getTrafficSource()
-	 * @generated
-	 */
-	EReference getTrafficSource_SoftwareComponent();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.NetworkConfiguration <em>Network Configuration</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Network Configuration</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkConfiguration
-	 * @generated
-	 */
-	EClass getNetworkConfiguration();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.NetworkConfiguration#getProtocolsAndStacks <em>Protocols And Stacks</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Protocols And Stacks</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkConfiguration#getProtocolsAndStacks()
-	 * @see #getNetworkConfiguration()
-	 * @generated
-	 */
-	EReference getNetworkConfiguration_ProtocolsAndStacks();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.NetworkConfiguration#getRoutes <em>Routes</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Routes</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkConfiguration#getRoutes()
-	 * @see #getNetworkConfiguration()
-	 * @generated
-	 */
-	EReference getNetworkConfiguration_Routes();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.NetworkConfiguration#getRules <em>Rules</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Rules</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkConfiguration#getRules()
-	 * @see #getNetworkConfiguration()
-	 * @generated
-	 */
-	EReference getNetworkConfiguration_Rules();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.ProtocolsRepository <em>Protocols Repository</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Protocols Repository</em>'.
-	 * @see tools.descartes.dni.dnimm3.ProtocolsRepository
-	 * @generated
-	 */
-	EClass getProtocolsRepository();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.ProtocolsRepository#getStacks <em>Stacks</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Stacks</em>'.
-	 * @see tools.descartes.dni.dnimm3.ProtocolsRepository#getStacks()
-	 * @see #getProtocolsRepository()
-	 * @generated
-	 */
-	EReference getProtocolsRepository_Stacks();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.ProtocolsRepository#getProtocols <em>Protocols</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Protocols</em>'.
-	 * @see tools.descartes.dni.dnimm3.ProtocolsRepository#getProtocols()
-	 * @see #getProtocolsRepository()
-	 * @generated
-	 */
-	EReference getProtocolsRepository_Protocols();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.ProtocolStack <em>Protocol Stack</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Protocol Stack</em>'.
-	 * @see tools.descartes.dni.dnimm3.ProtocolStack
-	 * @generated
-	 */
-	EClass getProtocolStack();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.ProtocolStack#getLayers <em>Layers</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Layers</em>'.
-	 * @see tools.descartes.dni.dnimm3.ProtocolStack#getLayers()
-	 * @see #getProtocolStack()
-	 * @generated
-	 */
-	EReference getProtocolStack_Layers();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.ProtocolLayer <em>Protocol Layer</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Protocol Layer</em>'.
-	 * @see tools.descartes.dni.dnimm3.ProtocolLayer
-	 * @generated
-	 */
-	EClass getProtocolLayer();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.ProtocolLayer#getProtocol <em>Protocol</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Protocol</em>'.
-	 * @see tools.descartes.dni.dnimm3.ProtocolLayer#getProtocol()
-	 * @see #getProtocolLayer()
-	 * @generated
-	 */
-	EReference getProtocolLayer_Protocol();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.ProtocolLayer#getIsCarriedBy <em>Is Carried By</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Is Carried By</em>'.
-	 * @see tools.descartes.dni.dnimm3.ProtocolLayer#getIsCarriedBy()
-	 * @see #getProtocolLayer()
-	 * @generated
-	 */
-	EReference getProtocolLayer_IsCarriedBy();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.ProtocolLayer#getCarries <em>Carries</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Carries</em>'.
-	 * @see tools.descartes.dni.dnimm3.ProtocolLayer#getCarries()
-	 * @see #getProtocolLayer()
-	 * @generated
-	 */
-	EReference getProtocolLayer_Carries();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.NetworkProtocol <em>Network Protocol</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Network Protocol</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkProtocol
-	 * @generated
-	 */
-	EClass getNetworkProtocol();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.NetworkProtocol#getMtu <em>Mtu</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Mtu</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkProtocol#getMtu()
-	 * @see #getNetworkProtocol()
-	 * @generated
-	 */
-	EAttribute getNetworkProtocol_Mtu();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.NetworkProtocol#getHeadersLength <em>Headers Length</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Headers Length</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkProtocol#getHeadersLength()
-	 * @see #getNetworkProtocol()
-	 * @generated
-	 */
-	EAttribute getNetworkProtocol_HeadersLength();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.RoutesRepository <em>Routes Repository</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Routes Repository</em>'.
-	 * @see tools.descartes.dni.dnimm3.RoutesRepository
-	 * @generated
-	 */
-	EClass getRoutesRepository();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.RoutesRepository#getRoutes <em>Routes</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Routes</em>'.
-	 * @see tools.descartes.dni.dnimm3.RoutesRepository#getRoutes()
-	 * @see #getRoutesRepository()
-	 * @generated
-	 */
-	EReference getRoutesRepository_Routes();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.RoutesRepository#getFlowRoutes <em>Flow Routes</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Flow Routes</em>'.
-	 * @see tools.descartes.dni.dnimm3.RoutesRepository#getFlowRoutes()
-	 * @see #getRoutesRepository()
-	 * @generated
-	 */
-	EReference getRoutesRepository_FlowRoutes();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.RoutesRepository#getDirections <em>Directions</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Directions</em>'.
-	 * @see tools.descartes.dni.dnimm3.RoutesRepository#getDirections()
-	 * @see #getRoutesRepository()
-	 * @generated
-	 */
-	EReference getRoutesRepository_Directions();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.Direction <em>Direction</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Direction</em>'.
-	 * @see tools.descartes.dni.dnimm3.Direction
-	 * @generated
-	 */
-	EClass getDirection();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.Direction#getOnNode <em>On Node</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>On Node</em>'.
-	 * @see tools.descartes.dni.dnimm3.Direction#getOnNode()
-	 * @see #getDirection()
-	 * @generated
-	 */
-	EReference getDirection_OnNode();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.Direction#getFlow <em>Flow</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Flow</em>'.
-	 * @see tools.descartes.dni.dnimm3.Direction#getFlow()
-	 * @see #getDirection()
-	 * @generated
-	 */
-	EReference getDirection_Flow();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.Direction#getVia <em>Via</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Via</em>'.
-	 * @see tools.descartes.dni.dnimm3.Direction#getVia()
-	 * @see #getDirection()
-	 * @generated
-	 */
-	EReference getDirection_Via();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.Direction#getDefault <em>Default</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Default</em>'.
-	 * @see tools.descartes.dni.dnimm3.Direction#getDefault()
-	 * @see #getDirection()
-	 * @generated
-	 */
-	EAttribute getDirection_Default();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.Direction#getProbability <em>Probability</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Probability</em>'.
-	 * @see tools.descartes.dni.dnimm3.Direction#getProbability()
-	 * @see #getDirection()
-	 * @generated
-	 */
-	EAttribute getDirection_Probability();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.FlowRoute <em>Flow Route</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Flow Route</em>'.
-	 * @see tools.descartes.dni.dnimm3.FlowRoute
-	 * @generated
-	 */
-	EClass getFlowRoute();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.FlowRoute#getHops <em>Hops</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Hops</em>'.
-	 * @see tools.descartes.dni.dnimm3.FlowRoute#getHops()
-	 * @see #getFlowRoute()
-	 * @generated
-	 */
-	EReference getFlowRoute_Hops();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.FlowRoute#getFlow <em>Flow</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Flow</em>'.
-	 * @see tools.descartes.dni.dnimm3.FlowRoute#getFlow()
-	 * @see #getFlowRoute()
-	 * @generated
-	 */
-	EReference getFlowRoute_Flow();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.FlowRoute#getStart <em>Start</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Start</em>'.
-	 * @see tools.descartes.dni.dnimm3.FlowRoute#getStart()
-	 * @see #getFlowRoute()
-	 * @generated
-	 */
-	EReference getFlowRoute_Start();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.FlowRoute#getEnd <em>End</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>End</em>'.
-	 * @see tools.descartes.dni.dnimm3.FlowRoute#getEnd()
-	 * @see #getFlowRoute()
-	 * @generated
-	 */
-	EReference getFlowRoute_End();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.FlowRoute#getProbability <em>Probability</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Probability</em>'.
-	 * @see tools.descartes.dni.dnimm3.FlowRoute#getProbability()
-	 * @see #getFlowRoute()
-	 * @generated
-	 */
-	EAttribute getFlowRoute_Probability();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.Route <em>Route</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Route</em>'.
-	 * @see tools.descartes.dni.dnimm3.Route
-	 * @generated
-	 */
-	EClass getRoute();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.Route#getHops <em>Hops</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Hops</em>'.
-	 * @see tools.descartes.dni.dnimm3.Route#getHops()
-	 * @see #getRoute()
-	 * @generated
-	 */
-	EReference getRoute_Hops();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.Route#getStart <em>Start</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Start</em>'.
-	 * @see tools.descartes.dni.dnimm3.Route#getStart()
-	 * @see #getRoute()
-	 * @generated
-	 */
-	EReference getRoute_Start();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.Route#getEnd <em>End</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>End</em>'.
-	 * @see tools.descartes.dni.dnimm3.Route#getEnd()
-	 * @see #getRoute()
-	 * @generated
-	 */
-	EReference getRoute_End();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.Hop <em>Hop</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Hop</em>'.
-	 * @see tools.descartes.dni.dnimm3.Hop
-	 * @generated
-	 */
-	EClass getHop();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.Hop#getNextHop <em>Next Hop</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Next Hop</em>'.
-	 * @see tools.descartes.dni.dnimm3.Hop#getNextHop()
-	 * @see #getHop()
-	 * @generated
-	 */
-	EReference getHop_NextHop();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.Hop#getInterfaceref <em>Interfaceref</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Interfaceref</em>'.
-	 * @see tools.descartes.dni.dnimm3.Hop#getInterfaceref()
-	 * @see #getHop()
-	 * @generated
-	 */
-	EReference getHop_Interfaceref();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.EntityAddress <em>Entity Address</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Entity Address</em>'.
-	 * @see tools.descartes.dni.dnimm3.EntityAddress
-	 * @generated
-	 */
-	EClass getEntityAddress();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.EntityAddress#getAddress <em>Address</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Address</em>'.
-	 * @see tools.descartes.dni.dnimm3.EntityAddress#getAddress()
-	 * @see #getEntityAddress()
-	 * @generated
-	 */
-	EAttribute getEntityAddress_Address();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.EntityAddress#getAddressGivenBy <em>Address Given By</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Address Given By</em>'.
-	 * @see tools.descartes.dni.dnimm3.EntityAddress#getAddressGivenBy()
-	 * @see #getEntityAddress()
-	 * @generated
-	 */
-	EReference getEntityAddress_AddressGivenBy();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.AddressableEntity <em>Addressable Entity</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Addressable Entity</em>'.
-	 * @see tools.descartes.dni.dnimm3.AddressableEntity
-	 * @generated
-	 */
-	EClass getAddressableEntity();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.AddressableEntity#getAddresses <em>Addresses</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Addresses</em>'.
-	 * @see tools.descartes.dni.dnimm3.AddressableEntity#getAddresses()
-	 * @see #getAddressableEntity()
-	 * @generated
-	 */
-	EReference getAddressableEntity_Addresses();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.Workload <em>Workload</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Workload</em>'.
-	 * @see tools.descartes.dni.dnimm3.Workload
-	 * @generated
-	 */
-	EClass getWorkload();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.GenericWorkload <em>Generic Workload</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Generic Workload</em>'.
-	 * @see tools.descartes.dni.dnimm3.GenericWorkload
-	 * @generated
-	 */
-	EClass getGenericWorkload();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.GenericWorkload#getActions <em>Actions</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Actions</em>'.
-	 * @see tools.descartes.dni.dnimm3.GenericWorkload#getActions()
-	 * @see #getGenericWorkload()
-	 * @generated
-	 */
-	EReference getGenericWorkload_Actions();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.AbstractAction <em>Abstract Action</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Abstract Action</em>'.
-	 * @see tools.descartes.dni.dnimm3.AbstractAction
-	 * @generated
-	 */
-	EClass getAbstractAction();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.BranchAction <em>Branch Action</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Branch Action</em>'.
-	 * @see tools.descartes.dni.dnimm3.BranchAction
-	 * @generated
-	 */
-	EClass getBranchAction();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.BranchAction#getIntern <em>Intern</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Intern</em>'.
-	 * @see tools.descartes.dni.dnimm3.BranchAction#getIntern()
-	 * @see #getBranchAction()
-	 * @generated
-	 */
-	EReference getBranchAction_Intern();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.LoopAction <em>Loop Action</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Loop Action</em>'.
-	 * @see tools.descartes.dni.dnimm3.LoopAction
-	 * @generated
-	 */
-	EClass getLoopAction();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.LoopAction#getIntern <em>Intern</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Intern</em>'.
-	 * @see tools.descartes.dni.dnimm3.LoopAction#getIntern()
-	 * @see #getLoopAction()
-	 * @generated
-	 */
-	EReference getLoopAction_Intern();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.LoopAction#getNumIterations <em>Num Iterations</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Num Iterations</em>'.
-	 * @see tools.descartes.dni.dnimm3.LoopAction#getNumIterations()
-	 * @see #getLoopAction()
-	 * @generated
-	 */
-	EReference getLoopAction_NumIterations();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.SequenceAction <em>Sequence Action</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Sequence Action</em>'.
-	 * @see tools.descartes.dni.dnimm3.SequenceAction
-	 * @generated
-	 */
-	EClass getSequenceAction();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.SequenceAction#getIntern <em>Intern</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Intern</em>'.
-	 * @see tools.descartes.dni.dnimm3.SequenceAction#getIntern()
-	 * @see #getSequenceAction()
-	 * @generated
-	 */
-	EReference getSequenceAction_Intern();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.StartAction <em>Start Action</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Start Action</em>'.
-	 * @see tools.descartes.dni.dnimm3.StartAction
-	 * @generated
-	 */
-	EClass getStartAction();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.StopAction <em>Stop Action</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Stop Action</em>'.
-	 * @see tools.descartes.dni.dnimm3.StopAction
-	 * @generated
-	 */
-	EClass getStopAction();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.TransmitAction <em>Transmit Action</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Transmit Action</em>'.
-	 * @see tools.descartes.dni.dnimm3.TransmitAction
-	 * @generated
-	 */
-	EClass getTransmitAction();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.TransmitAction#getFlowTraffic <em>Flow Traffic</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Flow Traffic</em>'.
-	 * @see tools.descartes.dni.dnimm3.TransmitAction#getFlowTraffic()
-	 * @see #getTransmitAction()
-	 * @generated
-	 */
-	EReference getTransmitAction_FlowTraffic();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.WaitAction <em>Wait Action</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Wait Action</em>'.
-	 * @see tools.descartes.dni.dnimm3.WaitAction
-	 * @generated
-	 */
-	EClass getWaitAction();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.WaitAction#getWaitTime <em>Wait Time</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Wait Time</em>'.
-	 * @see tools.descartes.dni.dnimm3.WaitAction#getWaitTime()
-	 * @see #getWaitAction()
-	 * @generated
-	 */
-	EReference getWaitAction_WaitTime();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.PerformanceSpecification <em>Performance Specification</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Performance Specification</em>'.
-	 * @see tools.descartes.dni.dnimm3.PerformanceSpecification
-	 * @generated
-	 */
-	EClass getPerformanceSpecification();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.PerformanceLink <em>Performance Link</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Performance Link</em>'.
-	 * @see tools.descartes.dni.dnimm3.PerformanceLink
-	 * @generated
-	 */
-	EClass getPerformanceLink();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.PerformanceLink#getPropagationDelay <em>Propagation Delay</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Propagation Delay</em>'.
-	 * @see tools.descartes.dni.dnimm3.PerformanceLink#getPropagationDelay()
-	 * @see #getPerformanceLink()
-	 * @generated
-	 */
-	EReference getPerformanceLink_PropagationDelay();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.PerformanceLink#getMaxSupportedBandwidth <em>Max Supported Bandwidth</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Max Supported Bandwidth</em>'.
-	 * @see tools.descartes.dni.dnimm3.PerformanceLink#getMaxSupportedBandwidth()
-	 * @see #getPerformanceLink()
-	 * @generated
-	 */
-	EReference getPerformanceLink_MaxSupportedBandwidth();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.PerformanceLink#getEntityType <em>Entity Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Entity Type</em>'.
-	 * @see tools.descartes.dni.dnimm3.PerformanceLink#getEntityType()
-	 * @see #getPerformanceLink()
-	 * @generated
-	 */
-	EReference getPerformanceLink_EntityType();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface <em>Performance Network Interface</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Performance Network Interface</em>'.
-	 * @see tools.descartes.dni.dnimm3.PerformanceNetworkInterface
-	 * @generated
-	 */
-	EClass getPerformanceNetworkInterface();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface#isIsUp <em>Is Up</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Is Up</em>'.
-	 * @see tools.descartes.dni.dnimm3.PerformanceNetworkInterface#isIsUp()
-	 * @see #getPerformanceNetworkInterface()
-	 * @generated
-	 */
-	EAttribute getPerformanceNetworkInterface_IsUp();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface#getMTU <em>MTU</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>MTU</em>'.
-	 * @see tools.descartes.dni.dnimm3.PerformanceNetworkInterface#getMTU()
-	 * @see #getPerformanceNetworkInterface()
-	 * @generated
-	 */
-	EAttribute getPerformanceNetworkInterface_MTU();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface#getPacketProcessingTime <em>Packet Processing Time</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Packet Processing Time</em>'.
-	 * @see tools.descartes.dni.dnimm3.PerformanceNetworkInterface#getPacketProcessingTime()
-	 * @see #getPerformanceNetworkInterface()
-	 * @generated
-	 */
-	EReference getPerformanceNetworkInterface_PacketProcessingTime();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface#getInterfaceThroughput <em>Interface Throughput</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Interface Throughput</em>'.
-	 * @see tools.descartes.dni.dnimm3.PerformanceNetworkInterface#getInterfaceThroughput()
-	 * @see #getPerformanceNetworkInterface()
-	 * @generated
-	 */
-	EReference getPerformanceNetworkInterface_InterfaceThroughput();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface#getEntityType <em>Entity Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Entity Type</em>'.
-	 * @see tools.descartes.dni.dnimm3.PerformanceNetworkInterface#getEntityType()
-	 * @see #getPerformanceNetworkInterface()
-	 * @generated
-	 */
-	EReference getPerformanceNetworkInterface_EntityType();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.SdnFlowRule <em>Sdn Flow Rule</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Sdn Flow Rule</em>'.
-	 * @see tools.descartes.dni.dnimm3.SdnFlowRule
-	 * @generated
-	 */
-	EClass getSdnFlowRule();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.SdnFlowRule#getSdnSwitch <em>Sdn Switch</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Sdn Switch</em>'.
-	 * @see tools.descartes.dni.dnimm3.SdnFlowRule#getSdnSwitch()
-	 * @see #getSdnFlowRule()
-	 * @generated
-	 */
-	EReference getSdnFlowRule_SdnSwitch();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.SdnFlowRule#getFlow <em>Flow</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Flow</em>'.
-	 * @see tools.descartes.dni.dnimm3.SdnFlowRule#getFlow()
-	 * @see #getSdnFlowRule()
-	 * @generated
-	 */
-	EReference getSdnFlowRule_Flow();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.SdnFlowRule#getProbabilityHardware <em>Probability Hardware</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Probability Hardware</em>'.
-	 * @see tools.descartes.dni.dnimm3.SdnFlowRule#getProbabilityHardware()
-	 * @see #getSdnFlowRule()
-	 * @generated
-	 */
-	EAttribute getSdnFlowRule_ProbabilityHardware();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.SdnFlowRule#getProbabilitySoftware <em>Probability Software</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Probability Software</em>'.
-	 * @see tools.descartes.dni.dnimm3.SdnFlowRule#getProbabilitySoftware()
-	 * @see #getSdnFlowRule()
-	 * @generated
-	 */
-	EAttribute getSdnFlowRule_ProbabilitySoftware();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.SdnFlowRule#getProbabilityController <em>Probability Controller</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Probability Controller</em>'.
-	 * @see tools.descartes.dni.dnimm3.SdnFlowRule#getProbabilityController()
-	 * @see #getSdnFlowRule()
-	 * @generated
-	 */
-	EAttribute getSdnFlowRule_ProbabilityController();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.SdnFlowRule#getControllerApplication <em>Controller Application</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Controller Application</em>'.
-	 * @see tools.descartes.dni.dnimm3.SdnFlowRule#getControllerApplication()
-	 * @see #getSdnFlowRule()
-	 * @generated
-	 */
-	EReference getSdnFlowRule_ControllerApplication();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.SdnController <em>Sdn Controller</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Sdn Controller</em>'.
-	 * @see tools.descartes.dni.dnimm3.SdnController
-	 * @generated
-	 */
-	EClass getSdnController();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.SdnController#getApplications <em>Applications</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Applications</em>'.
-	 * @see tools.descartes.dni.dnimm3.SdnController#getApplications()
-	 * @see #getSdnController()
-	 * @generated
-	 */
-	EReference getSdnController_Applications();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3.SdnController#getNodes <em>Nodes</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Nodes</em>'.
-	 * @see tools.descartes.dni.dnimm3.SdnController#getNodes()
-	 * @see #getSdnController()
-	 * @generated
-	 */
-	EReference getSdnController_Nodes();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.SdnControllerApplication <em>Sdn Controller Application</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Sdn Controller Application</em>'.
-	 * @see tools.descartes.dni.dnimm3.SdnControllerApplication
-	 * @generated
-	 */
-	EClass getSdnControllerApplication();
-
-	/**
-	 * Returns the meta object for the container reference '{@link tools.descartes.dni.dnimm3.SdnControllerApplication#getBelongsTo <em>Belongs To</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the container reference '<em>Belongs To</em>'.
-	 * @see tools.descartes.dni.dnimm3.SdnControllerApplication#getBelongsTo()
-	 * @see #getSdnControllerApplication()
-	 * @generated
-	 */
-	EReference getSdnControllerApplication_BelongsTo();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.SdnControllerApplication#isIsDefault <em>Is Default</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Is Default</em>'.
-	 * @see tools.descartes.dni.dnimm3.SdnControllerApplication#isIsDefault()
-	 * @see #getSdnControllerApplication()
-	 * @generated
-	 */
-	EAttribute getSdnControllerApplication_IsDefault();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.SdnControllerApplication#getResponseDelay <em>Response Delay</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Response Delay</em>'.
-	 * @see tools.descartes.dni.dnimm3.SdnControllerApplication#getResponseDelay()
-	 * @see #getSdnControllerApplication()
-	 * @generated
-	 */
-	EReference getSdnControllerApplication_ResponseDelay();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.IType <em>IType</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>IType</em>'.
-	 * @see tools.descartes.dni.dnimm3.IType
-	 * @generated
-	 */
-	EClass getIType();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.Common <em>Common</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Common</em>'.
-	 * @see tools.descartes.dni.dnimm3.Common
-	 * @generated
-	 */
-	EClass getCommon();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.SDN <em>SDN</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>SDN</em>'.
-	 * @see tools.descartes.dni.dnimm3.SDN
-	 * @generated
-	 */
-	EClass getSDN();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.SDN#getPerformance <em>Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3.SDN#getPerformance()
-	 * @see #getSDN()
-	 * @generated
-	 */
-	EReference getSDN_Performance();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3.SDN#getController <em>Controller</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Controller</em>'.
-	 * @see tools.descartes.dni.dnimm3.SDN#getController()
-	 * @see #getSDN()
-	 * @generated
-	 */
-	EReference getSDN_Controller();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.SDN#getOpenFlowEndPoint <em>Open Flow End Point</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Open Flow End Point</em>'.
-	 * @see tools.descartes.dni.dnimm3.SDN#getOpenFlowEndPoint()
-	 * @see #getSDN()
-	 * @generated
-	 */
-	EReference getSDN_OpenFlowEndPoint();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.IntermediatePerformance <em>Intermediate Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Intermediate Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3.IntermediatePerformance
-	 * @generated
-	 */
-	EClass getIntermediatePerformance();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.IntermediatePerformance#getForwardingLatency <em>Forwarding Latency</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Forwarding Latency</em>'.
-	 * @see tools.descartes.dni.dnimm3.IntermediatePerformance#getForwardingLatency()
-	 * @see #getIntermediatePerformance()
-	 * @generated
-	 */
-	EReference getIntermediatePerformance_ForwardingLatency();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.IntermediatePerformance#getForwardingBandwidthBPS <em>Forwarding Bandwidth BPS</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Forwarding Bandwidth BPS</em>'.
-	 * @see tools.descartes.dni.dnimm3.IntermediatePerformance#getForwardingBandwidthBPS()
-	 * @see #getIntermediatePerformance()
-	 * @generated
-	 */
-	EReference getIntermediatePerformance_ForwardingBandwidthBPS();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.IntermediatePerformance#getSwitchingCapacityPPS <em>Switching Capacity PPS</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Switching Capacity PPS</em>'.
-	 * @see tools.descartes.dni.dnimm3.IntermediatePerformance#getSwitchingCapacityPPS()
-	 * @see #getIntermediatePerformance()
-	 * @generated
-	 */
-	EReference getIntermediatePerformance_SwitchingCapacityPPS();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.IntermediatePerformance#getEntityType <em>Entity Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Entity Type</em>'.
-	 * @see tools.descartes.dni.dnimm3.IntermediatePerformance#getEntityType()
-	 * @see #getIntermediatePerformance()
-	 * @generated
-	 */
-	EReference getIntermediatePerformance_EntityType();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.EndPerformance <em>End Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>End Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3.EndPerformance
-	 * @generated
-	 */
-	EClass getEndPerformance();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.EndPerformance#getSoftwareLayersDelay <em>Software Layers Delay</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Software Layers Delay</em>'.
-	 * @see tools.descartes.dni.dnimm3.EndPerformance#getSoftwareLayersDelay()
-	 * @see #getEndPerformance()
-	 * @generated
-	 */
-	EReference getEndPerformance_SoftwareLayersDelay();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.EndPerformance#getEntityType <em>Entity Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Entity Type</em>'.
-	 * @see tools.descartes.dni.dnimm3.EndPerformance#getEntityType()
-	 * @see #getEndPerformance()
-	 * @generated
-	 */
-	EReference getEndPerformance_EntityType();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.PerformanceSdnNode <em>Performance Sdn Node</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Performance Sdn Node</em>'.
-	 * @see tools.descartes.dni.dnimm3.PerformanceSdnNode
-	 * @generated
-	 */
-	EClass getPerformanceSdnNode();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.PerformanceSdnNode#getSoftwareSwitchingPerformance <em>Software Switching Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Software Switching Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3.PerformanceSdnNode#getSoftwareSwitchingPerformance()
-	 * @see #getPerformanceSdnNode()
-	 * @generated
-	 */
-	EReference getPerformanceSdnNode_SoftwareSwitchingPerformance();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.PerformanceSdnNode#getHardwareSwitchingPerformance <em>Hardware Switching Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Hardware Switching Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3.PerformanceSdnNode#getHardwareSwitchingPerformance()
-	 * @see #getPerformanceSdnNode()
-	 * @generated
-	 */
-	EReference getPerformanceSdnNode_HardwareSwitchingPerformance();
-
-	/**
-	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3.PerformanceSdnNode#getEntityType <em>Entity Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Entity Type</em>'.
-	 * @see tools.descartes.dni.dnimm3.PerformanceSdnNode#getEntityType()
-	 * @see #getPerformanceSdnNode()
-	 * @generated
-	 */
-	EReference getPerformanceSdnNode_EntityType();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.DNIUnit <em>Unit</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Unit</em>'.
-	 * @see tools.descartes.dni.dnimm3.DNIUnit
-	 * @generated
-	 */
-	EClass getDNIUnit();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.SpeedUnit <em>Speed Unit</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Speed Unit</em>'.
-	 * @see tools.descartes.dni.dnimm3.SpeedUnit
-	 * @generated
-	 */
-	EClass getSpeedUnit();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.SpeedUnit#getUnit <em>Unit</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Unit</em>'.
-	 * @see tools.descartes.dni.dnimm3.SpeedUnit#getUnit()
-	 * @see #getSpeedUnit()
-	 * @generated
-	 */
-	EAttribute getSpeedUnit_Unit();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.SpeedUnit#getPrefix <em>Prefix</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Prefix</em>'.
-	 * @see tools.descartes.dni.dnimm3.SpeedUnit#getPrefix()
-	 * @see #getSpeedUnit()
-	 * @generated
-	 */
-	EAttribute getSpeedUnit_Prefix();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.DataUnit <em>Data Unit</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Data Unit</em>'.
-	 * @see tools.descartes.dni.dnimm3.DataUnit
-	 * @generated
-	 */
-	EClass getDataUnit();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.DataUnit#getPrefix <em>Prefix</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Prefix</em>'.
-	 * @see tools.descartes.dni.dnimm3.DataUnit#getPrefix()
-	 * @see #getDataUnit()
-	 * @generated
-	 */
-	EAttribute getDataUnit_Prefix();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.TimeUnit <em>Time Unit</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Time Unit</em>'.
-	 * @see tools.descartes.dni.dnimm3.TimeUnit
-	 * @generated
-	 */
-	EClass getTimeUnit();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.TimeUnit#getUnit <em>Unit</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Unit</em>'.
-	 * @see tools.descartes.dni.dnimm3.TimeUnit#getUnit()
-	 * @see #getTimeUnit()
-	 * @generated
-	 */
-	EAttribute getTimeUnit_Unit();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.Dependency <em>Dependency</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Dependency</em>'.
-	 * @see tools.descartes.dni.dnimm3.Dependency
-	 * @generated
-	 */
-	EClass getDependency();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.Dependency#getUnit <em>Unit</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Unit</em>'.
-	 * @see tools.descartes.dni.dnimm3.Dependency#getUnit()
-	 * @see #getDependency()
-	 * @generated
-	 */
-	EReference getDependency_Unit();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.Variable <em>Variable</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Variable</em>'.
-	 * @see tools.descartes.dni.dnimm3.Variable
-	 * @generated
-	 */
-	EClass getVariable();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.Function <em>Function</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Function</em>'.
-	 * @see tools.descartes.dni.dnimm3.Function
-	 * @generated
-	 */
-	EClass getFunction();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.ConstantDoubleVariable <em>Constant Double Variable</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Constant Double Variable</em>'.
-	 * @see tools.descartes.dni.dnimm3.ConstantDoubleVariable
-	 * @generated
-	 */
-	EClass getConstantDoubleVariable();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.ConstantDoubleVariable#getValue <em>Value</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Value</em>'.
-	 * @see tools.descartes.dni.dnimm3.ConstantDoubleVariable#getValue()
-	 * @see #getConstantDoubleVariable()
-	 * @generated
-	 */
-	EAttribute getConstantDoubleVariable_Value();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.ConstantLongVariable <em>Constant Long Variable</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Constant Long Variable</em>'.
-	 * @see tools.descartes.dni.dnimm3.ConstantLongVariable
-	 * @generated
-	 */
-	EClass getConstantLongVariable();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.ConstantLongVariable#getValue <em>Value</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Value</em>'.
-	 * @see tools.descartes.dni.dnimm3.ConstantLongVariable#getValue()
-	 * @see #getConstantLongVariable()
-	 * @generated
-	 */
-	EAttribute getConstantLongVariable_Value();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.RandomVariable <em>Random Variable</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Random Variable</em>'.
-	 * @see tools.descartes.dni.dnimm3.RandomVariable
-	 * @generated
-	 */
-	EClass getRandomVariable();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3.RandomVariable#getCdf <em>Cdf</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Cdf</em>'.
-	 * @see tools.descartes.dni.dnimm3.RandomVariable#getCdf()
-	 * @see #getRandomVariable()
-	 * @generated
-	 */
-	EReference getRandomVariable_Cdf();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.FloatCoordinate <em>Float Coordinate</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Float Coordinate</em>'.
-	 * @see tools.descartes.dni.dnimm3.FloatCoordinate
-	 * @generated
-	 */
-	EClass getFloatCoordinate();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.FloatCoordinate#getX <em>X</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>X</em>'.
-	 * @see tools.descartes.dni.dnimm3.FloatCoordinate#getX()
-	 * @see #getFloatCoordinate()
-	 * @generated
-	 */
-	EAttribute getFloatCoordinate_X();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.FloatCoordinate#getY <em>Y</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Y</em>'.
-	 * @see tools.descartes.dni.dnimm3.FloatCoordinate#getY()
-	 * @see #getFloatCoordinate()
-	 * @generated
-	 */
-	EAttribute getFloatCoordinate_Y();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.DiscreteFunction <em>Discrete Function</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Discrete Function</em>'.
-	 * @see tools.descartes.dni.dnimm3.DiscreteFunction
-	 * @generated
-	 */
-	EClass getDiscreteFunction();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.DiscreteFunction#getVals <em>Vals</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Vals</em>'.
-	 * @see tools.descartes.dni.dnimm3.DiscreteFunction#getVals()
-	 * @see #getDiscreteFunction()
-	 * @generated
-	 */
-	EReference getDiscreteFunction_Vals();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.ExponentialFunction <em>Exponential Function</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Exponential Function</em>'.
-	 * @see tools.descartes.dni.dnimm3.ExponentialFunction
-	 * @generated
-	 */
-	EClass getExponentialFunction();
-
-	/**
-	 * Returns the meta object for the attribute '{@link tools.descartes.dni.dnimm3.ExponentialFunction#getLambda <em>Lambda</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Lambda</em>'.
-	 * @see tools.descartes.dni.dnimm3.ExponentialFunction#getLambda()
-	 * @see #getExponentialFunction()
-	 * @generated
-	 */
-	EAttribute getExponentialFunction_Lambda();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.EntityTypes <em>Entity Types</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Entity Types</em>'.
-	 * @see tools.descartes.dni.dnimm3.EntityTypes
-	 * @generated
-	 */
-	EClass getEntityTypes();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3.EntityTypes#getTypes <em>Types</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Types</em>'.
-	 * @see tools.descartes.dni.dnimm3.EntityTypes#getTypes()
-	 * @see #getEntityTypes()
-	 * @generated
-	 */
-	EReference getEntityTypes_Types();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.ITypedEntity <em>ITyped Entity</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>ITyped Entity</em>'.
-	 * @see tools.descartes.dni.dnimm3.ITypedEntity
-	 * @generated
-	 */
-	EClass getITypedEntity();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.NodeType <em>Node Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Node Type</em>'.
-	 * @see tools.descartes.dni.dnimm3.NodeType
-	 * @generated
-	 */
-	EClass getNodeType();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3.NodeType#getEntities <em>Entities</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Entities</em>'.
-	 * @see tools.descartes.dni.dnimm3.NodeType#getEntities()
-	 * @see #getNodeType()
-	 * @generated
-	 */
-	EReference getNodeType_Entities();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.EndPerformanceType <em>End Performance Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>End Performance Type</em>'.
-	 * @see tools.descartes.dni.dnimm3.EndPerformanceType
-	 * @generated
-	 */
-	EClass getEndPerformanceType();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3.EndPerformanceType#getEntities <em>Entities</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Entities</em>'.
-	 * @see tools.descartes.dni.dnimm3.EndPerformanceType#getEntities()
-	 * @see #getEndPerformanceType()
-	 * @generated
-	 */
-	EReference getEndPerformanceType_Entities();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.IntermediatePerformanceType <em>Intermediate Performance Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Intermediate Performance Type</em>'.
-	 * @see tools.descartes.dni.dnimm3.IntermediatePerformanceType
-	 * @generated
-	 */
-	EClass getIntermediatePerformanceType();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3.IntermediatePerformanceType#getEntities <em>Entities</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Entities</em>'.
-	 * @see tools.descartes.dni.dnimm3.IntermediatePerformanceType#getEntities()
-	 * @see #getIntermediatePerformanceType()
-	 * @generated
-	 */
-	EReference getIntermediatePerformanceType_Entities();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.SdnNodePerformanceType <em>Sdn Node Performance Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Sdn Node Performance Type</em>'.
-	 * @see tools.descartes.dni.dnimm3.SdnNodePerformanceType
-	 * @generated
-	 */
-	EClass getSdnNodePerformanceType();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3.SdnNodePerformanceType#getEntities <em>Entities</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Entities</em>'.
-	 * @see tools.descartes.dni.dnimm3.SdnNodePerformanceType#getEntities()
-	 * @see #getSdnNodePerformanceType()
-	 * @generated
-	 */
-	EReference getSdnNodePerformanceType_Entities();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.NetworkInterfaceType <em>Network Interface Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Network Interface Type</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkInterfaceType
-	 * @generated
-	 */
-	EClass getNetworkInterfaceType();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3.NetworkInterfaceType#getEntities <em>Entities</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Entities</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkInterfaceType#getEntities()
-	 * @see #getNetworkInterfaceType()
-	 * @generated
-	 */
-	EReference getNetworkInterfaceType_Entities();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.NetworkInterfacePerformanceType <em>Network Interface Performance Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Network Interface Performance Type</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkInterfacePerformanceType
-	 * @generated
-	 */
-	EClass getNetworkInterfacePerformanceType();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3.NetworkInterfacePerformanceType#getEntities <em>Entities</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Entities</em>'.
-	 * @see tools.descartes.dni.dnimm3.NetworkInterfacePerformanceType#getEntities()
-	 * @see #getNetworkInterfacePerformanceType()
-	 * @generated
-	 */
-	EReference getNetworkInterfacePerformanceType_Entities();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.LinkType <em>Link Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Link Type</em>'.
-	 * @see tools.descartes.dni.dnimm3.LinkType
-	 * @generated
-	 */
-	EClass getLinkType();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3.LinkType#getEntities <em>Entities</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Entities</em>'.
-	 * @see tools.descartes.dni.dnimm3.LinkType#getEntities()
-	 * @see #getLinkType()
-	 * @generated
-	 */
-	EReference getLinkType_Entities();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3.LinkPerformanceType <em>Link Performance Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Link Performance Type</em>'.
-	 * @see tools.descartes.dni.dnimm3.LinkPerformanceType
-	 * @generated
-	 */
-	EClass getLinkPerformanceType();
-
-	/**
-	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3.LinkPerformanceType#getEntities <em>Entities</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Entities</em>'.
-	 * @see tools.descartes.dni.dnimm3.LinkPerformanceType#getEntities()
-	 * @see #getLinkPerformanceType()
-	 * @generated
-	 */
-	EReference getLinkPerformanceType_Entities();
-
-	/**
-	 * Returns the meta object for enum '{@link tools.descartes.dni.dnimm3.UnitPrefix <em>Unit Prefix</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>Unit Prefix</em>'.
-	 * @see tools.descartes.dni.dnimm3.UnitPrefix
-	 * @generated
-	 */
-	EEnum getUnitPrefix();
-
-	/**
-	 * Returns the meta object for enum '{@link tools.descartes.dni.dnimm3.Speed <em>Speed</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>Speed</em>'.
-	 * @see tools.descartes.dni.dnimm3.Speed
-	 * @generated
-	 */
-	EEnum getSpeed();
-
-	/**
-	 * Returns the meta object for enum '{@link tools.descartes.dni.dnimm3.Time <em>Time</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>Time</em>'.
-	 * @see tools.descartes.dni.dnimm3.Time
-	 * @generated
-	 */
-	EEnum getTime();
-
-	/**
-	 * 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
-	 */
-	DNIFactory getDNIFactory();
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * Defines literals for the meta objects that represent
-	 * <ul>
-	 *   <li>each class,</li>
-	 *   <li>each feature of each class,</li>
-	 *   <li>each operation of each class,</li>
-	 *   <li>each enum,</li>
-	 *   <li>and each data type</li>
-	 * </ul>
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	interface Literals {
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.NamedElement <em>Named Element</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.NamedElement
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNamedElement()
-		 * @generated
-		 */
-		EClass NAMED_ELEMENT = eINSTANCE.getNamedElement();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute NAMED_ELEMENT__NAME = eINSTANCE.getNamedElement_Name();
-
-		/**
-		 * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute NAMED_ELEMENT__DESCRIPTION = eINSTANCE.getNamedElement_Description();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.IdentifierImpl <em>Identifier</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.IdentifierImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getIdentifier()
-		 * @generated
-		 */
-		EClass IDENTIFIER = eINSTANCE.getIdentifier();
-
-		/**
-		 * The meta object literal for the '<em><b>Uid</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute IDENTIFIER__UID = eINSTANCE.getIdentifier_Uid();
-
-		/**
-		 * The meta object literal for the '<em><b>Uid generated</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute IDENTIFIER__UID_GENERATED = eINSTANCE.getIdentifier_Uid_generated();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.Entity <em>Entity</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.Entity
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getEntity()
-		 * @generated
-		 */
-		EClass ENTITY = eINSTANCE.getEntity();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.NetworkInfrastructureImpl <em>Network Infrastructure</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.NetworkInfrastructureImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNetworkInfrastructure()
-		 * @generated
-		 */
-		EClass NETWORK_INFRASTRUCTURE = eINSTANCE.getNetworkInfrastructure();
-
-		/**
-		 * The meta object literal for the '<em><b>Traffic</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NETWORK_INFRASTRUCTURE__TRAFFIC = eINSTANCE.getNetworkInfrastructure_Traffic();
-
-		/**
-		 * The meta object literal for the '<em><b>Structure</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NETWORK_INFRASTRUCTURE__STRUCTURE = eINSTANCE.getNetworkInfrastructure_Structure();
-
-		/**
-		 * The meta object literal for the '<em><b>Configuration</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NETWORK_INFRASTRUCTURE__CONFIGURATION = eINSTANCE.getNetworkInfrastructure_Configuration();
-
-		/**
-		 * The meta object literal for the '<em><b>Entity Types</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NETWORK_INFRASTRUCTURE__ENTITY_TYPES = eINSTANCE.getNetworkInfrastructure_EntityTypes();
-
-		/**
-		 * The meta object literal for the '<em><b>Data Center Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute NETWORK_INFRASTRUCTURE__DATA_CENTER_NAME = eINSTANCE.getNetworkInfrastructure_DataCenterName();
-
-		/**
-		 * The meta object literal for the '<em><b>Meta Model Version</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute NETWORK_INFRASTRUCTURE__META_MODEL_VERSION = eINSTANCE.getNetworkInfrastructure_MetaModelVersion();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.NetworkStructureImpl <em>Network Structure</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.NetworkStructureImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNetworkStructure()
-		 * @generated
-		 */
-		EClass NETWORK_STRUCTURE = eINSTANCE.getNetworkStructure();
-
-		/**
-		 * The meta object literal for the '<em><b>Nodes</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NETWORK_STRUCTURE__NODES = eINSTANCE.getNetworkStructure_Nodes();
-
-		/**
-		 * The meta object literal for the '<em><b>Links</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NETWORK_STRUCTURE__LINKS = eINSTANCE.getNetworkStructure_Links();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.NodeImpl <em>Node</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.NodeImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNode()
-		 * @generated
-		 */
-		EClass NODE = eINSTANCE.getNode();
-
-		/**
-		 * The meta object literal for the '<em><b>Interfaces</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NODE__INTERFACES = eINSTANCE.getNode_Interfaces();
-
-		/**
-		 * The meta object literal for the '<em><b>Sdntype</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NODE__SDNTYPE = eINSTANCE.getNode_Sdntype();
-
-		/**
-		 * The meta object literal for the '<em><b>Is Physical</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute NODE__IS_PHYSICAL = eINSTANCE.getNode_IsPhysical();
-
-		/**
-		 * The meta object literal for the '<em><b>Is Physical derived</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute NODE__IS_PHYSICAL_DERIVED = eINSTANCE.getNode_IsPhysical_derived();
-
-		/**
-		 * The meta object literal for the '<em><b>Hosts</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NODE__HOSTS = eINSTANCE.getNode_Hosts();
-
-		/**
-		 * The meta object literal for the '<em><b>Is Hosted On</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NODE__IS_HOSTED_ON = eINSTANCE.getNode_IsHostedOn();
-
-		/**
-		 * The meta object literal for the '<em><b>End</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NODE__END = eINSTANCE.getNode_End();
-
-		/**
-		 * The meta object literal for the '<em><b>Intermediate</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NODE__INTERMEDIATE = eINSTANCE.getNode_Intermediate();
-
-		/**
-		 * The meta object literal for the '<em><b>Entity Type</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NODE__ENTITY_TYPE = eINSTANCE.getNode_EntityType();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.EndImpl <em>End</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.EndImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getEnd()
-		 * @generated
-		 */
-		EClass END = eINSTANCE.getEnd();
-
-		/**
-		 * The meta object literal for the '<em><b>Performance</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference END__PERFORMANCE = eINSTANCE.getEnd_Performance();
-
-		/**
-		 * The meta object literal for the '<em><b>Software</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference END__SOFTWARE = eINSTANCE.getEnd_Software();
-
-		/**
-		 * The meta object literal for the '<em><b>Node</b></em>' container reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference END__NODE = eINSTANCE.getEnd_Node();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute END__NAME = eINSTANCE.getEnd_Name();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.IntermediateImpl <em>Intermediate</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.IntermediateImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getIntermediate()
-		 * @generated
-		 */
-		EClass INTERMEDIATE = eINSTANCE.getIntermediate();
-
-		/**
-		 * The meta object literal for the '<em><b>Performance</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference INTERMEDIATE__PERFORMANCE = eINSTANCE.getIntermediate_Performance();
-
-		/**
-		 * The meta object literal for the '<em><b>Node</b></em>' container reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference INTERMEDIATE__NODE = eINSTANCE.getIntermediate_Node();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute INTERMEDIATE__NAME = eINSTANCE.getIntermediate_Name();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.LinkImpl <em>Link</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.LinkImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getLink()
-		 * @generated
-		 */
-		EClass LINK = eINSTANCE.getLink();
-
-		/**
-		 * The meta object literal for the '<em><b>Connects</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference LINK__CONNECTS = eINSTANCE.getLink_Connects();
-
-		/**
-		 * The meta object literal for the '<em><b>Performance</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference LINK__PERFORMANCE = eINSTANCE.getLink_Performance();
-
-		/**
-		 * The meta object literal for the '<em><b>Name generated</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute LINK__NAME_GENERATED = eINSTANCE.getLink_Name_generated();
-
-		/**
-		 * The meta object literal for the '<em><b>Entity Type</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference LINK__ENTITY_TYPE = eINSTANCE.getLink_EntityType();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.NetworkInterfaceImpl <em>Network Interface</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.NetworkInterfaceImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNetworkInterface()
-		 * @generated
-		 */
-		EClass NETWORK_INTERFACE = eINSTANCE.getNetworkInterface();
-
-		/**
-		 * The meta object literal for the '<em><b>Used Protocol Stack</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NETWORK_INTERFACE__USED_PROTOCOL_STACK = eINSTANCE.getNetworkInterface_UsedProtocolStack();
-
-		/**
-		 * The meta object literal for the '<em><b>Performance</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NETWORK_INTERFACE__PERFORMANCE = eINSTANCE.getNetworkInterface_Performance();
-
-		/**
-		 * The meta object literal for the '<em><b>Node</b></em>' container reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NETWORK_INTERFACE__NODE = eINSTANCE.getNetworkInterface_Node();
-
-		/**
-		 * The meta object literal for the '<em><b>Name generated</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute NETWORK_INTERFACE__NAME_GENERATED = eINSTANCE.getNetworkInterface_Name_generated();
-
-		/**
-		 * The meta object literal for the '<em><b>Entity Type</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NETWORK_INTERFACE__ENTITY_TYPE = eINSTANCE.getNetworkInterface_EntityType();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.NetworkTrafficImpl <em>Network Traffic</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.NetworkTrafficImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNetworkTraffic()
-		 * @generated
-		 */
-		EClass NETWORK_TRAFFIC = eINSTANCE.getNetworkTraffic();
-
-		/**
-		 * The meta object literal for the '<em><b>Flows</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NETWORK_TRAFFIC__FLOWS = eINSTANCE.getNetworkTraffic_Flows();
-
-		/**
-		 * The meta object literal for the '<em><b>Software</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NETWORK_TRAFFIC__SOFTWARE = eINSTANCE.getNetworkTraffic_Software();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.FlowImpl <em>Flow</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.FlowImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getFlow()
-		 * @generated
-		 */
-		EClass FLOW = eINSTANCE.getFlow();
-
-		/**
-		 * The meta object literal for the '<em><b>Source Software</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference FLOW__SOURCE_SOFTWARE = eINSTANCE.getFlow_SourceSoftware();
-
-		/**
-		 * The meta object literal for the '<em><b>Generated Traffic</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference FLOW__GENERATED_TRAFFIC = eINSTANCE.getFlow_GeneratedTraffic();
-
-		/**
-		 * The meta object literal for the '<em><b>Destination Software</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference FLOW__DESTINATION_SOFTWARE = eINSTANCE.getFlow_DestinationSoftware();
-
-		/**
-		 * The meta object literal for the '<em><b>Destination Addresses</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference FLOW__DESTINATION_ADDRESSES = eINSTANCE.getFlow_DestinationAddresses();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.SdnControlFlowImpl <em>Sdn Control Flow</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.SdnControlFlowImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getSdnControlFlow()
-		 * @generated
-		 */
-		EClass SDN_CONTROL_FLOW = eINSTANCE.getSdnControlFlow();
-
-		/**
-		 * The meta object literal for the '<em><b>Parent Flow</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference SDN_CONTROL_FLOW__PARENT_FLOW = eINSTANCE.getSdnControlFlow_ParentFlow();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.FlowTrafficImpl <em>Flow Traffic</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.FlowTrafficImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getFlowTraffic()
-		 * @generated
-		 */
-		EClass FLOW_TRAFFIC = eINSTANCE.getFlowTraffic();
-
-		/**
-		 * The meta object literal for the '<em><b>Flow</b></em>' container reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference FLOW_TRAFFIC__FLOW = eINSTANCE.getFlowTraffic_Flow();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute FLOW_TRAFFIC__NAME = eINSTANCE.getFlowTraffic_Name();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.GenericFlowTrafficImpl <em>Generic Flow Traffic</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.GenericFlowTrafficImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getGenericFlowTraffic()
-		 * @generated
-		 */
-		EClass GENERIC_FLOW_TRAFFIC = eINSTANCE.getGenericFlowTraffic();
-
-		/**
-		 * The meta object literal for the '<em><b>Data Size</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference GENERIC_FLOW_TRAFFIC__DATA_SIZE = eINSTANCE.getGenericFlowTraffic_DataSize();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.CommunicatingApplicationImpl <em>Communicating Application</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.CommunicatingApplicationImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getCommunicatingApplication()
-		 * @generated
-		 */
-		EClass COMMUNICATING_APPLICATION = eINSTANCE.getCommunicatingApplication();
-
-		/**
-		 * The meta object literal for the '<em><b>Traffic Sources</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference COMMUNICATING_APPLICATION__TRAFFIC_SOURCES = eINSTANCE.getCommunicatingApplication_TrafficSources();
-
-		/**
-		 * The meta object literal for the '<em><b>Deployed On</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference COMMUNICATING_APPLICATION__DEPLOYED_ON = eINSTANCE.getCommunicatingApplication_DeployedOn();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.TrafficSourceImpl <em>Traffic Source</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.TrafficSourceImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getTrafficSource()
-		 * @generated
-		 */
-		EClass TRAFFIC_SOURCE = eINSTANCE.getTrafficSource();
-
-		/**
-		 * The meta object literal for the '<em><b>Workload</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference TRAFFIC_SOURCE__WORKLOAD = eINSTANCE.getTrafficSource_Workload();
-
-		/**
-		 * The meta object literal for the '<em><b>Software Component</b></em>' container reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference TRAFFIC_SOURCE__SOFTWARE_COMPONENT = eINSTANCE.getTrafficSource_SoftwareComponent();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.NetworkConfigurationImpl <em>Network Configuration</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.NetworkConfigurationImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNetworkConfiguration()
-		 * @generated
-		 */
-		EClass NETWORK_CONFIGURATION = eINSTANCE.getNetworkConfiguration();
-
-		/**
-		 * The meta object literal for the '<em><b>Protocols And Stacks</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NETWORK_CONFIGURATION__PROTOCOLS_AND_STACKS = eINSTANCE.getNetworkConfiguration_ProtocolsAndStacks();
-
-		/**
-		 * The meta object literal for the '<em><b>Routes</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NETWORK_CONFIGURATION__ROUTES = eINSTANCE.getNetworkConfiguration_Routes();
-
-		/**
-		 * The meta object literal for the '<em><b>Rules</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NETWORK_CONFIGURATION__RULES = eINSTANCE.getNetworkConfiguration_Rules();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.ProtocolsRepositoryImpl <em>Protocols Repository</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.ProtocolsRepositoryImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getProtocolsRepository()
-		 * @generated
-		 */
-		EClass PROTOCOLS_REPOSITORY = eINSTANCE.getProtocolsRepository();
-
-		/**
-		 * The meta object literal for the '<em><b>Stacks</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PROTOCOLS_REPOSITORY__STACKS = eINSTANCE.getProtocolsRepository_Stacks();
-
-		/**
-		 * The meta object literal for the '<em><b>Protocols</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PROTOCOLS_REPOSITORY__PROTOCOLS = eINSTANCE.getProtocolsRepository_Protocols();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.ProtocolStackImpl <em>Protocol Stack</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.ProtocolStackImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getProtocolStack()
-		 * @generated
-		 */
-		EClass PROTOCOL_STACK = eINSTANCE.getProtocolStack();
-
-		/**
-		 * The meta object literal for the '<em><b>Layers</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PROTOCOL_STACK__LAYERS = eINSTANCE.getProtocolStack_Layers();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.ProtocolLayerImpl <em>Protocol Layer</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.ProtocolLayerImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getProtocolLayer()
-		 * @generated
-		 */
-		EClass PROTOCOL_LAYER = eINSTANCE.getProtocolLayer();
-
-		/**
-		 * The meta object literal for the '<em><b>Protocol</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PROTOCOL_LAYER__PROTOCOL = eINSTANCE.getProtocolLayer_Protocol();
-
-		/**
-		 * The meta object literal for the '<em><b>Is Carried By</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PROTOCOL_LAYER__IS_CARRIED_BY = eINSTANCE.getProtocolLayer_IsCarriedBy();
-
-		/**
-		 * The meta object literal for the '<em><b>Carries</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PROTOCOL_LAYER__CARRIES = eINSTANCE.getProtocolLayer_Carries();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.NetworkProtocolImpl <em>Network Protocol</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.NetworkProtocolImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNetworkProtocol()
-		 * @generated
-		 */
-		EClass NETWORK_PROTOCOL = eINSTANCE.getNetworkProtocol();
-
-		/**
-		 * The meta object literal for the '<em><b>Mtu</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute NETWORK_PROTOCOL__MTU = eINSTANCE.getNetworkProtocol_Mtu();
-
-		/**
-		 * The meta object literal for the '<em><b>Headers Length</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute NETWORK_PROTOCOL__HEADERS_LENGTH = eINSTANCE.getNetworkProtocol_HeadersLength();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.RoutesRepositoryImpl <em>Routes Repository</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.RoutesRepositoryImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getRoutesRepository()
-		 * @generated
-		 */
-		EClass ROUTES_REPOSITORY = eINSTANCE.getRoutesRepository();
-
-		/**
-		 * The meta object literal for the '<em><b>Routes</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ROUTES_REPOSITORY__ROUTES = eINSTANCE.getRoutesRepository_Routes();
-
-		/**
-		 * The meta object literal for the '<em><b>Flow Routes</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ROUTES_REPOSITORY__FLOW_ROUTES = eINSTANCE.getRoutesRepository_FlowRoutes();
-
-		/**
-		 * The meta object literal for the '<em><b>Directions</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ROUTES_REPOSITORY__DIRECTIONS = eINSTANCE.getRoutesRepository_Directions();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.DirectionImpl <em>Direction</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.DirectionImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getDirection()
-		 * @generated
-		 */
-		EClass DIRECTION = eINSTANCE.getDirection();
-
-		/**
-		 * The meta object literal for the '<em><b>On Node</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference DIRECTION__ON_NODE = eINSTANCE.getDirection_OnNode();
-
-		/**
-		 * The meta object literal for the '<em><b>Flow</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference DIRECTION__FLOW = eINSTANCE.getDirection_Flow();
-
-		/**
-		 * The meta object literal for the '<em><b>Via</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference DIRECTION__VIA = eINSTANCE.getDirection_Via();
-
-		/**
-		 * The meta object literal for the '<em><b>Default</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute DIRECTION__DEFAULT = eINSTANCE.getDirection_Default();
-
-		/**
-		 * The meta object literal for the '<em><b>Probability</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute DIRECTION__PROBABILITY = eINSTANCE.getDirection_Probability();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.FlowRouteImpl <em>Flow Route</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.FlowRouteImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getFlowRoute()
-		 * @generated
-		 */
-		EClass FLOW_ROUTE = eINSTANCE.getFlowRoute();
-
-		/**
-		 * The meta object literal for the '<em><b>Hops</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference FLOW_ROUTE__HOPS = eINSTANCE.getFlowRoute_Hops();
-
-		/**
-		 * The meta object literal for the '<em><b>Flow</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference FLOW_ROUTE__FLOW = eINSTANCE.getFlowRoute_Flow();
-
-		/**
-		 * The meta object literal for the '<em><b>Start</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference FLOW_ROUTE__START = eINSTANCE.getFlowRoute_Start();
-
-		/**
-		 * The meta object literal for the '<em><b>End</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference FLOW_ROUTE__END = eINSTANCE.getFlowRoute_End();
-
-		/**
-		 * The meta object literal for the '<em><b>Probability</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute FLOW_ROUTE__PROBABILITY = eINSTANCE.getFlowRoute_Probability();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.RouteImpl <em>Route</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.RouteImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getRoute()
-		 * @generated
-		 */
-		EClass ROUTE = eINSTANCE.getRoute();
-
-		/**
-		 * The meta object literal for the '<em><b>Hops</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ROUTE__HOPS = eINSTANCE.getRoute_Hops();
-
-		/**
-		 * The meta object literal for the '<em><b>Start</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ROUTE__START = eINSTANCE.getRoute_Start();
-
-		/**
-		 * The meta object literal for the '<em><b>End</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ROUTE__END = eINSTANCE.getRoute_End();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.HopImpl <em>Hop</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.HopImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getHop()
-		 * @generated
-		 */
-		EClass HOP = eINSTANCE.getHop();
-
-		/**
-		 * The meta object literal for the '<em><b>Next Hop</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference HOP__NEXT_HOP = eINSTANCE.getHop_NextHop();
-
-		/**
-		 * The meta object literal for the '<em><b>Interfaceref</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference HOP__INTERFACEREF = eINSTANCE.getHop_Interfaceref();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.EntityAddressImpl <em>Entity Address</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.EntityAddressImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getEntityAddress()
-		 * @generated
-		 */
-		EClass ENTITY_ADDRESS = eINSTANCE.getEntityAddress();
-
-		/**
-		 * The meta object literal for the '<em><b>Address</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ENTITY_ADDRESS__ADDRESS = eINSTANCE.getEntityAddress_Address();
-
-		/**
-		 * The meta object literal for the '<em><b>Address Given By</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ENTITY_ADDRESS__ADDRESS_GIVEN_BY = eINSTANCE.getEntityAddress_AddressGivenBy();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.AddressableEntity <em>Addressable Entity</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.AddressableEntity
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getAddressableEntity()
-		 * @generated
-		 */
-		EClass ADDRESSABLE_ENTITY = eINSTANCE.getAddressableEntity();
-
-		/**
-		 * The meta object literal for the '<em><b>Addresses</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADDRESSABLE_ENTITY__ADDRESSES = eINSTANCE.getAddressableEntity_Addresses();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.Workload <em>Workload</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.Workload
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getWorkload()
-		 * @generated
-		 */
-		EClass WORKLOAD = eINSTANCE.getWorkload();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.GenericWorkloadImpl <em>Generic Workload</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.GenericWorkloadImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getGenericWorkload()
-		 * @generated
-		 */
-		EClass GENERIC_WORKLOAD = eINSTANCE.getGenericWorkload();
-
-		/**
-		 * The meta object literal for the '<em><b>Actions</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference GENERIC_WORKLOAD__ACTIONS = eINSTANCE.getGenericWorkload_Actions();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.AbstractAction <em>Abstract Action</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.AbstractAction
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getAbstractAction()
-		 * @generated
-		 */
-		EClass ABSTRACT_ACTION = eINSTANCE.getAbstractAction();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.BranchActionImpl <em>Branch Action</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.BranchActionImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getBranchAction()
-		 * @generated
-		 */
-		EClass BRANCH_ACTION = eINSTANCE.getBranchAction();
-
-		/**
-		 * The meta object literal for the '<em><b>Intern</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference BRANCH_ACTION__INTERN = eINSTANCE.getBranchAction_Intern();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.LoopActionImpl <em>Loop Action</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.LoopActionImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getLoopAction()
-		 * @generated
-		 */
-		EClass LOOP_ACTION = eINSTANCE.getLoopAction();
-
-		/**
-		 * The meta object literal for the '<em><b>Intern</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference LOOP_ACTION__INTERN = eINSTANCE.getLoopAction_Intern();
-
-		/**
-		 * The meta object literal for the '<em><b>Num Iterations</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference LOOP_ACTION__NUM_ITERATIONS = eINSTANCE.getLoopAction_NumIterations();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.SequenceActionImpl <em>Sequence Action</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.SequenceActionImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getSequenceAction()
-		 * @generated
-		 */
-		EClass SEQUENCE_ACTION = eINSTANCE.getSequenceAction();
-
-		/**
-		 * The meta object literal for the '<em><b>Intern</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference SEQUENCE_ACTION__INTERN = eINSTANCE.getSequenceAction_Intern();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.StartActionImpl <em>Start Action</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.StartActionImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getStartAction()
-		 * @generated
-		 */
-		EClass START_ACTION = eINSTANCE.getStartAction();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.StopActionImpl <em>Stop Action</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.StopActionImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getStopAction()
-		 * @generated
-		 */
-		EClass STOP_ACTION = eINSTANCE.getStopAction();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.TransmitActionImpl <em>Transmit Action</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.TransmitActionImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getTransmitAction()
-		 * @generated
-		 */
-		EClass TRANSMIT_ACTION = eINSTANCE.getTransmitAction();
-
-		/**
-		 * The meta object literal for the '<em><b>Flow Traffic</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference TRANSMIT_ACTION__FLOW_TRAFFIC = eINSTANCE.getTransmitAction_FlowTraffic();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.WaitActionImpl <em>Wait Action</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.WaitActionImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getWaitAction()
-		 * @generated
-		 */
-		EClass WAIT_ACTION = eINSTANCE.getWaitAction();
-
-		/**
-		 * The meta object literal for the '<em><b>Wait Time</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference WAIT_ACTION__WAIT_TIME = eINSTANCE.getWaitAction_WaitTime();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.PerformanceSpecification <em>Performance Specification</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.PerformanceSpecification
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getPerformanceSpecification()
-		 * @generated
-		 */
-		EClass PERFORMANCE_SPECIFICATION = eINSTANCE.getPerformanceSpecification();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.PerformanceLinkImpl <em>Performance Link</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.PerformanceLinkImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getPerformanceLink()
-		 * @generated
-		 */
-		EClass PERFORMANCE_LINK = eINSTANCE.getPerformanceLink();
-
-		/**
-		 * The meta object literal for the '<em><b>Propagation Delay</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PERFORMANCE_LINK__PROPAGATION_DELAY = eINSTANCE.getPerformanceLink_PropagationDelay();
-
-		/**
-		 * The meta object literal for the '<em><b>Max Supported Bandwidth</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PERFORMANCE_LINK__MAX_SUPPORTED_BANDWIDTH = eINSTANCE.getPerformanceLink_MaxSupportedBandwidth();
-
-		/**
-		 * The meta object literal for the '<em><b>Entity Type</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PERFORMANCE_LINK__ENTITY_TYPE = eINSTANCE.getPerformanceLink_EntityType();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.PerformanceNetworkInterfaceImpl <em>Performance Network Interface</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.PerformanceNetworkInterfaceImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getPerformanceNetworkInterface()
-		 * @generated
-		 */
-		EClass PERFORMANCE_NETWORK_INTERFACE = eINSTANCE.getPerformanceNetworkInterface();
-
-		/**
-		 * The meta object literal for the '<em><b>Is Up</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PERFORMANCE_NETWORK_INTERFACE__IS_UP = eINSTANCE.getPerformanceNetworkInterface_IsUp();
-
-		/**
-		 * The meta object literal for the '<em><b>MTU</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PERFORMANCE_NETWORK_INTERFACE__MTU = eINSTANCE.getPerformanceNetworkInterface_MTU();
-
-		/**
-		 * The meta object literal for the '<em><b>Packet Processing Time</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PERFORMANCE_NETWORK_INTERFACE__PACKET_PROCESSING_TIME = eINSTANCE.getPerformanceNetworkInterface_PacketProcessingTime();
-
-		/**
-		 * The meta object literal for the '<em><b>Interface Throughput</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PERFORMANCE_NETWORK_INTERFACE__INTERFACE_THROUGHPUT = eINSTANCE.getPerformanceNetworkInterface_InterfaceThroughput();
-
-		/**
-		 * The meta object literal for the '<em><b>Entity Type</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PERFORMANCE_NETWORK_INTERFACE__ENTITY_TYPE = eINSTANCE.getPerformanceNetworkInterface_EntityType();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.SdnFlowRuleImpl <em>Sdn Flow Rule</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.SdnFlowRuleImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getSdnFlowRule()
-		 * @generated
-		 */
-		EClass SDN_FLOW_RULE = eINSTANCE.getSdnFlowRule();
-
-		/**
-		 * The meta object literal for the '<em><b>Sdn Switch</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference SDN_FLOW_RULE__SDN_SWITCH = eINSTANCE.getSdnFlowRule_SdnSwitch();
-
-		/**
-		 * The meta object literal for the '<em><b>Flow</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference SDN_FLOW_RULE__FLOW = eINSTANCE.getSdnFlowRule_Flow();
-
-		/**
-		 * The meta object literal for the '<em><b>Probability Hardware</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute SDN_FLOW_RULE__PROBABILITY_HARDWARE = eINSTANCE.getSdnFlowRule_ProbabilityHardware();
-
-		/**
-		 * The meta object literal for the '<em><b>Probability Software</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute SDN_FLOW_RULE__PROBABILITY_SOFTWARE = eINSTANCE.getSdnFlowRule_ProbabilitySoftware();
-
-		/**
-		 * The meta object literal for the '<em><b>Probability Controller</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute SDN_FLOW_RULE__PROBABILITY_CONTROLLER = eINSTANCE.getSdnFlowRule_ProbabilityController();
-
-		/**
-		 * The meta object literal for the '<em><b>Controller Application</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference SDN_FLOW_RULE__CONTROLLER_APPLICATION = eINSTANCE.getSdnFlowRule_ControllerApplication();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.SdnControllerImpl <em>Sdn Controller</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.SdnControllerImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getSdnController()
-		 * @generated
-		 */
-		EClass SDN_CONTROLLER = eINSTANCE.getSdnController();
-
-		/**
-		 * The meta object literal for the '<em><b>Applications</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference SDN_CONTROLLER__APPLICATIONS = eINSTANCE.getSdnController_Applications();
-
-		/**
-		 * The meta object literal for the '<em><b>Nodes</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference SDN_CONTROLLER__NODES = eINSTANCE.getSdnController_Nodes();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.SdnControllerApplicationImpl <em>Sdn Controller Application</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.SdnControllerApplicationImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getSdnControllerApplication()
-		 * @generated
-		 */
-		EClass SDN_CONTROLLER_APPLICATION = eINSTANCE.getSdnControllerApplication();
-
-		/**
-		 * The meta object literal for the '<em><b>Belongs To</b></em>' container reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference SDN_CONTROLLER_APPLICATION__BELONGS_TO = eINSTANCE.getSdnControllerApplication_BelongsTo();
-
-		/**
-		 * The meta object literal for the '<em><b>Is Default</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute SDN_CONTROLLER_APPLICATION__IS_DEFAULT = eINSTANCE.getSdnControllerApplication_IsDefault();
-
-		/**
-		 * The meta object literal for the '<em><b>Response Delay</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference SDN_CONTROLLER_APPLICATION__RESPONSE_DELAY = eINSTANCE.getSdnControllerApplication_ResponseDelay();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.IType <em>IType</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.IType
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getIType()
-		 * @generated
-		 */
-		EClass ITYPE = eINSTANCE.getIType();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.CommonImpl <em>Common</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.CommonImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getCommon()
-		 * @generated
-		 */
-		EClass COMMON = eINSTANCE.getCommon();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.SDNImpl <em>SDN</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.SDNImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getSDN()
-		 * @generated
-		 */
-		EClass SDN = eINSTANCE.getSDN();
-
-		/**
-		 * The meta object literal for the '<em><b>Performance</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference SDN__PERFORMANCE = eINSTANCE.getSDN_Performance();
-
-		/**
-		 * The meta object literal for the '<em><b>Controller</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference SDN__CONTROLLER = eINSTANCE.getSDN_Controller();
-
-		/**
-		 * The meta object literal for the '<em><b>Open Flow End Point</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference SDN__OPEN_FLOW_END_POINT = eINSTANCE.getSDN_OpenFlowEndPoint();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.IntermediatePerformanceImpl <em>Intermediate Performance</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.IntermediatePerformanceImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getIntermediatePerformance()
-		 * @generated
-		 */
-		EClass INTERMEDIATE_PERFORMANCE = eINSTANCE.getIntermediatePerformance();
-
-		/**
-		 * The meta object literal for the '<em><b>Forwarding Latency</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY = eINSTANCE.getIntermediatePerformance_ForwardingLatency();
-
-		/**
-		 * The meta object literal for the '<em><b>Forwarding Bandwidth BPS</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS = eINSTANCE.getIntermediatePerformance_ForwardingBandwidthBPS();
-
-		/**
-		 * The meta object literal for the '<em><b>Switching Capacity PPS</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS = eINSTANCE.getIntermediatePerformance_SwitchingCapacityPPS();
-
-		/**
-		 * The meta object literal for the '<em><b>Entity Type</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference INTERMEDIATE_PERFORMANCE__ENTITY_TYPE = eINSTANCE.getIntermediatePerformance_EntityType();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.EndPerformanceImpl <em>End Performance</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.EndPerformanceImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getEndPerformance()
-		 * @generated
-		 */
-		EClass END_PERFORMANCE = eINSTANCE.getEndPerformance();
-
-		/**
-		 * The meta object literal for the '<em><b>Software Layers Delay</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference END_PERFORMANCE__SOFTWARE_LAYERS_DELAY = eINSTANCE.getEndPerformance_SoftwareLayersDelay();
-
-		/**
-		 * The meta object literal for the '<em><b>Entity Type</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference END_PERFORMANCE__ENTITY_TYPE = eINSTANCE.getEndPerformance_EntityType();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.PerformanceSdnNodeImpl <em>Performance Sdn Node</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.PerformanceSdnNodeImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getPerformanceSdnNode()
-		 * @generated
-		 */
-		EClass PERFORMANCE_SDN_NODE = eINSTANCE.getPerformanceSdnNode();
-
-		/**
-		 * The meta object literal for the '<em><b>Software Switching Performance</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PERFORMANCE_SDN_NODE__SOFTWARE_SWITCHING_PERFORMANCE = eINSTANCE.getPerformanceSdnNode_SoftwareSwitchingPerformance();
-
-		/**
-		 * The meta object literal for the '<em><b>Hardware Switching Performance</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PERFORMANCE_SDN_NODE__HARDWARE_SWITCHING_PERFORMANCE = eINSTANCE.getPerformanceSdnNode_HardwareSwitchingPerformance();
-
-		/**
-		 * The meta object literal for the '<em><b>Entity Type</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PERFORMANCE_SDN_NODE__ENTITY_TYPE = eINSTANCE.getPerformanceSdnNode_EntityType();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.DNIUnit <em>Unit</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.DNIUnit
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getDNIUnit()
-		 * @generated
-		 */
-		EClass DNI_UNIT = eINSTANCE.getDNIUnit();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.SpeedUnitImpl <em>Speed Unit</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.SpeedUnitImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getSpeedUnit()
-		 * @generated
-		 */
-		EClass SPEED_UNIT = eINSTANCE.getSpeedUnit();
-
-		/**
-		 * The meta object literal for the '<em><b>Unit</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute SPEED_UNIT__UNIT = eINSTANCE.getSpeedUnit_Unit();
-
-		/**
-		 * The meta object literal for the '<em><b>Prefix</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute SPEED_UNIT__PREFIX = eINSTANCE.getSpeedUnit_Prefix();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.DataUnitImpl <em>Data Unit</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.DataUnitImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getDataUnit()
-		 * @generated
-		 */
-		EClass DATA_UNIT = eINSTANCE.getDataUnit();
-
-		/**
-		 * The meta object literal for the '<em><b>Prefix</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute DATA_UNIT__PREFIX = eINSTANCE.getDataUnit_Prefix();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.TimeUnitImpl <em>Time Unit</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.TimeUnitImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getTimeUnit()
-		 * @generated
-		 */
-		EClass TIME_UNIT = eINSTANCE.getTimeUnit();
-
-		/**
-		 * The meta object literal for the '<em><b>Unit</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute TIME_UNIT__UNIT = eINSTANCE.getTimeUnit_Unit();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.Dependency <em>Dependency</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.Dependency
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getDependency()
-		 * @generated
-		 */
-		EClass DEPENDENCY = eINSTANCE.getDependency();
-
-		/**
-		 * The meta object literal for the '<em><b>Unit</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference DEPENDENCY__UNIT = eINSTANCE.getDependency_Unit();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.Variable <em>Variable</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.Variable
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getVariable()
-		 * @generated
-		 */
-		EClass VARIABLE = eINSTANCE.getVariable();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.Function <em>Function</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.Function
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getFunction()
-		 * @generated
-		 */
-		EClass FUNCTION = eINSTANCE.getFunction();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.ConstantDoubleVariableImpl <em>Constant Double Variable</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.ConstantDoubleVariableImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getConstantDoubleVariable()
-		 * @generated
-		 */
-		EClass CONSTANT_DOUBLE_VARIABLE = eINSTANCE.getConstantDoubleVariable();
-
-		/**
-		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute CONSTANT_DOUBLE_VARIABLE__VALUE = eINSTANCE.getConstantDoubleVariable_Value();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.ConstantLongVariableImpl <em>Constant Long Variable</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.ConstantLongVariableImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getConstantLongVariable()
-		 * @generated
-		 */
-		EClass CONSTANT_LONG_VARIABLE = eINSTANCE.getConstantLongVariable();
-
-		/**
-		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute CONSTANT_LONG_VARIABLE__VALUE = eINSTANCE.getConstantLongVariable_Value();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.RandomVariableImpl <em>Random Variable</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.RandomVariableImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getRandomVariable()
-		 * @generated
-		 */
-		EClass RANDOM_VARIABLE = eINSTANCE.getRandomVariable();
-
-		/**
-		 * The meta object literal for the '<em><b>Cdf</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference RANDOM_VARIABLE__CDF = eINSTANCE.getRandomVariable_Cdf();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.FloatCoordinateImpl <em>Float Coordinate</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.FloatCoordinateImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getFloatCoordinate()
-		 * @generated
-		 */
-		EClass FLOAT_COORDINATE = eINSTANCE.getFloatCoordinate();
-
-		/**
-		 * The meta object literal for the '<em><b>X</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute FLOAT_COORDINATE__X = eINSTANCE.getFloatCoordinate_X();
-
-		/**
-		 * The meta object literal for the '<em><b>Y</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute FLOAT_COORDINATE__Y = eINSTANCE.getFloatCoordinate_Y();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.DiscreteFunctionImpl <em>Discrete Function</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.DiscreteFunctionImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getDiscreteFunction()
-		 * @generated
-		 */
-		EClass DISCRETE_FUNCTION = eINSTANCE.getDiscreteFunction();
-
-		/**
-		 * The meta object literal for the '<em><b>Vals</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference DISCRETE_FUNCTION__VALS = eINSTANCE.getDiscreteFunction_Vals();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.ExponentialFunctionImpl <em>Exponential Function</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.ExponentialFunctionImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getExponentialFunction()
-		 * @generated
-		 */
-		EClass EXPONENTIAL_FUNCTION = eINSTANCE.getExponentialFunction();
-
-		/**
-		 * The meta object literal for the '<em><b>Lambda</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute EXPONENTIAL_FUNCTION__LAMBDA = eINSTANCE.getExponentialFunction_Lambda();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.EntityTypesImpl <em>Entity Types</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.EntityTypesImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getEntityTypes()
-		 * @generated
-		 */
-		EClass ENTITY_TYPES = eINSTANCE.getEntityTypes();
-
-		/**
-		 * The meta object literal for the '<em><b>Types</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ENTITY_TYPES__TYPES = eINSTANCE.getEntityTypes_Types();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.ITypedEntity <em>ITyped Entity</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.ITypedEntity
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getITypedEntity()
-		 * @generated
-		 */
-		EClass ITYPED_ENTITY = eINSTANCE.getITypedEntity();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.NodeTypeImpl <em>Node Type</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.NodeTypeImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNodeType()
-		 * @generated
-		 */
-		EClass NODE_TYPE = eINSTANCE.getNodeType();
-
-		/**
-		 * The meta object literal for the '<em><b>Entities</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NODE_TYPE__ENTITIES = eINSTANCE.getNodeType_Entities();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.EndPerformanceTypeImpl <em>End Performance Type</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.EndPerformanceTypeImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getEndPerformanceType()
-		 * @generated
-		 */
-		EClass END_PERFORMANCE_TYPE = eINSTANCE.getEndPerformanceType();
-
-		/**
-		 * The meta object literal for the '<em><b>Entities</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference END_PERFORMANCE_TYPE__ENTITIES = eINSTANCE.getEndPerformanceType_Entities();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.IntermediatePerformanceTypeImpl <em>Intermediate Performance Type</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.IntermediatePerformanceTypeImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getIntermediatePerformanceType()
-		 * @generated
-		 */
-		EClass INTERMEDIATE_PERFORMANCE_TYPE = eINSTANCE.getIntermediatePerformanceType();
-
-		/**
-		 * The meta object literal for the '<em><b>Entities</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference INTERMEDIATE_PERFORMANCE_TYPE__ENTITIES = eINSTANCE.getIntermediatePerformanceType_Entities();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.SdnNodePerformanceTypeImpl <em>Sdn Node Performance Type</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.SdnNodePerformanceTypeImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getSdnNodePerformanceType()
-		 * @generated
-		 */
-		EClass SDN_NODE_PERFORMANCE_TYPE = eINSTANCE.getSdnNodePerformanceType();
-
-		/**
-		 * The meta object literal for the '<em><b>Entities</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference SDN_NODE_PERFORMANCE_TYPE__ENTITIES = eINSTANCE.getSdnNodePerformanceType_Entities();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.NetworkInterfaceTypeImpl <em>Network Interface Type</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.NetworkInterfaceTypeImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNetworkInterfaceType()
-		 * @generated
-		 */
-		EClass NETWORK_INTERFACE_TYPE = eINSTANCE.getNetworkInterfaceType();
-
-		/**
-		 * The meta object literal for the '<em><b>Entities</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NETWORK_INTERFACE_TYPE__ENTITIES = eINSTANCE.getNetworkInterfaceType_Entities();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.NetworkInterfacePerformanceTypeImpl <em>Network Interface Performance Type</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.NetworkInterfacePerformanceTypeImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getNetworkInterfacePerformanceType()
-		 * @generated
-		 */
-		EClass NETWORK_INTERFACE_PERFORMANCE_TYPE = eINSTANCE.getNetworkInterfacePerformanceType();
-
-		/**
-		 * The meta object literal for the '<em><b>Entities</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NETWORK_INTERFACE_PERFORMANCE_TYPE__ENTITIES = eINSTANCE.getNetworkInterfacePerformanceType_Entities();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.LinkTypeImpl <em>Link Type</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.LinkTypeImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getLinkType()
-		 * @generated
-		 */
-		EClass LINK_TYPE = eINSTANCE.getLinkType();
-
-		/**
-		 * The meta object literal for the '<em><b>Entities</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference LINK_TYPE__ENTITIES = eINSTANCE.getLinkType_Entities();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.impl.LinkPerformanceTypeImpl <em>Link Performance Type</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.impl.LinkPerformanceTypeImpl
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getLinkPerformanceType()
-		 * @generated
-		 */
-		EClass LINK_PERFORMANCE_TYPE = eINSTANCE.getLinkPerformanceType();
-
-		/**
-		 * The meta object literal for the '<em><b>Entities</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference LINK_PERFORMANCE_TYPE__ENTITIES = eINSTANCE.getLinkPerformanceType_Entities();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.UnitPrefix <em>Unit Prefix</em>}' enum.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.UnitPrefix
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getUnitPrefix()
-		 * @generated
-		 */
-		EEnum UNIT_PREFIX = eINSTANCE.getUnitPrefix();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.Speed <em>Speed</em>}' enum.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.Speed
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getSpeed()
-		 * @generated
-		 */
-		EEnum SPEED = eINSTANCE.getSpeed();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3.Time <em>Time</em>}' enum.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3.Time
-		 * @see tools.descartes.dni.dnimm3.impl.DNIPackageImpl#getTime()
-		 * @generated
-		 */
-		EEnum TIME = eINSTANCE.getTime();
-
-	}
-
-} //DNIPackage
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/DNIUnit.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/DNIUnit.java
deleted file mode 100644
index fbba6598..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/DNIUnit.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Unit</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getDNIUnit()
- * @model interface="true" abstract="true"
- * @generated
- */
-public interface DNIUnit extends EObject {
-} // DNIUnit
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/DataUnit.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/DataUnit.java
deleted file mode 100644
index 43e897d7..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/DataUnit.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Data Unit</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.DataUnit#getPrefix <em>Prefix</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getDataUnit()
- * @model
- * @generated
- */
-public interface DataUnit extends DNIUnit {
-	/**
-	 * Returns the value of the '<em><b>Prefix</b></em>' attribute.
-	 * The default value is <code>"none"</code>.
-	 * The literals are from the enumeration {@link tools.descartes.dni.dnimm3.UnitPrefix}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Prefix</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Prefix</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3.UnitPrefix
-	 * @see #setPrefix(UnitPrefix)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getDataUnit_Prefix()
-	 * @model default="none" unique="false" required="true" ordered="false"
-	 * @generated
-	 */
-	UnitPrefix getPrefix();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.DataUnit#getPrefix <em>Prefix</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Prefix</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3.UnitPrefix
-	 * @see #getPrefix()
-	 * @generated
-	 */
-	void setPrefix(UnitPrefix value);
-
-} // DataUnit
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Dependency.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Dependency.java
deleted file mode 100644
index 41c1e6aa..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Dependency.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Dependency</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.Dependency#getUnit <em>Unit</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getDependency()
- * @model interface="true" abstract="true"
- * @generated
- */
-public interface Dependency extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Unit</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Unit</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Unit</em>' containment reference.
-	 * @see #setUnit(DNIUnit)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getDependency_Unit()
-	 * @model containment="true"
-	 * @generated
-	 */
-	DNIUnit getUnit();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Dependency#getUnit <em>Unit</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Unit</em>' containment reference.
-	 * @see #getUnit()
-	 * @generated
-	 */
-	void setUnit(DNIUnit value);
-
-} // Dependency
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Direction.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Direction.java
deleted file mode 100644
index f073ad16..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Direction.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Direction</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.Direction#getOnNode <em>On Node</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Direction#getFlow <em>Flow</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Direction#getVia <em>Via</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Direction#getDefault <em>Default</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Direction#getProbability <em>Probability</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getDirection()
- * @model
- * @generated
- */
-public interface Direction extends Entity {
-	/**
-	 * Returns the value of the '<em><b>On Node</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>On Node</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>On Node</em>' reference.
-	 * @see #setOnNode(Node)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getDirection_OnNode()
-	 * @model required="true"
-	 * @generated
-	 */
-	Node getOnNode();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Direction#getOnNode <em>On Node</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>On Node</em>' reference.
-	 * @see #getOnNode()
-	 * @generated
-	 */
-	void setOnNode(Node value);
-
-	/**
-	 * Returns the value of the '<em><b>Flow</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Flow</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Flow</em>' reference.
-	 * @see #setFlow(Flow)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getDirection_Flow()
-	 * @model required="true"
-	 * @generated
-	 */
-	Flow getFlow();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Direction#getFlow <em>Flow</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Flow</em>' reference.
-	 * @see #getFlow()
-	 * @generated
-	 */
-	void setFlow(Flow value);
-
-	/**
-	 * Returns the value of the '<em><b>Via</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Via</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Via</em>' reference.
-	 * @see #setVia(NetworkInterface)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getDirection_Via()
-	 * @model required="true"
-	 * @generated
-	 */
-	NetworkInterface getVia();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Direction#getVia <em>Via</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Via</em>' reference.
-	 * @see #getVia()
-	 * @generated
-	 */
-	void setVia(NetworkInterface value);
-
-	/**
-	 * Returns the value of the '<em><b>Default</b></em>' attribute.
-	 * The default value is <code>"0"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Default</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Default</em>' attribute.
-	 * @see #setDefault(int)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getDirection_Default()
-	 * @model default="0" unique="false"
-	 * @generated
-	 */
-	int getDefault();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Direction#getDefault <em>Default</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Default</em>' attribute.
-	 * @see #getDefault()
-	 * @generated
-	 */
-	void setDefault(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Probability</b></em>' attribute.
-	 * The default value is <code>"1.0"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Probability</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Probability</em>' attribute.
-	 * @see #setProbability(float)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getDirection_Probability()
-	 * @model default="1.0" unique="false" required="true"
-	 * @generated
-	 */
-	float getProbability();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Direction#getProbability <em>Probability</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Probability</em>' attribute.
-	 * @see #getProbability()
-	 * @generated
-	 */
-	void setProbability(float value);
-
-} // Direction
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/DiscreteFunction.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/DiscreteFunction.java
deleted file mode 100644
index fb9a8f5f..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/DiscreteFunction.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Discrete Function</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.DiscreteFunction#getVals <em>Vals</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getDiscreteFunction()
- * @model
- * @generated
- */
-public interface DiscreteFunction extends Function {
-	/**
-	 * Returns the value of the '<em><b>Vals</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.FloatCoordinate}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Vals</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>Vals</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getDiscreteFunction_Vals()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	List<FloatCoordinate> getVals();
-
-} // DiscreteFunction
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/End.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/End.java
deleted file mode 100644
index 35f61e50..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/End.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>End</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.End#getPerformance <em>Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.End#getSoftware <em>Software</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.End#getNode <em>Node</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.End#getName <em>Name</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getEnd()
- * @model
- * @generated
- */
-public interface End extends Identifier {
-	/**
-	 * Returns the value of the '<em><b>Performance</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Performance</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Performance</em>' containment reference.
-	 * @see #setPerformance(EndPerformance)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getEnd_Performance()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EndPerformance getPerformance();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.End#getPerformance <em>Performance</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Performance</em>' containment reference.
-	 * @see #getPerformance()
-	 * @generated
-	 */
-	void setPerformance(EndPerformance value);
-
-	/**
-	 * Returns the value of the '<em><b>Software</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.CommunicatingApplication}.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.CommunicatingApplication#getDeployedOn <em>Deployed On</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Software</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>Software</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getEnd_Software()
-	 * @see tools.descartes.dni.dnimm3.CommunicatingApplication#getDeployedOn
-	 * @model opposite="deployedOn"
-	 * @generated
-	 */
-	List<CommunicatingApplication> getSoftware();
-
-	/**
-	 * Returns the value of the '<em><b>Node</b></em>' container reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.Node#getEnd <em>End</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Node</em>' container reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Node</em>' container reference.
-	 * @see #setNode(Node)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getEnd_Node()
-	 * @see tools.descartes.dni.dnimm3.Node#getEnd
-	 * @model opposite="end" transient="false"
-	 * @generated
-	 */
-	Node getNode();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.End#getNode <em>Node</em>}' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Node</em>' container reference.
-	 * @see #getNode()
-	 * @generated
-	 */
-	void setNode(Node value);
-
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getEnd_Name()
-	 * @model unique="false" transient="true" changeable="false" volatile="true" derived="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='&lt;%java.lang.String%&gt; _name = this.getNode().getName();\n&lt;%java.lang.String%&gt; _plus = ((\"End\" + \"[\") + _name);\nreturn (_plus + \"]\");'"
-	 * @generated
-	 */
-	String getName();
-
-} // End
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/EndPerformance.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/EndPerformance.java
deleted file mode 100644
index 6b4d247b..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/EndPerformance.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>End Performance</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.EndPerformance#getSoftwareLayersDelay <em>Software Layers Delay</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.EndPerformance#getEntityType <em>Entity Type</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getEndPerformance()
- * @model
- * @generated
- */
-public interface EndPerformance extends PerformanceSpecification {
-	/**
-	 * Returns the value of the '<em><b>Software Layers Delay</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Software Layers Delay</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Software Layers Delay</em>' containment reference.
-	 * @see #setSoftwareLayersDelay(Dependency)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getEndPerformance_SoftwareLayersDelay()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	Dependency getSoftwareLayersDelay();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.EndPerformance#getSoftwareLayersDelay <em>Software Layers Delay</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Software Layers Delay</em>' containment reference.
-	 * @see #getSoftwareLayersDelay()
-	 * @generated
-	 */
-	void setSoftwareLayersDelay(Dependency value);
-
-	/**
-	 * Returns the value of the '<em><b>Entity Type</b></em>' reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.EndPerformanceType#getEntities <em>Entities</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Entity 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>Entity Type</em>' reference.
-	 * @see #setEntityType(EndPerformanceType)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getEndPerformance_EntityType()
-	 * @see tools.descartes.dni.dnimm3.EndPerformanceType#getEntities
-	 * @model opposite="entities"
-	 * @generated
-	 */
-	EndPerformanceType getEntityType();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.EndPerformance#getEntityType <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Entity Type</em>' reference.
-	 * @see #getEntityType()
-	 * @generated
-	 */
-	void setEntityType(EndPerformanceType value);
-
-} // EndPerformance
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/EndPerformanceType.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/EndPerformanceType.java
deleted file mode 100644
index deb82ca5..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/EndPerformanceType.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>End Performance Type</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.EndPerformanceType#getEntities <em>Entities</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getEndPerformanceType()
- * @model
- * @generated
- */
-public interface EndPerformanceType extends ITypedEntity {
-	/**
-	 * Returns the value of the '<em><b>Entities</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.EndPerformance}.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.EndPerformance#getEntityType <em>Entity Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Entities</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>Entities</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getEndPerformanceType_Entities()
-	 * @see tools.descartes.dni.dnimm3.EndPerformance#getEntityType
-	 * @model opposite="entityType"
-	 * @generated
-	 */
-	List<EndPerformance> getEntities();
-
-} // EndPerformanceType
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Entity.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Entity.java
deleted file mode 100644
index 452d1932..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Entity.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Entity</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getEntity()
- * @model interface="true" abstract="true"
- * @generated
- */
-public interface Entity extends Identifier, NamedElement {
-} // Entity
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/EntityAddress.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/EntityAddress.java
deleted file mode 100644
index 38579353..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/EntityAddress.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Entity Address</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.EntityAddress#getAddress <em>Address</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.EntityAddress#getAddressGivenBy <em>Address Given By</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getEntityAddress()
- * @model
- * @generated
- */
-public interface EntityAddress extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Address</b></em>' attribute.
-	 * The default value is <code>"x.x.x.x"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Address</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Address</em>' attribute.
-	 * @see #setAddress(String)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getEntityAddress_Address()
-	 * @model default="x.x.x.x" unique="false"
-	 * @generated
-	 */
-	String getAddress();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.EntityAddress#getAddress <em>Address</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Address</em>' attribute.
-	 * @see #getAddress()
-	 * @generated
-	 */
-	void setAddress(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Address Given By</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Address Given By</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Address Given By</em>' reference.
-	 * @see #setAddressGivenBy(NetworkProtocol)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getEntityAddress_AddressGivenBy()
-	 * @model
-	 * @generated
-	 */
-	NetworkProtocol getAddressGivenBy();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.EntityAddress#getAddressGivenBy <em>Address Given By</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Address Given By</em>' reference.
-	 * @see #getAddressGivenBy()
-	 * @generated
-	 */
-	void setAddressGivenBy(NetworkProtocol value);
-
-} // EntityAddress
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/EntityTypes.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/EntityTypes.java
deleted file mode 100644
index d209a405..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/EntityTypes.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Entity Types</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.EntityTypes#getTypes <em>Types</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getEntityTypes()
- * @model
- * @generated
- */
-public interface EntityTypes extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Types</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.ITypedEntity}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Types</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>Types</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getEntityTypes_Types()
-	 * @model containment="true"
-	 * @generated
-	 */
-	List<ITypedEntity> getTypes();
-
-} // EntityTypes
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ExponentialFunction.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ExponentialFunction.java
deleted file mode 100644
index 17171369..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ExponentialFunction.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Exponential Function</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.ExponentialFunction#getLambda <em>Lambda</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getExponentialFunction()
- * @model
- * @generated
- */
-public interface ExponentialFunction extends Function {
-	/**
-	 * Returns the value of the '<em><b>Lambda</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Lambda</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Lambda</em>' attribute.
-	 * @see #setLambda(double)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getExponentialFunction_Lambda()
-	 * @model unique="false"
-	 * @generated
-	 */
-	double getLambda();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.ExponentialFunction#getLambda <em>Lambda</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Lambda</em>' attribute.
-	 * @see #getLambda()
-	 * @generated
-	 */
-	void setLambda(double value);
-
-} // ExponentialFunction
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/FloatCoordinate.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/FloatCoordinate.java
deleted file mode 100644
index 00dba636..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/FloatCoordinate.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Float Coordinate</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.FloatCoordinate#getX <em>X</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.FloatCoordinate#getY <em>Y</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getFloatCoordinate()
- * @model
- * @generated
- */
-public interface FloatCoordinate extends EObject {
-	/**
-	 * Returns the value of the '<em><b>X</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>X</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>X</em>' attribute.
-	 * @see #setX(double)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getFloatCoordinate_X()
-	 * @model unique="false"
-	 * @generated
-	 */
-	double getX();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.FloatCoordinate#getX <em>X</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>X</em>' attribute.
-	 * @see #getX()
-	 * @generated
-	 */
-	void setX(double value);
-
-	/**
-	 * Returns the value of the '<em><b>Y</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Y</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Y</em>' attribute.
-	 * @see #setY(double)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getFloatCoordinate_Y()
-	 * @model unique="false"
-	 * @generated
-	 */
-	double getY();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.FloatCoordinate#getY <em>Y</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Y</em>' attribute.
-	 * @see #getY()
-	 * @generated
-	 */
-	void setY(double value);
-
-} // FloatCoordinate
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Flow.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Flow.java
deleted file mode 100644
index cb2f1a69..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Flow.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Flow</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.Flow#getSourceSoftware <em>Source Software</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Flow#getGeneratedTraffic <em>Generated Traffic</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Flow#getDestinationSoftware <em>Destination Software</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Flow#getDestinationAddresses <em>Destination Addresses</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getFlow()
- * @model
- * @generated
- */
-public interface Flow extends Entity {
-	/**
-	 * Returns the value of the '<em><b>Source Software</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Source Software</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Source Software</em>' reference.
-	 * @see #setSourceSoftware(CommunicatingApplication)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getFlow_SourceSoftware()
-	 * @model required="true"
-	 * @generated
-	 */
-	CommunicatingApplication getSourceSoftware();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Flow#getSourceSoftware <em>Source Software</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Source Software</em>' reference.
-	 * @see #getSourceSoftware()
-	 * @generated
-	 */
-	void setSourceSoftware(CommunicatingApplication value);
-
-	/**
-	 * Returns the value of the '<em><b>Generated Traffic</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.FlowTraffic}.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.FlowTraffic#getFlow <em>Flow</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Generated Traffic</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>Generated Traffic</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getFlow_GeneratedTraffic()
-	 * @see tools.descartes.dni.dnimm3.FlowTraffic#getFlow
-	 * @model opposite="flow" containment="true"
-	 * @generated
-	 */
-	List<FlowTraffic> getGeneratedTraffic();
-
-	/**
-	 * Returns the value of the '<em><b>Destination Software</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.CommunicatingApplication}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Destination Software</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>Destination Software</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getFlow_DestinationSoftware()
-	 * @model required="true"
-	 * @generated
-	 */
-	List<CommunicatingApplication> getDestinationSoftware();
-
-	/**
-	 * Returns the value of the '<em><b>Destination Addresses</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.EntityAddress}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Destination Addresses</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>Destination Addresses</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getFlow_DestinationAddresses()
-	 * @model containment="true"
-	 * @generated
-	 */
-	List<EntityAddress> getDestinationAddresses();
-
-} // Flow
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/FlowRoute.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/FlowRoute.java
deleted file mode 100644
index 880968a4..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/FlowRoute.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Flow Route</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.FlowRoute#getHops <em>Hops</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.FlowRoute#getFlow <em>Flow</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.FlowRoute#getStart <em>Start</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.FlowRoute#getEnd <em>End</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.FlowRoute#getProbability <em>Probability</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getFlowRoute()
- * @model
- * @generated
- */
-public interface FlowRoute extends Entity {
-	/**
-	 * Returns the value of the '<em><b>Hops</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Hops</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Hops</em>' containment reference.
-	 * @see #setHops(Hop)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getFlowRoute_Hops()
-	 * @model containment="true"
-	 * @generated
-	 */
-	Hop getHops();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.FlowRoute#getHops <em>Hops</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Hops</em>' containment reference.
-	 * @see #getHops()
-	 * @generated
-	 */
-	void setHops(Hop value);
-
-	/**
-	 * Returns the value of the '<em><b>Flow</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Flow</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Flow</em>' reference.
-	 * @see #setFlow(Flow)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getFlowRoute_Flow()
-	 * @model required="true"
-	 * @generated
-	 */
-	Flow getFlow();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.FlowRoute#getFlow <em>Flow</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Flow</em>' reference.
-	 * @see #getFlow()
-	 * @generated
-	 */
-	void setFlow(Flow value);
-
-	/**
-	 * Returns the value of the '<em><b>Start</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Start</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Start</em>' reference.
-	 * @see #setStart(NetworkInterface)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getFlowRoute_Start()
-	 * @model required="true"
-	 * @generated
-	 */
-	NetworkInterface getStart();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.FlowRoute#getStart <em>Start</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Start</em>' reference.
-	 * @see #getStart()
-	 * @generated
-	 */
-	void setStart(NetworkInterface value);
-
-	/**
-	 * Returns the value of the '<em><b>End</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>End</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>End</em>' reference.
-	 * @see #setEnd(NetworkInterface)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getFlowRoute_End()
-	 * @model required="true"
-	 * @generated
-	 */
-	NetworkInterface getEnd();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.FlowRoute#getEnd <em>End</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>End</em>' reference.
-	 * @see #getEnd()
-	 * @generated
-	 */
-	void setEnd(NetworkInterface value);
-
-	/**
-	 * Returns the value of the '<em><b>Probability</b></em>' attribute.
-	 * The default value is <code>"1.0"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Probability</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Probability</em>' attribute.
-	 * @see #setProbability(float)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getFlowRoute_Probability()
-	 * @model default="1.0" unique="false" required="true"
-	 * @generated
-	 */
-	float getProbability();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.FlowRoute#getProbability <em>Probability</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Probability</em>' attribute.
-	 * @see #getProbability()
-	 * @generated
-	 */
-	void setProbability(float value);
-
-} // FlowRoute
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/FlowTraffic.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/FlowTraffic.java
deleted file mode 100644
index 425e27bf..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/FlowTraffic.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Flow Traffic</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.FlowTraffic#getFlow <em>Flow</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.FlowTraffic#getName <em>Name</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getFlowTraffic()
- * @model abstract="true"
- * @generated
- */
-public interface FlowTraffic extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Flow</b></em>' container reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.Flow#getGeneratedTraffic <em>Generated Traffic</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Flow</em>' container reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Flow</em>' container reference.
-	 * @see #setFlow(Flow)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getFlowTraffic_Flow()
-	 * @see tools.descartes.dni.dnimm3.Flow#getGeneratedTraffic
-	 * @model opposite="generatedTraffic" transient="false"
-	 * @generated
-	 */
-	Flow getFlow();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.FlowTraffic#getFlow <em>Flow</em>}' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Flow</em>' container reference.
-	 * @see #getFlow()
-	 * @generated
-	 */
-	void setFlow(Flow value);
-
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getFlowTraffic_Name()
-	 * @model unique="false" transient="true" changeable="false" volatile="true" derived="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='&lt;%java.lang.String%&gt; _name = this.getFlow().getName();\n&lt;%java.lang.String%&gt; _plus = ((\"FlowTraffic\" + \"[\") + _name);\nreturn (_plus + \"]\");'"
-	 * @generated
-	 */
-	String getName();
-
-} // FlowTraffic
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Function.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Function.java
deleted file mode 100644
index 4f705a57..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Function.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Function</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getFunction()
- * @model interface="true" abstract="true"
- * @generated
- */
-public interface Function extends Dependency {
-} // Function
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/GenericFlowTraffic.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/GenericFlowTraffic.java
deleted file mode 100644
index 1b857400..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/GenericFlowTraffic.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Generic Flow Traffic</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.GenericFlowTraffic#getDataSize <em>Data Size</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getGenericFlowTraffic()
- * @model
- * @generated
- */
-public interface GenericFlowTraffic extends FlowTraffic {
-	/**
-	 * Returns the value of the '<em><b>Data Size</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Data Size</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Data Size</em>' containment reference.
-	 * @see #setDataSize(Dependency)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getGenericFlowTraffic_DataSize()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	Dependency getDataSize();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.GenericFlowTraffic#getDataSize <em>Data Size</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Data Size</em>' containment reference.
-	 * @see #getDataSize()
-	 * @generated
-	 */
-	void setDataSize(Dependency value);
-
-} // GenericFlowTraffic
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/GenericWorkload.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/GenericWorkload.java
deleted file mode 100644
index aaaec61a..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/GenericWorkload.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Generic Workload</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.GenericWorkload#getActions <em>Actions</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getGenericWorkload()
- * @model
- * @generated
- */
-public interface GenericWorkload extends Workload {
-	/**
-	 * Returns the value of the '<em><b>Actions</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.AbstractAction}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Actions</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>Actions</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getGenericWorkload_Actions()
-	 * @model containment="true" ordered="false"
-	 * @generated
-	 */
-	List<AbstractAction> getActions();
-
-} // GenericWorkload
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Hop.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Hop.java
deleted file mode 100644
index ccaa04f5..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Hop.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Hop</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.Hop#getNextHop <em>Next Hop</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Hop#getInterfaceref <em>Interfaceref</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getHop()
- * @model
- * @generated
- */
-public interface Hop extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Next Hop</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Next Hop</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Next Hop</em>' containment reference.
-	 * @see #setNextHop(Hop)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getHop_NextHop()
-	 * @model containment="true"
-	 * @generated
-	 */
-	Hop getNextHop();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Hop#getNextHop <em>Next Hop</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Next Hop</em>' containment reference.
-	 * @see #getNextHop()
-	 * @generated
-	 */
-	void setNextHop(Hop value);
-
-	/**
-	 * Returns the value of the '<em><b>Interfaceref</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Interfaceref</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Interfaceref</em>' reference.
-	 * @see #setInterfaceref(NetworkInterface)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getHop_Interfaceref()
-	 * @model required="true"
-	 * @generated
-	 */
-	NetworkInterface getInterfaceref();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Hop#getInterfaceref <em>Interfaceref</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Interfaceref</em>' reference.
-	 * @see #getInterfaceref()
-	 * @generated
-	 */
-	void setInterfaceref(NetworkInterface value);
-
-} // Hop
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/IType.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/IType.java
deleted file mode 100644
index f4ef68f2..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/IType.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>IType</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getIType()
- * @model interface="true" abstract="true"
- * @generated
- */
-public interface IType extends EObject {
-} // IType
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ITypedEntity.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ITypedEntity.java
deleted file mode 100644
index 4e943ff4..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ITypedEntity.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>ITyped Entity</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getITypedEntity()
- * @model interface="true" abstract="true"
- * @generated
- */
-public interface ITypedEntity extends NamedElement, Identifier {
-} // ITypedEntity
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Identifier.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Identifier.java
deleted file mode 100644
index d3e2112a..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Identifier.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Identifier</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.Identifier#getUid <em>Uid</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Identifier#getUid_generated <em>Uid generated</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getIdentifier()
- * @model abstract="true"
- * @generated
- */
-public interface Identifier extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Uid</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Uid</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Uid</em>' attribute.
-	 * @see #isSetUid()
-	 * @see #unsetUid()
-	 * @see #setUid(String)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getIdentifier_Uid()
-	 * @model unsettable="true" id="true"
-	 * @generated
-	 */
-	String getUid();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Identifier#getUid <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Uid</em>' attribute.
-	 * @see #isSetUid()
-	 * @see #unsetUid()
-	 * @see #getUid()
-	 * @generated
-	 */
-	void setUid(String value);
-
-	/**
-	 * Unsets the value of the '{@link tools.descartes.dni.dnimm3.Identifier#getUid <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isSetUid()
-	 * @see #getUid()
-	 * @see #setUid(String)
-	 * @generated
-	 */
-	void unsetUid();
-
-	/**
-	 * Returns whether the value of the '{@link tools.descartes.dni.dnimm3.Identifier#getUid <em>Uid</em>}' attribute is set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return whether the value of the '<em>Uid</em>' attribute is set.
-	 * @see #unsetUid()
-	 * @see #getUid()
-	 * @see #setUid(String)
-	 * @generated
-	 */
-	boolean isSetUid();
-
-	/**
-	 * Returns the value of the '<em><b>Uid generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Uid generated</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Uid generated</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getIdentifier_Uid_generated()
-	 * @model unique="false" transient="true" changeable="false" volatile="true" derived="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='if (((this.getUid() == null) || this.getUid().isEmpty()))\n{\n\tthis.setUid(&lt;%org.eclipse.emf.ecore.util.EcoreUtil%&gt;.generateUUID().toString());\n}\nreturn this.getUid();'"
-	 * @generated
-	 */
-	String getUid_generated();
-
-} // Identifier
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Intermediate.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Intermediate.java
deleted file mode 100644
index cf3a561d..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Intermediate.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Intermediate</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.Intermediate#getPerformance <em>Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Intermediate#getNode <em>Node</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Intermediate#getName <em>Name</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getIntermediate()
- * @model
- * @generated
- */
-public interface Intermediate extends Identifier {
-	/**
-	 * Returns the value of the '<em><b>Performance</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Performance</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Performance</em>' containment reference.
-	 * @see #setPerformance(IntermediatePerformance)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getIntermediate_Performance()
-	 * @model containment="true"
-	 * @generated
-	 */
-	IntermediatePerformance getPerformance();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Intermediate#getPerformance <em>Performance</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Performance</em>' containment reference.
-	 * @see #getPerformance()
-	 * @generated
-	 */
-	void setPerformance(IntermediatePerformance value);
-
-	/**
-	 * Returns the value of the '<em><b>Node</b></em>' container reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.Node#getIntermediate <em>Intermediate</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Node</em>' container reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Node</em>' container reference.
-	 * @see #setNode(Node)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getIntermediate_Node()
-	 * @see tools.descartes.dni.dnimm3.Node#getIntermediate
-	 * @model opposite="intermediate" transient="false"
-	 * @generated
-	 */
-	Node getNode();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Intermediate#getNode <em>Node</em>}' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Node</em>' container reference.
-	 * @see #getNode()
-	 * @generated
-	 */
-	void setNode(Node value);
-
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getIntermediate_Name()
-	 * @model unique="false" transient="true" changeable="false" volatile="true" derived="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='&lt;%java.lang.String%&gt; _name = this.getNode().getName();\n&lt;%java.lang.String%&gt; _plus = ((\"Intermediate\" + \"[\") + _name);\nreturn (_plus + \"]\");'"
-	 * @generated
-	 */
-	String getName();
-
-} // Intermediate
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/IntermediatePerformance.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/IntermediatePerformance.java
deleted file mode 100644
index d5bddb89..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/IntermediatePerformance.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Intermediate Performance</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.IntermediatePerformance#getForwardingLatency <em>Forwarding Latency</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.IntermediatePerformance#getForwardingBandwidthBPS <em>Forwarding Bandwidth BPS</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.IntermediatePerformance#getSwitchingCapacityPPS <em>Switching Capacity PPS</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.IntermediatePerformance#getEntityType <em>Entity Type</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getIntermediatePerformance()
- * @model
- * @generated
- */
-public interface IntermediatePerformance extends PerformanceSpecification {
-	/**
-	 * Returns the value of the '<em><b>Forwarding Latency</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Forwarding Latency</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Forwarding Latency</em>' containment reference.
-	 * @see #setForwardingLatency(Dependency)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getIntermediatePerformance_ForwardingLatency()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	Dependency getForwardingLatency();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.IntermediatePerformance#getForwardingLatency <em>Forwarding Latency</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Forwarding Latency</em>' containment reference.
-	 * @see #getForwardingLatency()
-	 * @generated
-	 */
-	void setForwardingLatency(Dependency value);
-
-	/**
-	 * Returns the value of the '<em><b>Forwarding Bandwidth BPS</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Forwarding Bandwidth BPS</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Forwarding Bandwidth BPS</em>' containment reference.
-	 * @see #setForwardingBandwidthBPS(Dependency)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getIntermediatePerformance_ForwardingBandwidthBPS()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	Dependency getForwardingBandwidthBPS();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.IntermediatePerformance#getForwardingBandwidthBPS <em>Forwarding Bandwidth BPS</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Forwarding Bandwidth BPS</em>' containment reference.
-	 * @see #getForwardingBandwidthBPS()
-	 * @generated
-	 */
-	void setForwardingBandwidthBPS(Dependency value);
-
-	/**
-	 * Returns the value of the '<em><b>Switching Capacity PPS</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Switching Capacity PPS</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Switching Capacity PPS</em>' containment reference.
-	 * @see #setSwitchingCapacityPPS(Dependency)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getIntermediatePerformance_SwitchingCapacityPPS()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	Dependency getSwitchingCapacityPPS();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.IntermediatePerformance#getSwitchingCapacityPPS <em>Switching Capacity PPS</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Switching Capacity PPS</em>' containment reference.
-	 * @see #getSwitchingCapacityPPS()
-	 * @generated
-	 */
-	void setSwitchingCapacityPPS(Dependency value);
-
-	/**
-	 * Returns the value of the '<em><b>Entity Type</b></em>' reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.IntermediatePerformanceType#getEntities <em>Entities</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Entity 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>Entity Type</em>' reference.
-	 * @see #setEntityType(IntermediatePerformanceType)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getIntermediatePerformance_EntityType()
-	 * @see tools.descartes.dni.dnimm3.IntermediatePerformanceType#getEntities
-	 * @model opposite="entities"
-	 * @generated
-	 */
-	IntermediatePerformanceType getEntityType();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.IntermediatePerformance#getEntityType <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Entity Type</em>' reference.
-	 * @see #getEntityType()
-	 * @generated
-	 */
-	void setEntityType(IntermediatePerformanceType value);
-
-} // IntermediatePerformance
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/IntermediatePerformanceType.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/IntermediatePerformanceType.java
deleted file mode 100644
index 2ef11d90..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/IntermediatePerformanceType.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Intermediate Performance Type</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.IntermediatePerformanceType#getEntities <em>Entities</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getIntermediatePerformanceType()
- * @model
- * @generated
- */
-public interface IntermediatePerformanceType extends ITypedEntity {
-	/**
-	 * Returns the value of the '<em><b>Entities</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.IntermediatePerformance}.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.IntermediatePerformance#getEntityType <em>Entity Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Entities</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>Entities</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getIntermediatePerformanceType_Entities()
-	 * @see tools.descartes.dni.dnimm3.IntermediatePerformance#getEntityType
-	 * @model opposite="entityType"
-	 * @generated
-	 */
-	List<IntermediatePerformance> getEntities();
-
-} // IntermediatePerformanceType
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Link.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Link.java
deleted file mode 100644
index 2b90c05b..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Link.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Link</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.Link#getConnects <em>Connects</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Link#getPerformance <em>Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Link#getName_generated <em>Name generated</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Link#getEntityType <em>Entity Type</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getLink()
- * @model
- * @generated
- */
-public interface Link extends Entity {
-	/**
-	 * Returns the value of the '<em><b>Connects</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.NetworkInterface}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Connects</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>Connects</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getLink_Connects()
-	 * @model lower="2" upper="2"
-	 * @generated
-	 */
-	List<NetworkInterface> getConnects();
-
-	/**
-	 * Returns the value of the '<em><b>Performance</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Performance</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Performance</em>' containment reference.
-	 * @see #setPerformance(PerformanceLink)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getLink_Performance()
-	 * @model containment="true"
-	 * @generated
-	 */
-	PerformanceLink getPerformance();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Link#getPerformance <em>Performance</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Performance</em>' containment reference.
-	 * @see #getPerformance()
-	 * @generated
-	 */
-	void setPerformance(PerformanceLink value);
-
-	/**
-	 * Returns the value of the '<em><b>Name generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name generated</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name generated</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getLink_Name_generated()
-	 * @model unique="false" transient="true" changeable="false" volatile="true" derived="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='int _size = this.getConnects().size();\nboolean _equals = (_size == 0);\nif (_equals)\n{\n\t&lt;%java.lang.String%&gt; _uid = this.getUid();\n\t&lt;%java.lang.String%&gt; _plus = (\"Unconnected_\" + _uid);\n\tthis.setName(_plus);\n}\nint _size_1 = this.getConnects().size();\nboolean _equals_1 = (_size_1 == 1);\nif (_equals_1)\n{\n\t&lt;%java.lang.String%&gt; _uid_1 = this.getUid();\n\t&lt;%java.lang.String%&gt; _plus_1 = (\"Partially_connected_\" + _uid_1);\n\tthis.setName(_plus_1);\n}\nelse\n{\n\tif (((((this.getConnects().get(0) == null) || (this.getConnects().get(0).getName() == null)) || (this.getConnects().get(1) == null)) || \n\t\t(this.getConnects().get(1).getName() == null)))\n\t{\n\t\t&lt;%java.lang.String%&gt; _uid_2 = this.getUid();\n\t\t&lt;%java.lang.String%&gt; _plus_2 = (\"Partially_connected_\" + _uid_2);\n\t\tthis.setName(_plus_2);\n\t}\n\telse\n\t{\n\t\t&lt;%java.lang.String%&gt; _name = this.getConnects().get(0).getName();\n\t\t&lt;%java.lang.String%&gt; _plus_3 = (\"Link between \" + _name);\n\t\t&lt;%java.lang.String%&gt; _plus_4 = (_plus_3 + \" and \");\n\t\t&lt;%java.lang.String%&gt; _name_1 = this.getConnects().get(1).getName();\n\t\t&lt;%java.lang.String%&gt; _plus_5 = (_plus_4 + _name_1);\n\t\tthis.setName(_plus_5);\n\t}\n}\nreturn this.getName();'"
-	 * @generated
-	 */
-	String getName_generated();
-
-	/**
-	 * Returns the value of the '<em><b>Entity Type</b></em>' reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.LinkType#getEntities <em>Entities</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Entity 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>Entity Type</em>' reference.
-	 * @see #setEntityType(LinkType)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getLink_EntityType()
-	 * @see tools.descartes.dni.dnimm3.LinkType#getEntities
-	 * @model opposite="entities"
-	 * @generated
-	 */
-	LinkType getEntityType();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Link#getEntityType <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Entity Type</em>' reference.
-	 * @see #getEntityType()
-	 * @generated
-	 */
-	void setEntityType(LinkType value);
-
-} // Link
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/LinkPerformanceType.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/LinkPerformanceType.java
deleted file mode 100644
index fe4c5ce6..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/LinkPerformanceType.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Link Performance Type</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.LinkPerformanceType#getEntities <em>Entities</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getLinkPerformanceType()
- * @model
- * @generated
- */
-public interface LinkPerformanceType extends ITypedEntity {
-	/**
-	 * Returns the value of the '<em><b>Entities</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.PerformanceLink}.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.PerformanceLink#getEntityType <em>Entity Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Entities</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>Entities</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getLinkPerformanceType_Entities()
-	 * @see tools.descartes.dni.dnimm3.PerformanceLink#getEntityType
-	 * @model opposite="entityType"
-	 * @generated
-	 */
-	List<PerformanceLink> getEntities();
-
-} // LinkPerformanceType
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/LinkType.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/LinkType.java
deleted file mode 100644
index 3f6339a8..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/LinkType.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Link Type</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.LinkType#getEntities <em>Entities</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getLinkType()
- * @model
- * @generated
- */
-public interface LinkType extends ITypedEntity {
-	/**
-	 * Returns the value of the '<em><b>Entities</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.Link}.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.Link#getEntityType <em>Entity Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Entities</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>Entities</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getLinkType_Entities()
-	 * @see tools.descartes.dni.dnimm3.Link#getEntityType
-	 * @model opposite="entityType"
-	 * @generated
-	 */
-	List<Link> getEntities();
-
-} // LinkType
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/LoopAction.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/LoopAction.java
deleted file mode 100644
index 45644923..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/LoopAction.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Loop Action</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.LoopAction#getIntern <em>Intern</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.LoopAction#getNumIterations <em>Num Iterations</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getLoopAction()
- * @model
- * @generated
- */
-public interface LoopAction extends AbstractAction {
-	/**
-	 * Returns the value of the '<em><b>Intern</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Intern</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Intern</em>' containment reference.
-	 * @see #setIntern(AbstractAction)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getLoopAction_Intern()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	AbstractAction getIntern();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.LoopAction#getIntern <em>Intern</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Intern</em>' containment reference.
-	 * @see #getIntern()
-	 * @generated
-	 */
-	void setIntern(AbstractAction value);
-
-	/**
-	 * Returns the value of the '<em><b>Num Iterations</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Num Iterations</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Num Iterations</em>' containment reference.
-	 * @see #setNumIterations(Dependency)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getLoopAction_NumIterations()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	Dependency getNumIterations();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.LoopAction#getNumIterations <em>Num Iterations</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Num Iterations</em>' containment reference.
-	 * @see #getNumIterations()
-	 * @generated
-	 */
-	void setNumIterations(Dependency value);
-
-} // LoopAction
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NamedElement.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NamedElement.java
deleted file mode 100644
index 0129ab0c..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NamedElement.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Named Element</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.NamedElement#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.NamedElement#getDescription <em>Description</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getNamedElement()
- * @model interface="true" abstract="true"
- * @generated
- */
-public interface NamedElement extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see #setName(String)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNamedElement_Name()
-	 * @model unique="false" required="true"
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.NamedElement#getName <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Name</em>' attribute.
-	 * @see #getName()
-	 * @generated
-	 */
-	void setName(String 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 tools.descartes.dni.dnimm3.DNIPackage#getNamedElement_Description()
-	 * @model unique="false"
-	 * @generated
-	 */
-	String getDescription();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.NamedElement#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);
-
-} // NamedElement
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkConfiguration.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkConfiguration.java
deleted file mode 100644
index ead65870..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkConfiguration.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Network Configuration</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkConfiguration#getProtocolsAndStacks <em>Protocols And Stacks</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkConfiguration#getRoutes <em>Routes</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkConfiguration#getRules <em>Rules</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkConfiguration()
- * @model
- * @generated
- */
-public interface NetworkConfiguration extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Protocols And Stacks</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Protocols And Stacks</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Protocols And Stacks</em>' containment reference.
-	 * @see #setProtocolsAndStacks(ProtocolsRepository)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkConfiguration_ProtocolsAndStacks()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	ProtocolsRepository getProtocolsAndStacks();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.NetworkConfiguration#getProtocolsAndStacks <em>Protocols And Stacks</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Protocols And Stacks</em>' containment reference.
-	 * @see #getProtocolsAndStacks()
-	 * @generated
-	 */
-	void setProtocolsAndStacks(ProtocolsRepository value);
-
-	/**
-	 * Returns the value of the '<em><b>Routes</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Routes</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Routes</em>' containment reference.
-	 * @see #setRoutes(RoutesRepository)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkConfiguration_Routes()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	RoutesRepository getRoutes();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.NetworkConfiguration#getRoutes <em>Routes</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Routes</em>' containment reference.
-	 * @see #getRoutes()
-	 * @generated
-	 */
-	void setRoutes(RoutesRepository value);
-
-	/**
-	 * Returns the value of the '<em><b>Rules</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.SdnFlowRule}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Rules</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>Rules</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkConfiguration_Rules()
-	 * @model containment="true"
-	 * @generated
-	 */
-	List<SdnFlowRule> getRules();
-
-} // NetworkConfiguration
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkInfrastructure.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkInfrastructure.java
deleted file mode 100644
index ce79486b..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkInfrastructure.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Network Infrastructure</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkInfrastructure#getTraffic <em>Traffic</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkInfrastructure#getStructure <em>Structure</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkInfrastructure#getConfiguration <em>Configuration</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkInfrastructure#getEntityTypes <em>Entity Types</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkInfrastructure#getDataCenterName <em>Data Center Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkInfrastructure#getMetaModelVersion <em>Meta Model Version</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkInfrastructure()
- * @model
- * @generated
- */
-public interface NetworkInfrastructure extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Traffic</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Traffic</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Traffic</em>' containment reference.
-	 * @see #setTraffic(NetworkTraffic)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkInfrastructure_Traffic()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	NetworkTraffic getTraffic();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.NetworkInfrastructure#getTraffic <em>Traffic</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Traffic</em>' containment reference.
-	 * @see #getTraffic()
-	 * @generated
-	 */
-	void setTraffic(NetworkTraffic value);
-
-	/**
-	 * Returns the value of the '<em><b>Structure</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Structure</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Structure</em>' containment reference.
-	 * @see #setStructure(NetworkStructure)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkInfrastructure_Structure()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	NetworkStructure getStructure();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.NetworkInfrastructure#getStructure <em>Structure</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Structure</em>' containment reference.
-	 * @see #getStructure()
-	 * @generated
-	 */
-	void setStructure(NetworkStructure value);
-
-	/**
-	 * Returns the value of the '<em><b>Configuration</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Configuration</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Configuration</em>' containment reference.
-	 * @see #setConfiguration(NetworkConfiguration)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkInfrastructure_Configuration()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	NetworkConfiguration getConfiguration();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.NetworkInfrastructure#getConfiguration <em>Configuration</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Configuration</em>' containment reference.
-	 * @see #getConfiguration()
-	 * @generated
-	 */
-	void setConfiguration(NetworkConfiguration value);
-
-	/**
-	 * Returns the value of the '<em><b>Entity Types</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Entity Types</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Entity Types</em>' containment reference.
-	 * @see #setEntityTypes(EntityTypes)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkInfrastructure_EntityTypes()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	EntityTypes getEntityTypes();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.NetworkInfrastructure#getEntityTypes <em>Entity Types</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Entity Types</em>' containment reference.
-	 * @see #getEntityTypes()
-	 * @generated
-	 */
-	void setEntityTypes(EntityTypes value);
-
-	/**
-	 * Returns the value of the '<em><b>Data Center Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Data Center Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Data Center Name</em>' attribute.
-	 * @see #setDataCenterName(String)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkInfrastructure_DataCenterName()
-	 * @model unique="false"
-	 * @generated
-	 */
-	String getDataCenterName();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.NetworkInfrastructure#getDataCenterName <em>Data Center Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Data Center Name</em>' attribute.
-	 * @see #getDataCenterName()
-	 * @generated
-	 */
-	void setDataCenterName(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Meta Model Version</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Meta Model Version</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Meta Model Version</em>' attribute.
-	 * @see #setMetaModelVersion(String)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkInfrastructure_MetaModelVersion()
-	 * @model unique="false"
-	 * @generated
-	 */
-	String getMetaModelVersion();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.NetworkInfrastructure#getMetaModelVersion <em>Meta Model Version</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Meta Model Version</em>' attribute.
-	 * @see #getMetaModelVersion()
-	 * @generated
-	 */
-	void setMetaModelVersion(String value);
-
-} // NetworkInfrastructure
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkInterface.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkInterface.java
deleted file mode 100644
index 4b05a03b..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkInterface.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Network Interface</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkInterface#getUsedProtocolStack <em>Used Protocol Stack</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkInterface#getPerformance <em>Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkInterface#getNode <em>Node</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkInterface#getName_generated <em>Name generated</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkInterface#getEntityType <em>Entity Type</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkInterface()
- * @model
- * @generated
- */
-public interface NetworkInterface extends AddressableEntity, NamedElement, Entity {
-	/**
-	 * Returns the value of the '<em><b>Used Protocol Stack</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Used Protocol Stack</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Used Protocol Stack</em>' reference.
-	 * @see #setUsedProtocolStack(ProtocolStack)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkInterface_UsedProtocolStack()
-	 * @model required="true"
-	 * @generated
-	 */
-	ProtocolStack getUsedProtocolStack();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.NetworkInterface#getUsedProtocolStack <em>Used Protocol Stack</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Used Protocol Stack</em>' reference.
-	 * @see #getUsedProtocolStack()
-	 * @generated
-	 */
-	void setUsedProtocolStack(ProtocolStack value);
-
-	/**
-	 * Returns the value of the '<em><b>Performance</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Performance</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Performance</em>' containment reference.
-	 * @see #setPerformance(PerformanceNetworkInterface)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkInterface_Performance()
-	 * @model containment="true"
-	 * @generated
-	 */
-	PerformanceNetworkInterface getPerformance();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.NetworkInterface#getPerformance <em>Performance</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Performance</em>' containment reference.
-	 * @see #getPerformance()
-	 * @generated
-	 */
-	void setPerformance(PerformanceNetworkInterface value);
-
-	/**
-	 * Returns the value of the '<em><b>Node</b></em>' container reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.Node#getInterfaces <em>Interfaces</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Node</em>' container reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Node</em>' container reference.
-	 * @see #setNode(Node)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkInterface_Node()
-	 * @see tools.descartes.dni.dnimm3.Node#getInterfaces
-	 * @model opposite="interfaces" transient="false"
-	 * @generated
-	 */
-	Node getNode();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.NetworkInterface#getNode <em>Node</em>}' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Node</em>' container reference.
-	 * @see #getNode()
-	 * @generated
-	 */
-	void setNode(Node value);
-
-	/**
-	 * Returns the value of the '<em><b>Name generated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name generated</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name generated</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkInterface_Name_generated()
-	 * @model unique="false" transient="true" changeable="false" volatile="true" derived="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='if (((this.getDescription() == null) || this.getDescription().isEmpty()))\n{\n\t&lt;%java.lang.String%&gt; _name = this.getNode().getName();\n\t&lt;%java.lang.String%&gt; _plus = ((\"Unnamed_iface_\" + \"[\") + _name);\n\t&lt;%java.lang.String%&gt; _plus_1 = (_plus + \"]\");\n\tthis.setName(_plus_1);\n}\n&lt;%java.lang.String%&gt; _description = this.getDescription();\n&lt;%java.lang.String%&gt; _plus_2 = (_description + \"[\");\n&lt;%java.lang.String%&gt; _name_1 = this.getNode().getName();\n&lt;%java.lang.String%&gt; _plus_3 = (_plus_2 + _name_1);\n&lt;%java.lang.String%&gt; _plus_4 = (_plus_3 + \"]\");\nthis.setName(_plus_4);\nreturn this.getName();'"
-	 * @generated
-	 */
-	String getName_generated();
-
-	/**
-	 * Returns the value of the '<em><b>Entity Type</b></em>' reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.NetworkInterfaceType#getEntities <em>Entities</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Entity 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>Entity Type</em>' reference.
-	 * @see #setEntityType(NetworkInterfaceType)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkInterface_EntityType()
-	 * @see tools.descartes.dni.dnimm3.NetworkInterfaceType#getEntities
-	 * @model opposite="entities"
-	 * @generated
-	 */
-	NetworkInterfaceType getEntityType();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.NetworkInterface#getEntityType <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Entity Type</em>' reference.
-	 * @see #getEntityType()
-	 * @generated
-	 */
-	void setEntityType(NetworkInterfaceType value);
-
-} // NetworkInterface
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkInterfacePerformanceType.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkInterfacePerformanceType.java
deleted file mode 100644
index cdde37d0..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkInterfacePerformanceType.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Network Interface Performance Type</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkInterfacePerformanceType#getEntities <em>Entities</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkInterfacePerformanceType()
- * @model
- * @generated
- */
-public interface NetworkInterfacePerformanceType extends ITypedEntity {
-	/**
-	 * Returns the value of the '<em><b>Entities</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface}.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface#getEntityType <em>Entity Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Entities</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>Entities</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkInterfacePerformanceType_Entities()
-	 * @see tools.descartes.dni.dnimm3.PerformanceNetworkInterface#getEntityType
-	 * @model opposite="entityType"
-	 * @generated
-	 */
-	List<PerformanceNetworkInterface> getEntities();
-
-} // NetworkInterfacePerformanceType
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkInterfaceType.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkInterfaceType.java
deleted file mode 100644
index 6e55ae2d..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkInterfaceType.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Network Interface Type</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkInterfaceType#getEntities <em>Entities</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkInterfaceType()
- * @model
- * @generated
- */
-public interface NetworkInterfaceType extends ITypedEntity {
-	/**
-	 * Returns the value of the '<em><b>Entities</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.NetworkInterface}.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.NetworkInterface#getEntityType <em>Entity Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Entities</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>Entities</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkInterfaceType_Entities()
-	 * @see tools.descartes.dni.dnimm3.NetworkInterface#getEntityType
-	 * @model opposite="entityType"
-	 * @generated
-	 */
-	List<NetworkInterface> getEntities();
-
-} // NetworkInterfaceType
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkProtocol.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkProtocol.java
deleted file mode 100644
index 7a4ac76d..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkProtocol.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Network Protocol</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkProtocol#getMtu <em>Mtu</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkProtocol#getHeadersLength <em>Headers Length</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkProtocol()
- * @model
- * @generated
- */
-public interface NetworkProtocol extends Entity {
-	/**
-	 * Returns the value of the '<em><b>Mtu</b></em>' attribute.
-	 * The default value is <code>"1500"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Mtu</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Mtu</em>' attribute.
-	 * @see #setMtu(int)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkProtocol_Mtu()
-	 * @model default="1500" unique="false" required="true"
-	 * @generated
-	 */
-	int getMtu();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.NetworkProtocol#getMtu <em>Mtu</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Mtu</em>' attribute.
-	 * @see #getMtu()
-	 * @generated
-	 */
-	void setMtu(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Headers Length</b></em>' attribute.
-	 * The default value is <code>"40"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Headers Length</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Headers Length</em>' attribute.
-	 * @see #setHeadersLength(int)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkProtocol_HeadersLength()
-	 * @model default="40" unique="false" required="true"
-	 * @generated
-	 */
-	int getHeadersLength();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.NetworkProtocol#getHeadersLength <em>Headers Length</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Headers Length</em>' attribute.
-	 * @see #getHeadersLength()
-	 * @generated
-	 */
-	void setHeadersLength(int value);
-
-} // NetworkProtocol
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkStructure.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkStructure.java
deleted file mode 100644
index 05bf582d..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkStructure.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Network Structure</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkStructure#getNodes <em>Nodes</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkStructure#getLinks <em>Links</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkStructure()
- * @model
- * @generated
- */
-public interface NetworkStructure extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Nodes</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.Node}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Nodes</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>Nodes</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkStructure_Nodes()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	List<Node> getNodes();
-
-	/**
-	 * Returns the value of the '<em><b>Links</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.Link}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Links</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>Links</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkStructure_Links()
-	 * @model containment="true"
-	 * @generated
-	 */
-	List<Link> getLinks();
-
-} // NetworkStructure
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkTraffic.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkTraffic.java
deleted file mode 100644
index 45479b6a..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NetworkTraffic.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Network Traffic</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkTraffic#getFlows <em>Flows</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.NetworkTraffic#getSoftware <em>Software</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkTraffic()
- * @model
- * @generated
- */
-public interface NetworkTraffic extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Flows</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.Flow}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Flows</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>Flows</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkTraffic_Flows()
-	 * @model containment="true"
-	 * @generated
-	 */
-	List<Flow> getFlows();
-
-	/**
-	 * Returns the value of the '<em><b>Software</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.CommunicatingApplication}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Software</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>Software</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNetworkTraffic_Software()
-	 * @model containment="true"
-	 * @generated
-	 */
-	List<CommunicatingApplication> getSoftware();
-
-} // NetworkTraffic
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Node.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Node.java
deleted file mode 100644
index b64939af..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Node.java
+++ /dev/null
@@ -1,276 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Node</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.Node#getInterfaces <em>Interfaces</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Node#getSdntype <em>Sdntype</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Node#isIsPhysical <em>Is Physical</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Node#isIsPhysical_derived <em>Is Physical derived</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Node#getHosts <em>Hosts</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Node#getIsHostedOn <em>Is Hosted On</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Node#getEnd <em>End</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Node#getIntermediate <em>Intermediate</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Node#getEntityType <em>Entity Type</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getNode()
- * @model
- * @generated
- */
-public interface Node extends Entity {
-	/**
-	 * Returns the value of the '<em><b>Interfaces</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.NetworkInterface}.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.NetworkInterface#getNode <em>Node</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Interfaces</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>Interfaces</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNode_Interfaces()
-	 * @see tools.descartes.dni.dnimm3.NetworkInterface#getNode
-	 * @model opposite="node" containment="true"
-	 * @generated
-	 */
-	List<NetworkInterface> getInterfaces();
-
-	/**
-	 * Returns the value of the '<em><b>Sdntype</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Sdntype</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Sdntype</em>' containment reference.
-	 * @see #setSdntype(IType)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNode_Sdntype()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	IType getSdntype();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Node#getSdntype <em>Sdntype</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Sdntype</em>' containment reference.
-	 * @see #getSdntype()
-	 * @generated
-	 */
-	void setSdntype(IType value);
-
-	/**
-	 * Returns the value of the '<em><b>Is Physical</b></em>' attribute.
-	 * The default value is <code>"true"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Is Physical</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 Physical</em>' attribute.
-	 * @see #isSetIsPhysical()
-	 * @see #unsetIsPhysical()
-	 * @see #setIsPhysical(boolean)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNode_IsPhysical()
-	 * @model default="true" unique="false" unsettable="true"
-	 * @generated
-	 */
-	boolean isIsPhysical();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Node#isIsPhysical <em>Is Physical</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Is Physical</em>' attribute.
-	 * @see #isSetIsPhysical()
-	 * @see #unsetIsPhysical()
-	 * @see #isIsPhysical()
-	 * @generated
-	 */
-	void setIsPhysical(boolean value);
-
-	/**
-	 * Unsets the value of the '{@link tools.descartes.dni.dnimm3.Node#isIsPhysical <em>Is Physical</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isSetIsPhysical()
-	 * @see #isIsPhysical()
-	 * @see #setIsPhysical(boolean)
-	 * @generated
-	 */
-	void unsetIsPhysical();
-
-	/**
-	 * Returns whether the value of the '{@link tools.descartes.dni.dnimm3.Node#isIsPhysical <em>Is Physical</em>}' attribute is set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return whether the value of the '<em>Is Physical</em>' attribute is set.
-	 * @see #unsetIsPhysical()
-	 * @see #isIsPhysical()
-	 * @see #setIsPhysical(boolean)
-	 * @generated
-	 */
-	boolean isSetIsPhysical();
-
-	/**
-	 * Returns the value of the '<em><b>Is Physical derived</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Is Physical derived</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 Physical derived</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNode_IsPhysical_derived()
-	 * @model unique="false" transient="true" changeable="false" volatile="true" derived="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='&lt;%tools.descartes.dni.dnimm3.Node%&gt; _isHostedOn = this.getIsHostedOn();\nboolean _tripleNotEquals = (_isHostedOn != null);\nif (_tripleNotEquals)\n{\n\tthis.setIsPhysical(false);\n}\n&lt;%tools.descartes.dni.dnimm3.Node%&gt; _isHostedOn_1 = this.getIsHostedOn();\nboolean _tripleEquals = (_isHostedOn_1 == null);\nif (_tripleEquals)\n{\n\tthis.setIsPhysical(true);\n}\nthis.setIsPhysical(true);\nreturn this.isIsPhysical();'"
-	 * @generated
-	 */
-	boolean isIsPhysical_derived();
-
-	/**
-	 * Returns the value of the '<em><b>Hosts</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.Node}.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.Node#getIsHostedOn <em>Is Hosted On</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Hosts</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>Hosts</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNode_Hosts()
-	 * @see tools.descartes.dni.dnimm3.Node#getIsHostedOn
-	 * @model opposite="isHostedOn"
-	 * @generated
-	 */
-	List<Node> getHosts();
-
-	/**
-	 * Returns the value of the '<em><b>Is Hosted On</b></em>' reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.Node#getHosts <em>Hosts</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Is Hosted On</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Is Hosted On</em>' reference.
-	 * @see #setIsHostedOn(Node)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNode_IsHostedOn()
-	 * @see tools.descartes.dni.dnimm3.Node#getHosts
-	 * @model opposite="hosts"
-	 * @generated
-	 */
-	Node getIsHostedOn();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Node#getIsHostedOn <em>Is Hosted On</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Is Hosted On</em>' reference.
-	 * @see #getIsHostedOn()
-	 * @generated
-	 */
-	void setIsHostedOn(Node value);
-
-	/**
-	 * Returns the value of the '<em><b>End</b></em>' containment reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.End#getNode <em>Node</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>End</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>End</em>' containment reference.
-	 * @see #setEnd(End)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNode_End()
-	 * @see tools.descartes.dni.dnimm3.End#getNode
-	 * @model opposite="node" containment="true"
-	 * @generated
-	 */
-	End getEnd();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Node#getEnd <em>End</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>End</em>' containment reference.
-	 * @see #getEnd()
-	 * @generated
-	 */
-	void setEnd(End value);
-
-	/**
-	 * Returns the value of the '<em><b>Intermediate</b></em>' containment reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.Intermediate#getNode <em>Node</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Intermediate</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Intermediate</em>' containment reference.
-	 * @see #setIntermediate(Intermediate)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNode_Intermediate()
-	 * @see tools.descartes.dni.dnimm3.Intermediate#getNode
-	 * @model opposite="node" containment="true"
-	 * @generated
-	 */
-	Intermediate getIntermediate();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Node#getIntermediate <em>Intermediate</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Intermediate</em>' containment reference.
-	 * @see #getIntermediate()
-	 * @generated
-	 */
-	void setIntermediate(Intermediate value);
-
-	/**
-	 * Returns the value of the '<em><b>Entity Type</b></em>' reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.NodeType#getEntities <em>Entities</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Entity 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>Entity Type</em>' reference.
-	 * @see #setEntityType(NodeType)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNode_EntityType()
-	 * @see tools.descartes.dni.dnimm3.NodeType#getEntities
-	 * @model opposite="entities"
-	 * @generated
-	 */
-	NodeType getEntityType();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Node#getEntityType <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Entity Type</em>' reference.
-	 * @see #getEntityType()
-	 * @generated
-	 */
-	void setEntityType(NodeType value);
-
-} // Node
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NodeType.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NodeType.java
deleted file mode 100644
index 4f54bd3d..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/NodeType.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Node Type</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.NodeType#getEntities <em>Entities</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getNodeType()
- * @model
- * @generated
- */
-public interface NodeType extends ITypedEntity {
-	/**
-	 * Returns the value of the '<em><b>Entities</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.Node}.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.Node#getEntityType <em>Entity Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Entities</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>Entities</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getNodeType_Entities()
-	 * @see tools.descartes.dni.dnimm3.Node#getEntityType
-	 * @model opposite="entityType"
-	 * @generated
-	 */
-	List<Node> getEntities();
-
-} // NodeType
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/PerformanceLink.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/PerformanceLink.java
deleted file mode 100644
index a834767e..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/PerformanceLink.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Performance Link</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.PerformanceLink#getPropagationDelay <em>Propagation Delay</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.PerformanceLink#getMaxSupportedBandwidth <em>Max Supported Bandwidth</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.PerformanceLink#getEntityType <em>Entity Type</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getPerformanceLink()
- * @model
- * @generated
- */
-public interface PerformanceLink extends PerformanceSpecification {
-	/**
-	 * Returns the value of the '<em><b>Propagation Delay</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Propagation Delay</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Propagation Delay</em>' containment reference.
-	 * @see #setPropagationDelay(Dependency)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getPerformanceLink_PropagationDelay()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	Dependency getPropagationDelay();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.PerformanceLink#getPropagationDelay <em>Propagation Delay</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Propagation Delay</em>' containment reference.
-	 * @see #getPropagationDelay()
-	 * @generated
-	 */
-	void setPropagationDelay(Dependency value);
-
-	/**
-	 * Returns the value of the '<em><b>Max Supported Bandwidth</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Max Supported Bandwidth</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Max Supported Bandwidth</em>' containment reference.
-	 * @see #setMaxSupportedBandwidth(Dependency)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getPerformanceLink_MaxSupportedBandwidth()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	Dependency getMaxSupportedBandwidth();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.PerformanceLink#getMaxSupportedBandwidth <em>Max Supported Bandwidth</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Max Supported Bandwidth</em>' containment reference.
-	 * @see #getMaxSupportedBandwidth()
-	 * @generated
-	 */
-	void setMaxSupportedBandwidth(Dependency value);
-
-	/**
-	 * Returns the value of the '<em><b>Entity Type</b></em>' reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.LinkPerformanceType#getEntities <em>Entities</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Entity 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>Entity Type</em>' reference.
-	 * @see #setEntityType(LinkPerformanceType)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getPerformanceLink_EntityType()
-	 * @see tools.descartes.dni.dnimm3.LinkPerformanceType#getEntities
-	 * @model opposite="entities"
-	 * @generated
-	 */
-	LinkPerformanceType getEntityType();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.PerformanceLink#getEntityType <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Entity Type</em>' reference.
-	 * @see #getEntityType()
-	 * @generated
-	 */
-	void setEntityType(LinkPerformanceType value);
-
-} // PerformanceLink
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/PerformanceNetworkInterface.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/PerformanceNetworkInterface.java
deleted file mode 100644
index 0c7b58d3..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/PerformanceNetworkInterface.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Performance Network Interface</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface#isIsUp <em>Is Up</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface#getMTU <em>MTU</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface#getPacketProcessingTime <em>Packet Processing Time</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface#getInterfaceThroughput <em>Interface Throughput</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface#getEntityType <em>Entity Type</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getPerformanceNetworkInterface()
- * @model
- * @generated
- */
-public interface PerformanceNetworkInterface extends PerformanceSpecification {
-	/**
-	 * Returns the value of the '<em><b>Is Up</b></em>' attribute.
-	 * The default value is <code>"true"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Is Up</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 Up</em>' attribute.
-	 * @see #setIsUp(boolean)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getPerformanceNetworkInterface_IsUp()
-	 * @model default="true" unique="false"
-	 * @generated
-	 */
-	boolean isIsUp();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface#isIsUp <em>Is Up</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Is Up</em>' attribute.
-	 * @see #isIsUp()
-	 * @generated
-	 */
-	void setIsUp(boolean value);
-
-	/**
-	 * Returns the value of the '<em><b>MTU</b></em>' attribute.
-	 * The default value is <code>"1500"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>MTU</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>MTU</em>' attribute.
-	 * @see #setMTU(int)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getPerformanceNetworkInterface_MTU()
-	 * @model default="1500" unique="false" required="true"
-	 * @generated
-	 */
-	int getMTU();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface#getMTU <em>MTU</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>MTU</em>' attribute.
-	 * @see #getMTU()
-	 * @generated
-	 */
-	void setMTU(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Packet Processing Time</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Packet Processing Time</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Packet Processing Time</em>' containment reference.
-	 * @see #setPacketProcessingTime(Dependency)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getPerformanceNetworkInterface_PacketProcessingTime()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	Dependency getPacketProcessingTime();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface#getPacketProcessingTime <em>Packet Processing Time</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Packet Processing Time</em>' containment reference.
-	 * @see #getPacketProcessingTime()
-	 * @generated
-	 */
-	void setPacketProcessingTime(Dependency value);
-
-	/**
-	 * Returns the value of the '<em><b>Interface Throughput</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Interface Throughput</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Interface Throughput</em>' containment reference.
-	 * @see #setInterfaceThroughput(Variable)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getPerformanceNetworkInterface_InterfaceThroughput()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	Variable getInterfaceThroughput();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface#getInterfaceThroughput <em>Interface Throughput</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Interface Throughput</em>' containment reference.
-	 * @see #getInterfaceThroughput()
-	 * @generated
-	 */
-	void setInterfaceThroughput(Variable value);
-
-	/**
-	 * Returns the value of the '<em><b>Entity Type</b></em>' reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.NetworkInterfacePerformanceType#getEntities <em>Entities</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Entity 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>Entity Type</em>' reference.
-	 * @see #setEntityType(NetworkInterfacePerformanceType)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getPerformanceNetworkInterface_EntityType()
-	 * @see tools.descartes.dni.dnimm3.NetworkInterfacePerformanceType#getEntities
-	 * @model opposite="entities"
-	 * @generated
-	 */
-	NetworkInterfacePerformanceType getEntityType();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface#getEntityType <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Entity Type</em>' reference.
-	 * @see #getEntityType()
-	 * @generated
-	 */
-	void setEntityType(NetworkInterfacePerformanceType value);
-
-} // PerformanceNetworkInterface
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/PerformanceSdnNode.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/PerformanceSdnNode.java
deleted file mode 100644
index feaf3235..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/PerformanceSdnNode.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Performance Sdn Node</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.PerformanceSdnNode#getSoftwareSwitchingPerformance <em>Software Switching Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.PerformanceSdnNode#getHardwareSwitchingPerformance <em>Hardware Switching Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.PerformanceSdnNode#getEntityType <em>Entity Type</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getPerformanceSdnNode()
- * @model
- * @generated
- */
-public interface PerformanceSdnNode extends PerformanceSpecification {
-	/**
-	 * Returns the value of the '<em><b>Software Switching Performance</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Software Switching Performance</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Software Switching Performance</em>' containment reference.
-	 * @see #setSoftwareSwitchingPerformance(IntermediatePerformance)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getPerformanceSdnNode_SoftwareSwitchingPerformance()
-	 * @model containment="true"
-	 * @generated
-	 */
-	IntermediatePerformance getSoftwareSwitchingPerformance();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.PerformanceSdnNode#getSoftwareSwitchingPerformance <em>Software Switching Performance</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Software Switching Performance</em>' containment reference.
-	 * @see #getSoftwareSwitchingPerformance()
-	 * @generated
-	 */
-	void setSoftwareSwitchingPerformance(IntermediatePerformance value);
-
-	/**
-	 * Returns the value of the '<em><b>Hardware Switching Performance</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Hardware Switching Performance</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Hardware Switching Performance</em>' containment reference.
-	 * @see #setHardwareSwitchingPerformance(IntermediatePerformance)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getPerformanceSdnNode_HardwareSwitchingPerformance()
-	 * @model containment="true"
-	 * @generated
-	 */
-	IntermediatePerformance getHardwareSwitchingPerformance();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.PerformanceSdnNode#getHardwareSwitchingPerformance <em>Hardware Switching Performance</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Hardware Switching Performance</em>' containment reference.
-	 * @see #getHardwareSwitchingPerformance()
-	 * @generated
-	 */
-	void setHardwareSwitchingPerformance(IntermediatePerformance value);
-
-	/**
-	 * Returns the value of the '<em><b>Entity Type</b></em>' reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.SdnNodePerformanceType#getEntities <em>Entities</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Entity 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>Entity Type</em>' reference.
-	 * @see #setEntityType(SdnNodePerformanceType)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getPerformanceSdnNode_EntityType()
-	 * @see tools.descartes.dni.dnimm3.SdnNodePerformanceType#getEntities
-	 * @model opposite="entities"
-	 * @generated
-	 */
-	SdnNodePerformanceType getEntityType();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.PerformanceSdnNode#getEntityType <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Entity Type</em>' reference.
-	 * @see #getEntityType()
-	 * @generated
-	 */
-	void setEntityType(SdnNodePerformanceType value);
-
-} // PerformanceSdnNode
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/PerformanceSpecification.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/PerformanceSpecification.java
deleted file mode 100644
index 0ef1f178..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/PerformanceSpecification.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Performance Specification</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getPerformanceSpecification()
- * @model interface="true" abstract="true"
- * @generated
- */
-public interface PerformanceSpecification extends EObject {
-} // PerformanceSpecification
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ProtocolLayer.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ProtocolLayer.java
deleted file mode 100644
index 1695039d..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ProtocolLayer.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Protocol Layer</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.ProtocolLayer#getProtocol <em>Protocol</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.ProtocolLayer#getIsCarriedBy <em>Is Carried By</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.ProtocolLayer#getCarries <em>Carries</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getProtocolLayer()
- * @model
- * @generated
- */
-public interface ProtocolLayer extends Entity {
-	/**
-	 * Returns the value of the '<em><b>Protocol</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Protocol</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Protocol</em>' reference.
-	 * @see #setProtocol(NetworkProtocol)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getProtocolLayer_Protocol()
-	 * @model required="true"
-	 * @generated
-	 */
-	NetworkProtocol getProtocol();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.ProtocolLayer#getProtocol <em>Protocol</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Protocol</em>' reference.
-	 * @see #getProtocol()
-	 * @generated
-	 */
-	void setProtocol(NetworkProtocol value);
-
-	/**
-	 * Returns the value of the '<em><b>Is Carried By</b></em>' reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.ProtocolLayer#getCarries <em>Carries</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Is Carried By</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Is Carried By</em>' reference.
-	 * @see #setIsCarriedBy(ProtocolLayer)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getProtocolLayer_IsCarriedBy()
-	 * @see tools.descartes.dni.dnimm3.ProtocolLayer#getCarries
-	 * @model opposite="carries"
-	 * @generated
-	 */
-	ProtocolLayer getIsCarriedBy();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.ProtocolLayer#getIsCarriedBy <em>Is Carried By</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Is Carried By</em>' reference.
-	 * @see #getIsCarriedBy()
-	 * @generated
-	 */
-	void setIsCarriedBy(ProtocolLayer value);
-
-	/**
-	 * Returns the value of the '<em><b>Carries</b></em>' reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.ProtocolLayer#getIsCarriedBy <em>Is Carried By</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Carries</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Carries</em>' reference.
-	 * @see #setCarries(ProtocolLayer)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getProtocolLayer_Carries()
-	 * @see tools.descartes.dni.dnimm3.ProtocolLayer#getIsCarriedBy
-	 * @model opposite="isCarriedBy"
-	 * @generated
-	 */
-	ProtocolLayer getCarries();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.ProtocolLayer#getCarries <em>Carries</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Carries</em>' reference.
-	 * @see #getCarries()
-	 * @generated
-	 */
-	void setCarries(ProtocolLayer value);
-
-} // ProtocolLayer
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ProtocolStack.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ProtocolStack.java
deleted file mode 100644
index 0148ea20..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ProtocolStack.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Protocol Stack</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.ProtocolStack#getLayers <em>Layers</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getProtocolStack()
- * @model
- * @generated
- */
-public interface ProtocolStack extends Entity {
-	/**
-	 * Returns the value of the '<em><b>Layers</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.ProtocolLayer}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Layers</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>Layers</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getProtocolStack_Layers()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	List<ProtocolLayer> getLayers();
-
-} // ProtocolStack
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ProtocolsRepository.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ProtocolsRepository.java
deleted file mode 100644
index d9bf2c7a..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/ProtocolsRepository.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Protocols Repository</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.ProtocolsRepository#getStacks <em>Stacks</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.ProtocolsRepository#getProtocols <em>Protocols</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getProtocolsRepository()
- * @model
- * @generated
- */
-public interface ProtocolsRepository extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Stacks</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.ProtocolStack}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Stacks</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>Stacks</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getProtocolsRepository_Stacks()
-	 * @model containment="true"
-	 * @generated
-	 */
-	List<ProtocolStack> getStacks();
-
-	/**
-	 * Returns the value of the '<em><b>Protocols</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.NetworkProtocol}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Protocols</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>Protocols</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getProtocolsRepository_Protocols()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	List<NetworkProtocol> getProtocols();
-
-} // ProtocolsRepository
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/RandomVariable.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/RandomVariable.java
deleted file mode 100644
index 69f8dad3..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/RandomVariable.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Random Variable</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.RandomVariable#getCdf <em>Cdf</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getRandomVariable()
- * @model
- * @generated
- */
-public interface RandomVariable extends Variable {
-	/**
-	 * Returns the value of the '<em><b>Cdf</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Cdf</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Cdf</em>' containment reference.
-	 * @see #setCdf(Function)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getRandomVariable_Cdf()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	Function getCdf();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.RandomVariable#getCdf <em>Cdf</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Cdf</em>' containment reference.
-	 * @see #getCdf()
-	 * @generated
-	 */
-	void setCdf(Function value);
-
-} // RandomVariable
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Route.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Route.java
deleted file mode 100644
index 542c61f7..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Route.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Route</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.Route#getHops <em>Hops</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Route#getStart <em>Start</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.Route#getEnd <em>End</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getRoute()
- * @model
- * @generated
- */
-public interface Route extends Entity {
-	/**
-	 * Returns the value of the '<em><b>Hops</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Hops</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Hops</em>' containment reference.
-	 * @see #setHops(Hop)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getRoute_Hops()
-	 * @model containment="true"
-	 * @generated
-	 */
-	Hop getHops();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Route#getHops <em>Hops</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Hops</em>' containment reference.
-	 * @see #getHops()
-	 * @generated
-	 */
-	void setHops(Hop value);
-
-	/**
-	 * Returns the value of the '<em><b>Start</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Start</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Start</em>' reference.
-	 * @see #setStart(NetworkInterface)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getRoute_Start()
-	 * @model required="true"
-	 * @generated
-	 */
-	NetworkInterface getStart();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Route#getStart <em>Start</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Start</em>' reference.
-	 * @see #getStart()
-	 * @generated
-	 */
-	void setStart(NetworkInterface value);
-
-	/**
-	 * Returns the value of the '<em><b>End</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>End</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>End</em>' reference.
-	 * @see #setEnd(NetworkInterface)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getRoute_End()
-	 * @model required="true"
-	 * @generated
-	 */
-	NetworkInterface getEnd();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.Route#getEnd <em>End</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>End</em>' reference.
-	 * @see #getEnd()
-	 * @generated
-	 */
-	void setEnd(NetworkInterface value);
-
-} // Route
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/RoutesRepository.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/RoutesRepository.java
deleted file mode 100644
index a8487a39..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/RoutesRepository.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Routes Repository</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.RoutesRepository#getRoutes <em>Routes</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.RoutesRepository#getFlowRoutes <em>Flow Routes</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.RoutesRepository#getDirections <em>Directions</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getRoutesRepository()
- * @model
- * @generated
- */
-public interface RoutesRepository extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Routes</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.Route}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Routes</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>Routes</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getRoutesRepository_Routes()
-	 * @model containment="true"
-	 * @generated
-	 */
-	List<Route> getRoutes();
-
-	/**
-	 * Returns the value of the '<em><b>Flow Routes</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.FlowRoute}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Flow Routes</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>Flow Routes</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getRoutesRepository_FlowRoutes()
-	 * @model containment="true"
-	 * @generated
-	 */
-	List<FlowRoute> getFlowRoutes();
-
-	/**
-	 * Returns the value of the '<em><b>Directions</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.Direction}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Directions</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>Directions</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getRoutesRepository_Directions()
-	 * @model containment="true"
-	 * @generated
-	 */
-	List<Direction> getDirections();
-
-} // RoutesRepository
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SDN.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SDN.java
deleted file mode 100644
index c6c4276c..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SDN.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>SDN</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.SDN#getPerformance <em>Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.SDN#getController <em>Controller</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.SDN#getOpenFlowEndPoint <em>Open Flow End Point</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getSDN()
- * @model
- * @generated
- */
-public interface SDN extends IType {
-	/**
-	 * Returns the value of the '<em><b>Performance</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Performance</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Performance</em>' containment reference.
-	 * @see #setPerformance(PerformanceSdnNode)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getSDN_Performance()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	PerformanceSdnNode getPerformance();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.SDN#getPerformance <em>Performance</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Performance</em>' containment reference.
-	 * @see #getPerformance()
-	 * @generated
-	 */
-	void setPerformance(PerformanceSdnNode value);
-
-	/**
-	 * Returns the value of the '<em><b>Controller</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.SdnController}.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.SdnController#getNodes <em>Nodes</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Controller</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>Controller</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getSDN_Controller()
-	 * @see tools.descartes.dni.dnimm3.SdnController#getNodes
-	 * @model opposite="nodes" required="true"
-	 * @generated
-	 */
-	List<SdnController> getController();
-
-	/**
-	 * Returns the value of the '<em><b>Open Flow End Point</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Open Flow End Point</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Open Flow End Point</em>' reference.
-	 * @see #setOpenFlowEndPoint(CommunicatingApplication)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getSDN_OpenFlowEndPoint()
-	 * @model required="true"
-	 * @generated
-	 */
-	CommunicatingApplication getOpenFlowEndPoint();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.SDN#getOpenFlowEndPoint <em>Open Flow End Point</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Open Flow End Point</em>' reference.
-	 * @see #getOpenFlowEndPoint()
-	 * @generated
-	 */
-	void setOpenFlowEndPoint(CommunicatingApplication value);
-
-} // SDN
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SdnControlFlow.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SdnControlFlow.java
deleted file mode 100644
index 8babe6c4..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SdnControlFlow.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Sdn Control Flow</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.SdnControlFlow#getParentFlow <em>Parent Flow</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getSdnControlFlow()
- * @model
- * @generated
- */
-public interface SdnControlFlow extends Flow {
-	/**
-	 * Returns the value of the '<em><b>Parent Flow</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Parent Flow</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Parent Flow</em>' reference.
-	 * @see #setParentFlow(Flow)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getSdnControlFlow_ParentFlow()
-	 * @model required="true"
-	 * @generated
-	 */
-	Flow getParentFlow();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.SdnControlFlow#getParentFlow <em>Parent Flow</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Parent Flow</em>' reference.
-	 * @see #getParentFlow()
-	 * @generated
-	 */
-	void setParentFlow(Flow value);
-
-} // SdnControlFlow
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SdnController.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SdnController.java
deleted file mode 100644
index d684ab1b..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SdnController.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Sdn Controller</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.SdnController#getApplications <em>Applications</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.SdnController#getNodes <em>Nodes</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getSdnController()
- * @model
- * @generated
- */
-public interface SdnController extends CommunicatingApplication {
-	/**
-	 * Returns the value of the '<em><b>Applications</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.SdnControllerApplication}.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.SdnControllerApplication#getBelongsTo <em>Belongs To</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Applications</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>Applications</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getSdnController_Applications()
-	 * @see tools.descartes.dni.dnimm3.SdnControllerApplication#getBelongsTo
-	 * @model opposite="belongsTo" containment="true"
-	 * @generated
-	 */
-	List<SdnControllerApplication> getApplications();
-
-	/**
-	 * Returns the value of the '<em><b>Nodes</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.SDN}.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.SDN#getController <em>Controller</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Nodes</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>Nodes</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getSdnController_Nodes()
-	 * @see tools.descartes.dni.dnimm3.SDN#getController
-	 * @model opposite="controller"
-	 * @generated
-	 */
-	List<SDN> getNodes();
-
-} // SdnController
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SdnControllerApplication.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SdnControllerApplication.java
deleted file mode 100644
index 827edf27..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SdnControllerApplication.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Sdn Controller Application</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.SdnControllerApplication#getBelongsTo <em>Belongs To</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.SdnControllerApplication#isIsDefault <em>Is Default</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.SdnControllerApplication#getResponseDelay <em>Response Delay</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getSdnControllerApplication()
- * @model
- * @generated
- */
-public interface SdnControllerApplication extends CommunicatingApplication {
-	/**
-	 * Returns the value of the '<em><b>Belongs To</b></em>' container reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.SdnController#getApplications <em>Applications</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Belongs To</em>' container reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Belongs To</em>' container reference.
-	 * @see #setBelongsTo(SdnController)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getSdnControllerApplication_BelongsTo()
-	 * @see tools.descartes.dni.dnimm3.SdnController#getApplications
-	 * @model opposite="applications" transient="false"
-	 * @generated
-	 */
-	SdnController getBelongsTo();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.SdnControllerApplication#getBelongsTo <em>Belongs To</em>}' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Belongs To</em>' container reference.
-	 * @see #getBelongsTo()
-	 * @generated
-	 */
-	void setBelongsTo(SdnController value);
-
-	/**
-	 * Returns the value of the '<em><b>Is Default</b></em>' attribute.
-	 * The default value is <code>"false"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Is Default</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 Default</em>' attribute.
-	 * @see #setIsDefault(boolean)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getSdnControllerApplication_IsDefault()
-	 * @model default="false" unique="false" required="true"
-	 * @generated
-	 */
-	boolean isIsDefault();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.SdnControllerApplication#isIsDefault <em>Is Default</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Is Default</em>' attribute.
-	 * @see #isIsDefault()
-	 * @generated
-	 */
-	void setIsDefault(boolean value);
-
-	/**
-	 * Returns the value of the '<em><b>Response Delay</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Response Delay</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Response Delay</em>' containment reference.
-	 * @see #setResponseDelay(Dependency)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getSdnControllerApplication_ResponseDelay()
-	 * @model containment="true"
-	 * @generated
-	 */
-	Dependency getResponseDelay();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.SdnControllerApplication#getResponseDelay <em>Response Delay</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Response Delay</em>' containment reference.
-	 * @see #getResponseDelay()
-	 * @generated
-	 */
-	void setResponseDelay(Dependency value);
-
-} // SdnControllerApplication
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SdnFlowRule.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SdnFlowRule.java
deleted file mode 100644
index 4805040b..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SdnFlowRule.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Sdn Flow Rule</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.SdnFlowRule#getSdnSwitch <em>Sdn Switch</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.SdnFlowRule#getFlow <em>Flow</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.SdnFlowRule#getProbabilityHardware <em>Probability Hardware</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.SdnFlowRule#getProbabilitySoftware <em>Probability Software</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.SdnFlowRule#getProbabilityController <em>Probability Controller</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.SdnFlowRule#getControllerApplication <em>Controller Application</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getSdnFlowRule()
- * @model
- * @generated
- */
-public interface SdnFlowRule extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Sdn Switch</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Sdn Switch</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Sdn Switch</em>' reference.
-	 * @see #setSdnSwitch(Node)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getSdnFlowRule_SdnSwitch()
-	 * @model required="true"
-	 * @generated
-	 */
-	Node getSdnSwitch();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.SdnFlowRule#getSdnSwitch <em>Sdn Switch</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Sdn Switch</em>' reference.
-	 * @see #getSdnSwitch()
-	 * @generated
-	 */
-	void setSdnSwitch(Node value);
-
-	/**
-	 * Returns the value of the '<em><b>Flow</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Flow</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Flow</em>' reference.
-	 * @see #setFlow(Flow)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getSdnFlowRule_Flow()
-	 * @model required="true"
-	 * @generated
-	 */
-	Flow getFlow();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.SdnFlowRule#getFlow <em>Flow</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Flow</em>' reference.
-	 * @see #getFlow()
-	 * @generated
-	 */
-	void setFlow(Flow value);
-
-	/**
-	 * Returns the value of the '<em><b>Probability Hardware</b></em>' attribute.
-	 * The default value is <code>"1.0"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Probability Hardware</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Probability Hardware</em>' attribute.
-	 * @see #setProbabilityHardware(float)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getSdnFlowRule_ProbabilityHardware()
-	 * @model default="1.0" unique="false" required="true"
-	 * @generated
-	 */
-	float getProbabilityHardware();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.SdnFlowRule#getProbabilityHardware <em>Probability Hardware</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Probability Hardware</em>' attribute.
-	 * @see #getProbabilityHardware()
-	 * @generated
-	 */
-	void setProbabilityHardware(float value);
-
-	/**
-	 * Returns the value of the '<em><b>Probability Software</b></em>' attribute.
-	 * The default value is <code>"0.0"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Probability Software</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Probability Software</em>' attribute.
-	 * @see #setProbabilitySoftware(float)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getSdnFlowRule_ProbabilitySoftware()
-	 * @model default="0.0" unique="false"
-	 * @generated
-	 */
-	float getProbabilitySoftware();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.SdnFlowRule#getProbabilitySoftware <em>Probability Software</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Probability Software</em>' attribute.
-	 * @see #getProbabilitySoftware()
-	 * @generated
-	 */
-	void setProbabilitySoftware(float value);
-
-	/**
-	 * Returns the value of the '<em><b>Probability Controller</b></em>' attribute.
-	 * The default value is <code>"0.0"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Probability Controller</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Probability Controller</em>' attribute.
-	 * @see #setProbabilityController(float)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getSdnFlowRule_ProbabilityController()
-	 * @model default="0.0" unique="false"
-	 * @generated
-	 */
-	float getProbabilityController();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.SdnFlowRule#getProbabilityController <em>Probability Controller</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Probability Controller</em>' attribute.
-	 * @see #getProbabilityController()
-	 * @generated
-	 */
-	void setProbabilityController(float value);
-
-	/**
-	 * Returns the value of the '<em><b>Controller Application</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Controller Application</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Controller Application</em>' reference.
-	 * @see #setControllerApplication(SdnControllerApplication)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getSdnFlowRule_ControllerApplication()
-	 * @model
-	 * @generated
-	 */
-	SdnControllerApplication getControllerApplication();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.SdnFlowRule#getControllerApplication <em>Controller Application</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Controller Application</em>' reference.
-	 * @see #getControllerApplication()
-	 * @generated
-	 */
-	void setControllerApplication(SdnControllerApplication value);
-
-} // SdnFlowRule
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SdnNodePerformanceType.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SdnNodePerformanceType.java
deleted file mode 100644
index e2d4dfbe..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SdnNodePerformanceType.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Sdn Node Performance Type</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.SdnNodePerformanceType#getEntities <em>Entities</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getSdnNodePerformanceType()
- * @model
- * @generated
- */
-public interface SdnNodePerformanceType extends ITypedEntity {
-	/**
-	 * Returns the value of the '<em><b>Entities</b></em>' reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.PerformanceSdnNode}.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.PerformanceSdnNode#getEntityType <em>Entity Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Entities</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>Entities</em>' reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getSdnNodePerformanceType_Entities()
-	 * @see tools.descartes.dni.dnimm3.PerformanceSdnNode#getEntityType
-	 * @model opposite="entityType"
-	 * @generated
-	 */
-	List<PerformanceSdnNode> getEntities();
-
-} // SdnNodePerformanceType
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SequenceAction.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SequenceAction.java
deleted file mode 100644
index 3280b46d..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SequenceAction.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Sequence Action</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.SequenceAction#getIntern <em>Intern</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getSequenceAction()
- * @model
- * @generated
- */
-public interface SequenceAction extends AbstractAction {
-	/**
-	 * Returns the value of the '<em><b>Intern</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.AbstractAction}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Intern</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>Intern</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getSequenceAction_Intern()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	List<AbstractAction> getIntern();
-
-} // SequenceAction
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Speed.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Speed.java
deleted file mode 100644
index d51230d6..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Speed.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.common.util.Enumerator;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the literals of the enumeration '<em><b>Speed</b></em>',
- * and utility methods for working with them.
- * <!-- end-user-doc -->
- * @see tools.descartes.dni.dnimm3.DNIPackage#getSpeed()
- * @model
- * @generated
- */
-public enum Speed implements Enumerator {
-	/**
-	 * The '<em><b>Bytes Per Sec</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #BYTES_PER_SEC_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	BYTES_PER_SEC(0, "BytesPerSec", "BytesPerSec"),
-
-	/**
-	 * The '<em><b>Bits Per Sec</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #BITS_PER_SEC_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	BITS_PER_SEC(1, "bitsPerSec", "bitsPerSec"),
-
-	/**
-	 * The '<em><b>Packets Per Sec</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #PACKETS_PER_SEC_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	PACKETS_PER_SEC(2, "packetsPerSec", "packetsPerSec");
-
-	/**
-	 * The '<em><b>Bytes Per Sec</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Bytes Per Sec</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #BYTES_PER_SEC
-	 * @model name="BytesPerSec"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int BYTES_PER_SEC_VALUE = 0;
-
-	/**
-	 * The '<em><b>Bits Per Sec</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Bits Per Sec</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #BITS_PER_SEC
-	 * @model name="bitsPerSec"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int BITS_PER_SEC_VALUE = 1;
-
-	/**
-	 * The '<em><b>Packets Per Sec</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Packets Per Sec</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #PACKETS_PER_SEC
-	 * @model name="packetsPerSec"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int PACKETS_PER_SEC_VALUE = 2;
-
-	/**
-	 * An array of all the '<em><b>Speed</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static final Speed[] VALUES_ARRAY =
-		new Speed[] {
-			BYTES_PER_SEC,
-			BITS_PER_SEC,
-			PACKETS_PER_SEC,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>Speed</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List<Speed> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>Speed</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 Speed get(String literal) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			Speed result = VALUES_ARRAY[i];
-			if (result.toString().equals(literal)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Speed</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 Speed getByName(String name) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			Speed result = VALUES_ARRAY[i];
-			if (result.getName().equals(name)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Speed</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 Speed get(int value) {
-		switch (value) {
-			case BYTES_PER_SEC_VALUE: return BYTES_PER_SEC;
-			case BITS_PER_SEC_VALUE: return BITS_PER_SEC;
-			case PACKETS_PER_SEC_VALUE: return PACKETS_PER_SEC;
-		}
-		return null;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final int value;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String name;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String literal;
-
-	/**
-	 * Only this class can construct instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private Speed(int value, String name, String literal) {
-		this.value = value;
-		this.name = name;
-		this.literal = literal;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getValue() {
-	  return value;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-	  return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getLiteral() {
-	  return literal;
-	}
-
-	/**
-	 * Returns the literal value of the enumerator, which is its string representation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		return literal;
-	}
-	
-} //Speed
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SpeedUnit.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SpeedUnit.java
deleted file mode 100644
index 1527928b..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/SpeedUnit.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Speed Unit</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.SpeedUnit#getUnit <em>Unit</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.SpeedUnit#getPrefix <em>Prefix</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getSpeedUnit()
- * @model
- * @generated
- */
-public interface SpeedUnit extends DNIUnit {
-	/**
-	 * Returns the value of the '<em><b>Unit</b></em>' attribute.
-	 * The literals are from the enumeration {@link tools.descartes.dni.dnimm3.Speed}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Unit</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Unit</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3.Speed
-	 * @see #setUnit(Speed)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getSpeedUnit_Unit()
-	 * @model unique="false" required="true" ordered="false"
-	 * @generated
-	 */
-	Speed getUnit();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.SpeedUnit#getUnit <em>Unit</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Unit</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3.Speed
-	 * @see #getUnit()
-	 * @generated
-	 */
-	void setUnit(Speed value);
-
-	/**
-	 * Returns the value of the '<em><b>Prefix</b></em>' attribute.
-	 * The default value is <code>"none"</code>.
-	 * The literals are from the enumeration {@link tools.descartes.dni.dnimm3.UnitPrefix}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Prefix</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Prefix</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3.UnitPrefix
-	 * @see #setPrefix(UnitPrefix)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getSpeedUnit_Prefix()
-	 * @model default="none" unique="false" required="true" ordered="false"
-	 * @generated
-	 */
-	UnitPrefix getPrefix();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.SpeedUnit#getPrefix <em>Prefix</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Prefix</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3.UnitPrefix
-	 * @see #getPrefix()
-	 * @generated
-	 */
-	void setPrefix(UnitPrefix value);
-
-} // SpeedUnit
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/StartAction.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/StartAction.java
deleted file mode 100644
index eb70408b..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/StartAction.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Start Action</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getStartAction()
- * @model
- * @generated
- */
-public interface StartAction extends AbstractAction {
-} // StartAction
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/StopAction.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/StopAction.java
deleted file mode 100644
index 89a751e7..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/StopAction.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Stop Action</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getStopAction()
- * @model
- * @generated
- */
-public interface StopAction extends AbstractAction {
-} // StopAction
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Time.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Time.java
deleted file mode 100644
index 27e558aa..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Time.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.common.util.Enumerator;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the literals of the enumeration '<em><b>Time</b></em>',
- * and utility methods for working with them.
- * <!-- end-user-doc -->
- * @see tools.descartes.dni.dnimm3.DNIPackage#getTime()
- * @model
- * @generated
- */
-public enum Time implements Enumerator {
-	/**
-	 * The '<em><b>Seconds</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #SECONDS_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	SECONDS(0, "Seconds", "s"),
-
-	/**
-	 * The '<em><b>Milliseconds</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #MILLISECONDS_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	MILLISECONDS(1, "Milliseconds", "ms"),
-
-	/**
-	 * The '<em><b>Microseconds</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #MICROSECONDS_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	MICROSECONDS(2, "Microseconds", "us");
-
-	/**
-	 * The '<em><b>Seconds</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Seconds</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #SECONDS
-	 * @model name="Seconds" literal="s"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int SECONDS_VALUE = 0;
-
-	/**
-	 * The '<em><b>Milliseconds</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Milliseconds</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #MILLISECONDS
-	 * @model name="Milliseconds" literal="ms"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int MILLISECONDS_VALUE = 1;
-
-	/**
-	 * The '<em><b>Microseconds</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Microseconds</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #MICROSECONDS
-	 * @model name="Microseconds" literal="us"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int MICROSECONDS_VALUE = 2;
-
-	/**
-	 * An array of all the '<em><b>Time</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static final Time[] VALUES_ARRAY =
-		new Time[] {
-			SECONDS,
-			MILLISECONDS,
-			MICROSECONDS,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>Time</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List<Time> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>Time</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 Time get(String literal) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			Time result = VALUES_ARRAY[i];
-			if (result.toString().equals(literal)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Time</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 Time getByName(String name) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			Time result = VALUES_ARRAY[i];
-			if (result.getName().equals(name)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Time</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 Time get(int value) {
-		switch (value) {
-			case SECONDS_VALUE: return SECONDS;
-			case MILLISECONDS_VALUE: return MILLISECONDS;
-			case MICROSECONDS_VALUE: return MICROSECONDS;
-		}
-		return null;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final int value;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String name;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String literal;
-
-	/**
-	 * Only this class can construct instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private Time(int value, String name, String literal) {
-		this.value = value;
-		this.name = name;
-		this.literal = literal;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getValue() {
-	  return value;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-	  return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getLiteral() {
-	  return literal;
-	}
-
-	/**
-	 * Returns the literal value of the enumerator, which is its string representation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		return literal;
-	}
-	
-} //Time
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/TimeUnit.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/TimeUnit.java
deleted file mode 100644
index 3bb27987..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/TimeUnit.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Time Unit</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.TimeUnit#getUnit <em>Unit</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getTimeUnit()
- * @model
- * @generated
- */
-public interface TimeUnit extends DNIUnit {
-	/**
-	 * Returns the value of the '<em><b>Unit</b></em>' attribute.
-	 * The literals are from the enumeration {@link tools.descartes.dni.dnimm3.Time}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Unit</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Unit</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3.Time
-	 * @see #setUnit(Time)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getTimeUnit_Unit()
-	 * @model unique="false"
-	 * @generated
-	 */
-	Time getUnit();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.TimeUnit#getUnit <em>Unit</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Unit</em>' attribute.
-	 * @see tools.descartes.dni.dnimm3.Time
-	 * @see #getUnit()
-	 * @generated
-	 */
-	void setUnit(Time value);
-
-} // TimeUnit
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/TrafficSource.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/TrafficSource.java
deleted file mode 100644
index 37d8c60f..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/TrafficSource.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.List;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Traffic Source</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.TrafficSource#getWorkload <em>Workload</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.TrafficSource#getSoftwareComponent <em>Software Component</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getTrafficSource()
- * @model
- * @generated
- */
-public interface TrafficSource extends Entity, AddressableEntity {
-	/**
-	 * Returns the value of the '<em><b>Workload</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3.Workload}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Workload</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>Workload</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getTrafficSource_Workload()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	List<Workload> getWorkload();
-
-	/**
-	 * Returns the value of the '<em><b>Software Component</b></em>' container reference.
-	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3.CommunicatingApplication#getTrafficSources <em>Traffic Sources</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Software Component</em>' container reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Software Component</em>' container reference.
-	 * @see #setSoftwareComponent(CommunicatingApplication)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getTrafficSource_SoftwareComponent()
-	 * @see tools.descartes.dni.dnimm3.CommunicatingApplication#getTrafficSources
-	 * @model opposite="trafficSources" required="true" transient="false"
-	 * @generated
-	 */
-	CommunicatingApplication getSoftwareComponent();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.TrafficSource#getSoftwareComponent <em>Software Component</em>}' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Software Component</em>' container reference.
-	 * @see #getSoftwareComponent()
-	 * @generated
-	 */
-	void setSoftwareComponent(CommunicatingApplication value);
-
-} // TrafficSource
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/TransmitAction.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/TransmitAction.java
deleted file mode 100644
index 063645d9..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/TransmitAction.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Transmit Action</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.TransmitAction#getFlowTraffic <em>Flow Traffic</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getTransmitAction()
- * @model
- * @generated
- */
-public interface TransmitAction extends AbstractAction {
-	/**
-	 * Returns the value of the '<em><b>Flow Traffic</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Flow Traffic</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Flow Traffic</em>' reference.
-	 * @see #setFlowTraffic(FlowTraffic)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getTransmitAction_FlowTraffic()
-	 * @model required="true"
-	 * @generated
-	 */
-	FlowTraffic getFlowTraffic();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.TransmitAction#getFlowTraffic <em>Flow Traffic</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Flow Traffic</em>' reference.
-	 * @see #getFlowTraffic()
-	 * @generated
-	 */
-	void setFlowTraffic(FlowTraffic value);
-
-} // TransmitAction
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/UnitPrefix.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/UnitPrefix.java
deleted file mode 100644
index bbe666a6..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/UnitPrefix.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.common.util.Enumerator;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the literals of the enumeration '<em><b>Unit Prefix</b></em>',
- * and utility methods for working with them.
- * <!-- end-user-doc -->
- * @see tools.descartes.dni.dnimm3.DNIPackage#getUnitPrefix()
- * @model
- * @generated
- */
-public enum UnitPrefix implements Enumerator {
-	/**
-	 * The '<em><b>None</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #NONE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	NONE(0, "none", "none"),
-
-	/**
-	 * The '<em><b>K</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #K_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	K(1, "K", "K"),
-
-	/**
-	 * The '<em><b>M</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #M_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	M(2, "M", "M"),
-
-	/**
-	 * The '<em><b>G</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #G_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	G(3, "G", "G");
-
-	/**
-	 * 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
-	 * @model name="none"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int NONE_VALUE = 0;
-
-	/**
-	 * The '<em><b>K</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>K</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #K
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int K_VALUE = 1;
-
-	/**
-	 * The '<em><b>M</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>M</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #M
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int M_VALUE = 2;
-
-	/**
-	 * The '<em><b>G</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>G</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #G
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int G_VALUE = 3;
-
-	/**
-	 * An array of all the '<em><b>Unit Prefix</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static final UnitPrefix[] VALUES_ARRAY =
-		new UnitPrefix[] {
-			NONE,
-			K,
-			M,
-			G,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>Unit Prefix</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List<UnitPrefix> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>Unit Prefix</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 UnitPrefix get(String literal) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			UnitPrefix result = VALUES_ARRAY[i];
-			if (result.toString().equals(literal)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Unit Prefix</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 UnitPrefix getByName(String name) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			UnitPrefix result = VALUES_ARRAY[i];
-			if (result.getName().equals(name)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Unit Prefix</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 UnitPrefix get(int value) {
-		switch (value) {
-			case NONE_VALUE: return NONE;
-			case K_VALUE: return K;
-			case M_VALUE: return M;
-			case G_VALUE: return G;
-		}
-		return null;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final int value;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String name;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String literal;
-
-	/**
-	 * Only this class can construct instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private UnitPrefix(int value, String name, String literal) {
-		this.value = value;
-		this.name = name;
-		this.literal = literal;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getValue() {
-	  return value;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-	  return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getLiteral() {
-	  return literal;
-	}
-
-	/**
-	 * Returns the literal value of the enumerator, which is its string representation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		return literal;
-	}
-	
-} //UnitPrefix
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Variable.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Variable.java
deleted file mode 100644
index eda98e13..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Variable.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Variable</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getVariable()
- * @model interface="true" abstract="true"
- * @generated
- */
-public interface Variable extends Dependency {
-} // Variable
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/WaitAction.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/WaitAction.java
deleted file mode 100644
index d204bab6..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/WaitAction.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Wait Action</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.WaitAction#getWaitTime <em>Wait Time</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getWaitAction()
- * @model
- * @generated
- */
-public interface WaitAction extends AbstractAction {
-	/**
-	 * Returns the value of the '<em><b>Wait Time</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Wait Time</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Wait Time</em>' containment reference.
-	 * @see #setWaitTime(Dependency)
-	 * @see tools.descartes.dni.dnimm3.DNIPackage#getWaitAction_WaitTime()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	Dependency getWaitTime();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3.WaitAction#getWaitTime <em>Wait Time</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Wait Time</em>' containment reference.
-	 * @see #getWaitTime()
-	 * @generated
-	 */
-	void setWaitTime(Dependency value);
-
-} // WaitAction
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Workload.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Workload.java
deleted file mode 100644
index 26209ce2..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/Workload.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Workload</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see tools.descartes.dni.dnimm3.DNIPackage#getWorkload()
- * @model interface="true" abstract="true"
- * @generated
- */
-public interface Workload extends EObject {
-} // Workload
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/BranchActionImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/BranchActionImpl.java
deleted file mode 100644
index b7404fa9..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/BranchActionImpl.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.AbstractAction;
-import tools.descartes.dni.dnimm3.BranchAction;
-import tools.descartes.dni.dnimm3.DNIPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Branch Action</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.BranchActionImpl#getIntern <em>Intern</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class BranchActionImpl extends MinimalEObjectImpl.Container implements BranchAction {
-	/**
-	 * The cached value of the '{@link #getIntern() <em>Intern</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getIntern()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AbstractAction> intern;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected BranchActionImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.BRANCH_ACTION;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AbstractAction> getIntern() {
-		if (intern == null) {
-			intern = new EObjectContainmentEList<AbstractAction>(AbstractAction.class, this, DNIPackage.BRANCH_ACTION__INTERN);
-		}
-		return intern;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.BRANCH_ACTION__INTERN:
-				return ((InternalEList<?>)getIntern()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.BRANCH_ACTION__INTERN:
-				return getIntern();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.BRANCH_ACTION__INTERN:
-				getIntern().clear();
-				getIntern().addAll((Collection<? extends AbstractAction>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.BRANCH_ACTION__INTERN:
-				getIntern().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.BRANCH_ACTION__INTERN:
-				return intern != null && !intern.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //BranchActionImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/CommonImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/CommonImpl.java
deleted file mode 100644
index 4310c8f8..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/CommonImpl.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import tools.descartes.dni.dnimm3.Common;
-import tools.descartes.dni.dnimm3.DNIPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Common</b></em>'.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class CommonImpl extends MinimalEObjectImpl.Container implements Common {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected CommonImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.COMMON;
-	}
-
-} //CommonImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/CommunicatingApplicationImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/CommunicatingApplicationImpl.java
deleted file mode 100644
index bb68038f..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/CommunicatingApplicationImpl.java
+++ /dev/null
@@ -1,415 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.util.EObjectContainmentWithInverseEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.CommunicatingApplication;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.End;
-import tools.descartes.dni.dnimm3.NamedElement;
-import tools.descartes.dni.dnimm3.TrafficSource;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Communicating Application</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.CommunicatingApplicationImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.CommunicatingApplicationImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.CommunicatingApplicationImpl#getTrafficSources <em>Traffic Sources</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.CommunicatingApplicationImpl#getDeployedOn <em>Deployed On</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class CommunicatingApplicationImpl extends IdentifierImpl implements CommunicatingApplication {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The cached value of the '{@link #getTrafficSources() <em>Traffic Sources</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getTrafficSources()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<TrafficSource> trafficSources;
-
-	/**
-	 * The cached value of the '{@link #getDeployedOn() <em>Deployed On</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDeployedOn()
-	 * @generated
-	 * @ordered
-	 */
-	protected End deployedOn;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected CommunicatingApplicationImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.COMMUNICATING_APPLICATION;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.COMMUNICATING_APPLICATION__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIPackage.COMMUNICATING_APPLICATION__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<TrafficSource> getTrafficSources() {
-		if (trafficSources == null) {
-			trafficSources = new EObjectContainmentWithInverseEList<TrafficSource>(TrafficSource.class, this, DNIPackage.COMMUNICATING_APPLICATION__TRAFFIC_SOURCES, DNIPackage.TRAFFIC_SOURCE__SOFTWARE_COMPONENT);
-		}
-		return trafficSources;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public End getDeployedOn() {
-		if (deployedOn != null && deployedOn.eIsProxy()) {
-			InternalEObject oldDeployedOn = (InternalEObject)deployedOn;
-			deployedOn = (End)eResolveProxy(oldDeployedOn);
-			if (deployedOn != oldDeployedOn) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.COMMUNICATING_APPLICATION__DEPLOYED_ON, oldDeployedOn, deployedOn));
-			}
-		}
-		return deployedOn;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public End basicGetDeployedOn() {
-		return deployedOn;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetDeployedOn(End newDeployedOn, NotificationChain msgs) {
-		End oldDeployedOn = deployedOn;
-		deployedOn = newDeployedOn;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.COMMUNICATING_APPLICATION__DEPLOYED_ON, oldDeployedOn, newDeployedOn);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setDeployedOn(End newDeployedOn) {
-		if (newDeployedOn != deployedOn) {
-			NotificationChain msgs = null;
-			if (deployedOn != null)
-				msgs = ((InternalEObject)deployedOn).eInverseRemove(this, DNIPackage.END__SOFTWARE, End.class, msgs);
-			if (newDeployedOn != null)
-				msgs = ((InternalEObject)newDeployedOn).eInverseAdd(this, DNIPackage.END__SOFTWARE, End.class, msgs);
-			msgs = basicSetDeployedOn(newDeployedOn, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.COMMUNICATING_APPLICATION__DEPLOYED_ON, newDeployedOn, newDeployedOn));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.COMMUNICATING_APPLICATION__TRAFFIC_SOURCES:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getTrafficSources()).basicAdd(otherEnd, msgs);
-			case DNIPackage.COMMUNICATING_APPLICATION__DEPLOYED_ON:
-				if (deployedOn != null)
-					msgs = ((InternalEObject)deployedOn).eInverseRemove(this, DNIPackage.END__SOFTWARE, End.class, msgs);
-				return basicSetDeployedOn((End)otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.COMMUNICATING_APPLICATION__TRAFFIC_SOURCES:
-				return ((InternalEList<?>)getTrafficSources()).basicRemove(otherEnd, msgs);
-			case DNIPackage.COMMUNICATING_APPLICATION__DEPLOYED_ON:
-				return basicSetDeployedOn(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.COMMUNICATING_APPLICATION__NAME:
-				return getName();
-			case DNIPackage.COMMUNICATING_APPLICATION__DESCRIPTION:
-				return getDescription();
-			case DNIPackage.COMMUNICATING_APPLICATION__TRAFFIC_SOURCES:
-				return getTrafficSources();
-			case DNIPackage.COMMUNICATING_APPLICATION__DEPLOYED_ON:
-				if (resolve) return getDeployedOn();
-				return basicGetDeployedOn();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.COMMUNICATING_APPLICATION__NAME:
-				setName((String)newValue);
-				return;
-			case DNIPackage.COMMUNICATING_APPLICATION__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIPackage.COMMUNICATING_APPLICATION__TRAFFIC_SOURCES:
-				getTrafficSources().clear();
-				getTrafficSources().addAll((Collection<? extends TrafficSource>)newValue);
-				return;
-			case DNIPackage.COMMUNICATING_APPLICATION__DEPLOYED_ON:
-				setDeployedOn((End)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.COMMUNICATING_APPLICATION__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIPackage.COMMUNICATING_APPLICATION__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIPackage.COMMUNICATING_APPLICATION__TRAFFIC_SOURCES:
-				getTrafficSources().clear();
-				return;
-			case DNIPackage.COMMUNICATING_APPLICATION__DEPLOYED_ON:
-				setDeployedOn((End)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.COMMUNICATING_APPLICATION__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIPackage.COMMUNICATING_APPLICATION__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIPackage.COMMUNICATING_APPLICATION__TRAFFIC_SOURCES:
-				return trafficSources != null && !trafficSources.isEmpty();
-			case DNIPackage.COMMUNICATING_APPLICATION__DEPLOYED_ON:
-				return deployedOn != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.COMMUNICATING_APPLICATION__NAME: return DNIPackage.NAMED_ELEMENT__NAME;
-				case DNIPackage.COMMUNICATING_APPLICATION__DESCRIPTION: return DNIPackage.NAMED_ELEMENT__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.NAMED_ELEMENT__NAME: return DNIPackage.COMMUNICATING_APPLICATION__NAME;
-				case DNIPackage.NAMED_ELEMENT__DESCRIPTION: return DNIPackage.COMMUNICATING_APPLICATION__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(')');
-		return result.toString();
-	}
-
-} //CommunicatingApplicationImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ConstantDoubleVariableImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ConstantDoubleVariableImpl.java
deleted file mode 100644
index ecad6e5d..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ConstantDoubleVariableImpl.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-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 tools.descartes.dni.dnimm3.ConstantDoubleVariable;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.DNIUnit;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Constant Double Variable</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.ConstantDoubleVariableImpl#getUnit <em>Unit</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.ConstantDoubleVariableImpl#getValue <em>Value</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ConstantDoubleVariableImpl extends MinimalEObjectImpl.Container implements ConstantDoubleVariable {
-	/**
-	 * The cached value of the '{@link #getUnit() <em>Unit</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUnit()
-	 * @generated
-	 * @ordered
-	 */
-	protected DNIUnit unit;
-
-	/**
-	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getValue()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final double VALUE_EDEFAULT = 0.0;
-
-	/**
-	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getValue()
-	 * @generated
-	 * @ordered
-	 */
-	protected double value = VALUE_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ConstantDoubleVariableImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.CONSTANT_DOUBLE_VARIABLE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DNIUnit getUnit() {
-		return unit;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetUnit(DNIUnit newUnit, NotificationChain msgs) {
-		DNIUnit oldUnit = unit;
-		unit = newUnit;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.CONSTANT_DOUBLE_VARIABLE__UNIT, oldUnit, newUnit);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setUnit(DNIUnit newUnit) {
-		if (newUnit != unit) {
-			NotificationChain msgs = null;
-			if (unit != null)
-				msgs = ((InternalEObject)unit).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.CONSTANT_DOUBLE_VARIABLE__UNIT, null, msgs);
-			if (newUnit != null)
-				msgs = ((InternalEObject)newUnit).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.CONSTANT_DOUBLE_VARIABLE__UNIT, null, msgs);
-			msgs = basicSetUnit(newUnit, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.CONSTANT_DOUBLE_VARIABLE__UNIT, newUnit, newUnit));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public double getValue() {
-		return value;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setValue(double newValue) {
-		double oldValue = value;
-		value = newValue;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.CONSTANT_DOUBLE_VARIABLE__VALUE, oldValue, value));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.CONSTANT_DOUBLE_VARIABLE__UNIT:
-				return basicSetUnit(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.CONSTANT_DOUBLE_VARIABLE__UNIT:
-				return getUnit();
-			case DNIPackage.CONSTANT_DOUBLE_VARIABLE__VALUE:
-				return getValue();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.CONSTANT_DOUBLE_VARIABLE__UNIT:
-				setUnit((DNIUnit)newValue);
-				return;
-			case DNIPackage.CONSTANT_DOUBLE_VARIABLE__VALUE:
-				setValue((Double)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.CONSTANT_DOUBLE_VARIABLE__UNIT:
-				setUnit((DNIUnit)null);
-				return;
-			case DNIPackage.CONSTANT_DOUBLE_VARIABLE__VALUE:
-				setValue(VALUE_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.CONSTANT_DOUBLE_VARIABLE__UNIT:
-				return unit != null;
-			case DNIPackage.CONSTANT_DOUBLE_VARIABLE__VALUE:
-				return value != VALUE_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (value: ");
-		result.append(value);
-		result.append(')');
-		return result.toString();
-	}
-
-} //ConstantDoubleVariableImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ConstantLongVariableImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ConstantLongVariableImpl.java
deleted file mode 100644
index 9c0b5991..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ConstantLongVariableImpl.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-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 tools.descartes.dni.dnimm3.ConstantLongVariable;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.DNIUnit;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Constant Long Variable</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.ConstantLongVariableImpl#getUnit <em>Unit</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.ConstantLongVariableImpl#getValue <em>Value</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ConstantLongVariableImpl extends MinimalEObjectImpl.Container implements ConstantLongVariable {
-	/**
-	 * The cached value of the '{@link #getUnit() <em>Unit</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUnit()
-	 * @generated
-	 * @ordered
-	 */
-	protected DNIUnit unit;
-
-	/**
-	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getValue()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final long VALUE_EDEFAULT = 0L;
-
-	/**
-	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getValue()
-	 * @generated
-	 * @ordered
-	 */
-	protected long value = VALUE_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ConstantLongVariableImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.CONSTANT_LONG_VARIABLE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DNIUnit getUnit() {
-		return unit;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetUnit(DNIUnit newUnit, NotificationChain msgs) {
-		DNIUnit oldUnit = unit;
-		unit = newUnit;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.CONSTANT_LONG_VARIABLE__UNIT, oldUnit, newUnit);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setUnit(DNIUnit newUnit) {
-		if (newUnit != unit) {
-			NotificationChain msgs = null;
-			if (unit != null)
-				msgs = ((InternalEObject)unit).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.CONSTANT_LONG_VARIABLE__UNIT, null, msgs);
-			if (newUnit != null)
-				msgs = ((InternalEObject)newUnit).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.CONSTANT_LONG_VARIABLE__UNIT, null, msgs);
-			msgs = basicSetUnit(newUnit, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.CONSTANT_LONG_VARIABLE__UNIT, newUnit, newUnit));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public long getValue() {
-		return value;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setValue(long newValue) {
-		long oldValue = value;
-		value = newValue;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.CONSTANT_LONG_VARIABLE__VALUE, oldValue, value));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.CONSTANT_LONG_VARIABLE__UNIT:
-				return basicSetUnit(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.CONSTANT_LONG_VARIABLE__UNIT:
-				return getUnit();
-			case DNIPackage.CONSTANT_LONG_VARIABLE__VALUE:
-				return getValue();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.CONSTANT_LONG_VARIABLE__UNIT:
-				setUnit((DNIUnit)newValue);
-				return;
-			case DNIPackage.CONSTANT_LONG_VARIABLE__VALUE:
-				setValue((Long)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.CONSTANT_LONG_VARIABLE__UNIT:
-				setUnit((DNIUnit)null);
-				return;
-			case DNIPackage.CONSTANT_LONG_VARIABLE__VALUE:
-				setValue(VALUE_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.CONSTANT_LONG_VARIABLE__UNIT:
-				return unit != null;
-			case DNIPackage.CONSTANT_LONG_VARIABLE__VALUE:
-				return value != VALUE_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (value: ");
-		result.append(value);
-		result.append(')');
-		return result.toString();
-	}
-
-} //ConstantLongVariableImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DNIFactoryImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DNIFactoryImpl.java
deleted file mode 100644
index be187250..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DNIFactoryImpl.java
+++ /dev/null
@@ -1,843 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-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;
-
-import tools.descartes.dni.dnimm3.*;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Factory</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class DNIFactoryImpl extends EFactoryImpl implements DNIFactory {
-	/**
-	 * Creates the default factory implementation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static DNIFactory init() {
-		try {
-			DNIFactory theDNIFactory = (DNIFactory)EPackage.Registry.INSTANCE.getEFactory(DNIPackage.eNS_URI);
-			if (theDNIFactory != null) {
-				return theDNIFactory;
-			}
-		}
-		catch (Exception exception) {
-			EcorePlugin.INSTANCE.log(exception);
-		}
-		return new DNIFactoryImpl();
-	}
-
-	/**
-	 * Creates an instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DNIFactoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EObject create(EClass eClass) {
-		switch (eClass.getClassifierID()) {
-			case DNIPackage.NETWORK_INFRASTRUCTURE: return createNetworkInfrastructure();
-			case DNIPackage.NETWORK_STRUCTURE: return createNetworkStructure();
-			case DNIPackage.NODE: return createNode();
-			case DNIPackage.END: return createEnd();
-			case DNIPackage.INTERMEDIATE: return createIntermediate();
-			case DNIPackage.LINK: return createLink();
-			case DNIPackage.NETWORK_INTERFACE: return createNetworkInterface();
-			case DNIPackage.NETWORK_TRAFFIC: return createNetworkTraffic();
-			case DNIPackage.FLOW: return createFlow();
-			case DNIPackage.SDN_CONTROL_FLOW: return createSdnControlFlow();
-			case DNIPackage.GENERIC_FLOW_TRAFFIC: return createGenericFlowTraffic();
-			case DNIPackage.COMMUNICATING_APPLICATION: return createCommunicatingApplication();
-			case DNIPackage.TRAFFIC_SOURCE: return createTrafficSource();
-			case DNIPackage.NETWORK_CONFIGURATION: return createNetworkConfiguration();
-			case DNIPackage.PROTOCOLS_REPOSITORY: return createProtocolsRepository();
-			case DNIPackage.PROTOCOL_STACK: return createProtocolStack();
-			case DNIPackage.PROTOCOL_LAYER: return createProtocolLayer();
-			case DNIPackage.NETWORK_PROTOCOL: return createNetworkProtocol();
-			case DNIPackage.ROUTES_REPOSITORY: return createRoutesRepository();
-			case DNIPackage.DIRECTION: return createDirection();
-			case DNIPackage.FLOW_ROUTE: return createFlowRoute();
-			case DNIPackage.ROUTE: return createRoute();
-			case DNIPackage.HOP: return createHop();
-			case DNIPackage.ENTITY_ADDRESS: return createEntityAddress();
-			case DNIPackage.GENERIC_WORKLOAD: return createGenericWorkload();
-			case DNIPackage.BRANCH_ACTION: return createBranchAction();
-			case DNIPackage.LOOP_ACTION: return createLoopAction();
-			case DNIPackage.SEQUENCE_ACTION: return createSequenceAction();
-			case DNIPackage.START_ACTION: return createStartAction();
-			case DNIPackage.STOP_ACTION: return createStopAction();
-			case DNIPackage.TRANSMIT_ACTION: return createTransmitAction();
-			case DNIPackage.WAIT_ACTION: return createWaitAction();
-			case DNIPackage.PERFORMANCE_LINK: return createPerformanceLink();
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE: return createPerformanceNetworkInterface();
-			case DNIPackage.SDN_FLOW_RULE: return createSdnFlowRule();
-			case DNIPackage.SDN_CONTROLLER: return createSdnController();
-			case DNIPackage.SDN_CONTROLLER_APPLICATION: return createSdnControllerApplication();
-			case DNIPackage.COMMON: return createCommon();
-			case DNIPackage.SDN: return createSDN();
-			case DNIPackage.INTERMEDIATE_PERFORMANCE: return createIntermediatePerformance();
-			case DNIPackage.END_PERFORMANCE: return createEndPerformance();
-			case DNIPackage.PERFORMANCE_SDN_NODE: return createPerformanceSdnNode();
-			case DNIPackage.SPEED_UNIT: return createSpeedUnit();
-			case DNIPackage.DATA_UNIT: return createDataUnit();
-			case DNIPackage.TIME_UNIT: return createTimeUnit();
-			case DNIPackage.CONSTANT_DOUBLE_VARIABLE: return createConstantDoubleVariable();
-			case DNIPackage.CONSTANT_LONG_VARIABLE: return createConstantLongVariable();
-			case DNIPackage.RANDOM_VARIABLE: return createRandomVariable();
-			case DNIPackage.FLOAT_COORDINATE: return createFloatCoordinate();
-			case DNIPackage.DISCRETE_FUNCTION: return createDiscreteFunction();
-			case DNIPackage.EXPONENTIAL_FUNCTION: return createExponentialFunction();
-			case DNIPackage.ENTITY_TYPES: return createEntityTypes();
-			case DNIPackage.NODE_TYPE: return createNodeType();
-			case DNIPackage.END_PERFORMANCE_TYPE: return createEndPerformanceType();
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE: return createIntermediatePerformanceType();
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE: return createSdnNodePerformanceType();
-			case DNIPackage.NETWORK_INTERFACE_TYPE: return createNetworkInterfaceType();
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE: return createNetworkInterfacePerformanceType();
-			case DNIPackage.LINK_TYPE: return createLinkType();
-			case DNIPackage.LINK_PERFORMANCE_TYPE: return createLinkPerformanceType();
-			default:
-				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object createFromString(EDataType eDataType, String initialValue) {
-		switch (eDataType.getClassifierID()) {
-			case DNIPackage.UNIT_PREFIX:
-				return createUnitPrefixFromString(eDataType, initialValue);
-			case DNIPackage.SPEED:
-				return createSpeedFromString(eDataType, initialValue);
-			case DNIPackage.TIME:
-				return createTimeFromString(eDataType, initialValue);
-			default:
-				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String convertToString(EDataType eDataType, Object instanceValue) {
-		switch (eDataType.getClassifierID()) {
-			case DNIPackage.UNIT_PREFIX:
-				return convertUnitPrefixToString(eDataType, instanceValue);
-			case DNIPackage.SPEED:
-				return convertSpeedToString(eDataType, instanceValue);
-			case DNIPackage.TIME:
-				return convertTimeToString(eDataType, instanceValue);
-			default:
-				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInfrastructure createNetworkInfrastructure() {
-		NetworkInfrastructureImpl networkInfrastructure = new NetworkInfrastructureImpl();
-		return networkInfrastructure;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkStructure createNetworkStructure() {
-		NetworkStructureImpl networkStructure = new NetworkStructureImpl();
-		return networkStructure;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Node createNode() {
-		NodeImpl node = new NodeImpl();
-		return node;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public End createEnd() {
-		EndImpl end = new EndImpl();
-		return end;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Intermediate createIntermediate() {
-		IntermediateImpl intermediate = new IntermediateImpl();
-		return intermediate;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Link createLink() {
-		LinkImpl link = new LinkImpl();
-		return link;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterface createNetworkInterface() {
-		NetworkInterfaceImpl networkInterface = new NetworkInterfaceImpl();
-		return networkInterface;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkTraffic createNetworkTraffic() {
-		NetworkTrafficImpl networkTraffic = new NetworkTrafficImpl();
-		return networkTraffic;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Flow createFlow() {
-		FlowImpl flow = new FlowImpl();
-		return flow;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SdnControlFlow createSdnControlFlow() {
-		SdnControlFlowImpl sdnControlFlow = new SdnControlFlowImpl();
-		return sdnControlFlow;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public GenericFlowTraffic createGenericFlowTraffic() {
-		GenericFlowTrafficImpl genericFlowTraffic = new GenericFlowTrafficImpl();
-		return genericFlowTraffic;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public CommunicatingApplication createCommunicatingApplication() {
-		CommunicatingApplicationImpl communicatingApplication = new CommunicatingApplicationImpl();
-		return communicatingApplication;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public TrafficSource createTrafficSource() {
-		TrafficSourceImpl trafficSource = new TrafficSourceImpl();
-		return trafficSource;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkConfiguration createNetworkConfiguration() {
-		NetworkConfigurationImpl networkConfiguration = new NetworkConfigurationImpl();
-		return networkConfiguration;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ProtocolsRepository createProtocolsRepository() {
-		ProtocolsRepositoryImpl protocolsRepository = new ProtocolsRepositoryImpl();
-		return protocolsRepository;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ProtocolStack createProtocolStack() {
-		ProtocolStackImpl protocolStack = new ProtocolStackImpl();
-		return protocolStack;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ProtocolLayer createProtocolLayer() {
-		ProtocolLayerImpl protocolLayer = new ProtocolLayerImpl();
-		return protocolLayer;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkProtocol createNetworkProtocol() {
-		NetworkProtocolImpl networkProtocol = new NetworkProtocolImpl();
-		return networkProtocol;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public RoutesRepository createRoutesRepository() {
-		RoutesRepositoryImpl routesRepository = new RoutesRepositoryImpl();
-		return routesRepository;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Direction createDirection() {
-		DirectionImpl direction = new DirectionImpl();
-		return direction;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public FlowRoute createFlowRoute() {
-		FlowRouteImpl flowRoute = new FlowRouteImpl();
-		return flowRoute;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Route createRoute() {
-		RouteImpl route = new RouteImpl();
-		return route;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Hop createHop() {
-		HopImpl hop = new HopImpl();
-		return hop;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EntityAddress createEntityAddress() {
-		EntityAddressImpl entityAddress = new EntityAddressImpl();
-		return entityAddress;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public GenericWorkload createGenericWorkload() {
-		GenericWorkloadImpl genericWorkload = new GenericWorkloadImpl();
-		return genericWorkload;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public BranchAction createBranchAction() {
-		BranchActionImpl branchAction = new BranchActionImpl();
-		return branchAction;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LoopAction createLoopAction() {
-		LoopActionImpl loopAction = new LoopActionImpl();
-		return loopAction;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SequenceAction createSequenceAction() {
-		SequenceActionImpl sequenceAction = new SequenceActionImpl();
-		return sequenceAction;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public StartAction createStartAction() {
-		StartActionImpl startAction = new StartActionImpl();
-		return startAction;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public StopAction createStopAction() {
-		StopActionImpl stopAction = new StopActionImpl();
-		return stopAction;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public TransmitAction createTransmitAction() {
-		TransmitActionImpl transmitAction = new TransmitActionImpl();
-		return transmitAction;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public WaitAction createWaitAction() {
-		WaitActionImpl waitAction = new WaitActionImpl();
-		return waitAction;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PerformanceLink createPerformanceLink() {
-		PerformanceLinkImpl performanceLink = new PerformanceLinkImpl();
-		return performanceLink;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PerformanceNetworkInterface createPerformanceNetworkInterface() {
-		PerformanceNetworkInterfaceImpl performanceNetworkInterface = new PerformanceNetworkInterfaceImpl();
-		return performanceNetworkInterface;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SdnFlowRule createSdnFlowRule() {
-		SdnFlowRuleImpl sdnFlowRule = new SdnFlowRuleImpl();
-		return sdnFlowRule;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SdnController createSdnController() {
-		SdnControllerImpl sdnController = new SdnControllerImpl();
-		return sdnController;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SdnControllerApplication createSdnControllerApplication() {
-		SdnControllerApplicationImpl sdnControllerApplication = new SdnControllerApplicationImpl();
-		return sdnControllerApplication;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Common createCommon() {
-		CommonImpl common = new CommonImpl();
-		return common;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SDN createSDN() {
-		SDNImpl sdn = new SDNImpl();
-		return sdn;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IntermediatePerformance createIntermediatePerformance() {
-		IntermediatePerformanceImpl intermediatePerformance = new IntermediatePerformanceImpl();
-		return intermediatePerformance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EndPerformance createEndPerformance() {
-		EndPerformanceImpl endPerformance = new EndPerformanceImpl();
-		return endPerformance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PerformanceSdnNode createPerformanceSdnNode() {
-		PerformanceSdnNodeImpl performanceSdnNode = new PerformanceSdnNodeImpl();
-		return performanceSdnNode;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SpeedUnit createSpeedUnit() {
-		SpeedUnitImpl speedUnit = new SpeedUnitImpl();
-		return speedUnit;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DataUnit createDataUnit() {
-		DataUnitImpl dataUnit = new DataUnitImpl();
-		return dataUnit;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public TimeUnit createTimeUnit() {
-		TimeUnitImpl timeUnit = new TimeUnitImpl();
-		return timeUnit;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ConstantDoubleVariable createConstantDoubleVariable() {
-		ConstantDoubleVariableImpl constantDoubleVariable = new ConstantDoubleVariableImpl();
-		return constantDoubleVariable;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ConstantLongVariable createConstantLongVariable() {
-		ConstantLongVariableImpl constantLongVariable = new ConstantLongVariableImpl();
-		return constantLongVariable;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public RandomVariable createRandomVariable() {
-		RandomVariableImpl randomVariable = new RandomVariableImpl();
-		return randomVariable;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public FloatCoordinate createFloatCoordinate() {
-		FloatCoordinateImpl floatCoordinate = new FloatCoordinateImpl();
-		return floatCoordinate;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DiscreteFunction createDiscreteFunction() {
-		DiscreteFunctionImpl discreteFunction = new DiscreteFunctionImpl();
-		return discreteFunction;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ExponentialFunction createExponentialFunction() {
-		ExponentialFunctionImpl exponentialFunction = new ExponentialFunctionImpl();
-		return exponentialFunction;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EntityTypes createEntityTypes() {
-		EntityTypesImpl entityTypes = new EntityTypesImpl();
-		return entityTypes;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NodeType createNodeType() {
-		NodeTypeImpl nodeType = new NodeTypeImpl();
-		return nodeType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EndPerformanceType createEndPerformanceType() {
-		EndPerformanceTypeImpl endPerformanceType = new EndPerformanceTypeImpl();
-		return endPerformanceType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IntermediatePerformanceType createIntermediatePerformanceType() {
-		IntermediatePerformanceTypeImpl intermediatePerformanceType = new IntermediatePerformanceTypeImpl();
-		return intermediatePerformanceType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SdnNodePerformanceType createSdnNodePerformanceType() {
-		SdnNodePerformanceTypeImpl sdnNodePerformanceType = new SdnNodePerformanceTypeImpl();
-		return sdnNodePerformanceType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterfaceType createNetworkInterfaceType() {
-		NetworkInterfaceTypeImpl networkInterfaceType = new NetworkInterfaceTypeImpl();
-		return networkInterfaceType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterfacePerformanceType createNetworkInterfacePerformanceType() {
-		NetworkInterfacePerformanceTypeImpl networkInterfacePerformanceType = new NetworkInterfacePerformanceTypeImpl();
-		return networkInterfacePerformanceType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LinkType createLinkType() {
-		LinkTypeImpl linkType = new LinkTypeImpl();
-		return linkType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LinkPerformanceType createLinkPerformanceType() {
-		LinkPerformanceTypeImpl linkPerformanceType = new LinkPerformanceTypeImpl();
-		return linkPerformanceType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public UnitPrefix createUnitPrefixFromString(EDataType eDataType, String initialValue) {
-		UnitPrefix result = UnitPrefix.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 convertUnitPrefixToString(EDataType eDataType, Object instanceValue) {
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Speed createSpeedFromString(EDataType eDataType, String initialValue) {
-		Speed result = Speed.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 convertSpeedToString(EDataType eDataType, Object instanceValue) {
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Time createTimeFromString(EDataType eDataType, String initialValue) {
-		Time result = Time.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 convertTimeToString(EDataType eDataType, Object instanceValue) {
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DNIPackage getDNIPackage() {
-		return (DNIPackage)getEPackage();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @deprecated
-	 * @generated
-	 */
-	@Deprecated
-	public static DNIPackage getPackage() {
-		return DNIPackage.eINSTANCE;
-	}
-
-} //DNIFactoryImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DNIPackageImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DNIPackageImpl.java
deleted file mode 100644
index 50aa37a8..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DNIPackageImpl.java
+++ /dev/null
@@ -1,3420 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-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.EReference;
-import org.eclipse.emf.ecore.EcorePackage;
-
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-
-import tools.descartes.dni.dnimm3.AbstractAction;
-import tools.descartes.dni.dnimm3.AddressableEntity;
-import tools.descartes.dni.dnimm3.BranchAction;
-import tools.descartes.dni.dnimm3.Common;
-import tools.descartes.dni.dnimm3.CommunicatingApplication;
-import tools.descartes.dni.dnimm3.ConstantDoubleVariable;
-import tools.descartes.dni.dnimm3.ConstantLongVariable;
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.DNIUnit;
-import tools.descartes.dni.dnimm3.DataUnit;
-import tools.descartes.dni.dnimm3.Dependency;
-import tools.descartes.dni.dnimm3.Direction;
-import tools.descartes.dni.dnimm3.DiscreteFunction;
-import tools.descartes.dni.dnimm3.End;
-import tools.descartes.dni.dnimm3.EndPerformance;
-import tools.descartes.dni.dnimm3.EndPerformanceType;
-import tools.descartes.dni.dnimm3.Entity;
-import tools.descartes.dni.dnimm3.EntityAddress;
-import tools.descartes.dni.dnimm3.EntityTypes;
-import tools.descartes.dni.dnimm3.ExponentialFunction;
-import tools.descartes.dni.dnimm3.FloatCoordinate;
-import tools.descartes.dni.dnimm3.Flow;
-import tools.descartes.dni.dnimm3.FlowRoute;
-import tools.descartes.dni.dnimm3.FlowTraffic;
-import tools.descartes.dni.dnimm3.Function;
-import tools.descartes.dni.dnimm3.GenericFlowTraffic;
-import tools.descartes.dni.dnimm3.GenericWorkload;
-import tools.descartes.dni.dnimm3.Hop;
-import tools.descartes.dni.dnimm3.IType;
-import tools.descartes.dni.dnimm3.ITypedEntity;
-import tools.descartes.dni.dnimm3.Identifier;
-import tools.descartes.dni.dnimm3.Intermediate;
-import tools.descartes.dni.dnimm3.IntermediatePerformance;
-import tools.descartes.dni.dnimm3.IntermediatePerformanceType;
-import tools.descartes.dni.dnimm3.Link;
-import tools.descartes.dni.dnimm3.LinkPerformanceType;
-import tools.descartes.dni.dnimm3.LinkType;
-import tools.descartes.dni.dnimm3.LoopAction;
-import tools.descartes.dni.dnimm3.NamedElement;
-import tools.descartes.dni.dnimm3.NetworkConfiguration;
-import tools.descartes.dni.dnimm3.NetworkInfrastructure;
-import tools.descartes.dni.dnimm3.NetworkInterface;
-import tools.descartes.dni.dnimm3.NetworkInterfacePerformanceType;
-import tools.descartes.dni.dnimm3.NetworkInterfaceType;
-import tools.descartes.dni.dnimm3.NetworkProtocol;
-import tools.descartes.dni.dnimm3.NetworkStructure;
-import tools.descartes.dni.dnimm3.NetworkTraffic;
-import tools.descartes.dni.dnimm3.Node;
-import tools.descartes.dni.dnimm3.NodeType;
-import tools.descartes.dni.dnimm3.PerformanceLink;
-import tools.descartes.dni.dnimm3.PerformanceNetworkInterface;
-import tools.descartes.dni.dnimm3.PerformanceSdnNode;
-import tools.descartes.dni.dnimm3.PerformanceSpecification;
-import tools.descartes.dni.dnimm3.ProtocolLayer;
-import tools.descartes.dni.dnimm3.ProtocolStack;
-import tools.descartes.dni.dnimm3.ProtocolsRepository;
-import tools.descartes.dni.dnimm3.RandomVariable;
-import tools.descartes.dni.dnimm3.Route;
-import tools.descartes.dni.dnimm3.RoutesRepository;
-import tools.descartes.dni.dnimm3.SdnControlFlow;
-import tools.descartes.dni.dnimm3.SdnController;
-import tools.descartes.dni.dnimm3.SdnControllerApplication;
-import tools.descartes.dni.dnimm3.SdnFlowRule;
-import tools.descartes.dni.dnimm3.SdnNodePerformanceType;
-import tools.descartes.dni.dnimm3.SequenceAction;
-import tools.descartes.dni.dnimm3.Speed;
-import tools.descartes.dni.dnimm3.SpeedUnit;
-import tools.descartes.dni.dnimm3.StartAction;
-import tools.descartes.dni.dnimm3.StopAction;
-import tools.descartes.dni.dnimm3.Time;
-import tools.descartes.dni.dnimm3.TimeUnit;
-import tools.descartes.dni.dnimm3.TrafficSource;
-import tools.descartes.dni.dnimm3.TransmitAction;
-import tools.descartes.dni.dnimm3.UnitPrefix;
-import tools.descartes.dni.dnimm3.Variable;
-import tools.descartes.dni.dnimm3.WaitAction;
-import tools.descartes.dni.dnimm3.Workload;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Package</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class DNIPackageImpl extends EPackageImpl implements DNIPackage {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass namedElementEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass identifierEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass entityEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass networkInfrastructureEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass networkStructureEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass nodeEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass endEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass intermediateEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass linkEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass networkInterfaceEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass networkTrafficEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass flowEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass sdnControlFlowEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass flowTrafficEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass genericFlowTrafficEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass communicatingApplicationEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass trafficSourceEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass networkConfigurationEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass protocolsRepositoryEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass protocolStackEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass protocolLayerEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass networkProtocolEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass routesRepositoryEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass directionEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass flowRouteEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass routeEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass hopEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass entityAddressEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass addressableEntityEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass workloadEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass genericWorkloadEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass abstractActionEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass branchActionEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass loopActionEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass sequenceActionEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass startActionEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass stopActionEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass transmitActionEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass waitActionEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass performanceSpecificationEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass performanceLinkEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass performanceNetworkInterfaceEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass sdnFlowRuleEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass sdnControllerEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass sdnControllerApplicationEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass iTypeEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass commonEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass sdnEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass intermediatePerformanceEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass endPerformanceEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass performanceSdnNodeEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass dniUnitEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass speedUnitEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass dataUnitEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass timeUnitEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass dependencyEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass variableEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass functionEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass constantDoubleVariableEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass constantLongVariableEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass randomVariableEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass floatCoordinateEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass discreteFunctionEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass exponentialFunctionEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass entityTypesEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass iTypedEntityEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass nodeTypeEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass endPerformanceTypeEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass intermediatePerformanceTypeEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass sdnNodePerformanceTypeEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass networkInterfaceTypeEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass networkInterfacePerformanceTypeEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass linkTypeEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass linkPerformanceTypeEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EEnum unitPrefixEEnum = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EEnum speedEEnum = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EEnum timeEEnum = 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 tools.descartes.dni.dnimm3.DNIPackage#eNS_URI
-	 * @see #init()
-	 * @generated
-	 */
-	private DNIPackageImpl() {
-		super(eNS_URI, DNIFactory.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 DNIPackage#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 DNIPackage init() {
-		if (isInited) return (DNIPackage)EPackage.Registry.INSTANCE.getEPackage(DNIPackage.eNS_URI);
-
-		// Obtain or create and register package
-		DNIPackageImpl theDNIPackage = (DNIPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof DNIPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new DNIPackageImpl());
-
-		isInited = true;
-
-		// Initialize simple dependencies
-		EcorePackage.eINSTANCE.eClass();
-
-		// Create package meta-data objects
-		theDNIPackage.createPackageContents();
-
-		// Initialize created meta-data
-		theDNIPackage.initializePackageContents();
-
-		// Mark meta-data to indicate it can't be changed
-		theDNIPackage.freeze();
-
-  
-		// Update the registry and return the package
-		EPackage.Registry.INSTANCE.put(DNIPackage.eNS_URI, theDNIPackage);
-		return theDNIPackage;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getNamedElement() {
-		return namedElementEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getNamedElement_Name() {
-		return (EAttribute)namedElementEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getNamedElement_Description() {
-		return (EAttribute)namedElementEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getIdentifier() {
-		return identifierEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getIdentifier_Uid() {
-		return (EAttribute)identifierEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getIdentifier_Uid_generated() {
-		return (EAttribute)identifierEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getEntity() {
-		return entityEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getNetworkInfrastructure() {
-		return networkInfrastructureEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNetworkInfrastructure_Traffic() {
-		return (EReference)networkInfrastructureEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNetworkInfrastructure_Structure() {
-		return (EReference)networkInfrastructureEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNetworkInfrastructure_Configuration() {
-		return (EReference)networkInfrastructureEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNetworkInfrastructure_EntityTypes() {
-		return (EReference)networkInfrastructureEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getNetworkInfrastructure_DataCenterName() {
-		return (EAttribute)networkInfrastructureEClass.getEStructuralFeatures().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getNetworkInfrastructure_MetaModelVersion() {
-		return (EAttribute)networkInfrastructureEClass.getEStructuralFeatures().get(5);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getNetworkStructure() {
-		return networkStructureEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNetworkStructure_Nodes() {
-		return (EReference)networkStructureEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNetworkStructure_Links() {
-		return (EReference)networkStructureEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getNode() {
-		return nodeEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNode_Interfaces() {
-		return (EReference)nodeEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNode_Sdntype() {
-		return (EReference)nodeEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getNode_IsPhysical() {
-		return (EAttribute)nodeEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getNode_IsPhysical_derived() {
-		return (EAttribute)nodeEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNode_Hosts() {
-		return (EReference)nodeEClass.getEStructuralFeatures().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNode_IsHostedOn() {
-		return (EReference)nodeEClass.getEStructuralFeatures().get(5);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNode_End() {
-		return (EReference)nodeEClass.getEStructuralFeatures().get(6);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNode_Intermediate() {
-		return (EReference)nodeEClass.getEStructuralFeatures().get(7);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNode_EntityType() {
-		return (EReference)nodeEClass.getEStructuralFeatures().get(8);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getEnd() {
-		return endEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getEnd_Performance() {
-		return (EReference)endEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getEnd_Software() {
-		return (EReference)endEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getEnd_Node() {
-		return (EReference)endEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getEnd_Name() {
-		return (EAttribute)endEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getIntermediate() {
-		return intermediateEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getIntermediate_Performance() {
-		return (EReference)intermediateEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getIntermediate_Node() {
-		return (EReference)intermediateEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getIntermediate_Name() {
-		return (EAttribute)intermediateEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getLink() {
-		return linkEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getLink_Connects() {
-		return (EReference)linkEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getLink_Performance() {
-		return (EReference)linkEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getLink_Name_generated() {
-		return (EAttribute)linkEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getLink_EntityType() {
-		return (EReference)linkEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getNetworkInterface() {
-		return networkInterfaceEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNetworkInterface_UsedProtocolStack() {
-		return (EReference)networkInterfaceEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNetworkInterface_Performance() {
-		return (EReference)networkInterfaceEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNetworkInterface_Node() {
-		return (EReference)networkInterfaceEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getNetworkInterface_Name_generated() {
-		return (EAttribute)networkInterfaceEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNetworkInterface_EntityType() {
-		return (EReference)networkInterfaceEClass.getEStructuralFeatures().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getNetworkTraffic() {
-		return networkTrafficEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNetworkTraffic_Flows() {
-		return (EReference)networkTrafficEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNetworkTraffic_Software() {
-		return (EReference)networkTrafficEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getFlow() {
-		return flowEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getFlow_SourceSoftware() {
-		return (EReference)flowEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getFlow_GeneratedTraffic() {
-		return (EReference)flowEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getFlow_DestinationSoftware() {
-		return (EReference)flowEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getFlow_DestinationAddresses() {
-		return (EReference)flowEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getSdnControlFlow() {
-		return sdnControlFlowEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getSdnControlFlow_ParentFlow() {
-		return (EReference)sdnControlFlowEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getFlowTraffic() {
-		return flowTrafficEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getFlowTraffic_Flow() {
-		return (EReference)flowTrafficEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getFlowTraffic_Name() {
-		return (EAttribute)flowTrafficEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getGenericFlowTraffic() {
-		return genericFlowTrafficEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getGenericFlowTraffic_DataSize() {
-		return (EReference)genericFlowTrafficEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getCommunicatingApplication() {
-		return communicatingApplicationEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getCommunicatingApplication_TrafficSources() {
-		return (EReference)communicatingApplicationEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getCommunicatingApplication_DeployedOn() {
-		return (EReference)communicatingApplicationEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getTrafficSource() {
-		return trafficSourceEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getTrafficSource_Workload() {
-		return (EReference)trafficSourceEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getTrafficSource_SoftwareComponent() {
-		return (EReference)trafficSourceEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getNetworkConfiguration() {
-		return networkConfigurationEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNetworkConfiguration_ProtocolsAndStacks() {
-		return (EReference)networkConfigurationEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNetworkConfiguration_Routes() {
-		return (EReference)networkConfigurationEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNetworkConfiguration_Rules() {
-		return (EReference)networkConfigurationEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getProtocolsRepository() {
-		return protocolsRepositoryEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getProtocolsRepository_Stacks() {
-		return (EReference)protocolsRepositoryEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getProtocolsRepository_Protocols() {
-		return (EReference)protocolsRepositoryEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getProtocolStack() {
-		return protocolStackEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getProtocolStack_Layers() {
-		return (EReference)protocolStackEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getProtocolLayer() {
-		return protocolLayerEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getProtocolLayer_Protocol() {
-		return (EReference)protocolLayerEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getProtocolLayer_IsCarriedBy() {
-		return (EReference)protocolLayerEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getProtocolLayer_Carries() {
-		return (EReference)protocolLayerEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getNetworkProtocol() {
-		return networkProtocolEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getNetworkProtocol_Mtu() {
-		return (EAttribute)networkProtocolEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getNetworkProtocol_HeadersLength() {
-		return (EAttribute)networkProtocolEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getRoutesRepository() {
-		return routesRepositoryEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getRoutesRepository_Routes() {
-		return (EReference)routesRepositoryEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getRoutesRepository_FlowRoutes() {
-		return (EReference)routesRepositoryEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getRoutesRepository_Directions() {
-		return (EReference)routesRepositoryEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getDirection() {
-		return directionEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getDirection_OnNode() {
-		return (EReference)directionEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getDirection_Flow() {
-		return (EReference)directionEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getDirection_Via() {
-		return (EReference)directionEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getDirection_Default() {
-		return (EAttribute)directionEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getDirection_Probability() {
-		return (EAttribute)directionEClass.getEStructuralFeatures().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getFlowRoute() {
-		return flowRouteEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getFlowRoute_Hops() {
-		return (EReference)flowRouteEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getFlowRoute_Flow() {
-		return (EReference)flowRouteEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getFlowRoute_Start() {
-		return (EReference)flowRouteEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getFlowRoute_End() {
-		return (EReference)flowRouteEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getFlowRoute_Probability() {
-		return (EAttribute)flowRouteEClass.getEStructuralFeatures().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getRoute() {
-		return routeEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getRoute_Hops() {
-		return (EReference)routeEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getRoute_Start() {
-		return (EReference)routeEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getRoute_End() {
-		return (EReference)routeEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getHop() {
-		return hopEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getHop_NextHop() {
-		return (EReference)hopEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getHop_Interfaceref() {
-		return (EReference)hopEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getEntityAddress() {
-		return entityAddressEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getEntityAddress_Address() {
-		return (EAttribute)entityAddressEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getEntityAddress_AddressGivenBy() {
-		return (EReference)entityAddressEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAddressableEntity() {
-		return addressableEntityEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAddressableEntity_Addresses() {
-		return (EReference)addressableEntityEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getWorkload() {
-		return workloadEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getGenericWorkload() {
-		return genericWorkloadEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getGenericWorkload_Actions() {
-		return (EReference)genericWorkloadEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAbstractAction() {
-		return abstractActionEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getBranchAction() {
-		return branchActionEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getBranchAction_Intern() {
-		return (EReference)branchActionEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getLoopAction() {
-		return loopActionEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getLoopAction_Intern() {
-		return (EReference)loopActionEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getLoopAction_NumIterations() {
-		return (EReference)loopActionEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getSequenceAction() {
-		return sequenceActionEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getSequenceAction_Intern() {
-		return (EReference)sequenceActionEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getStartAction() {
-		return startActionEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getStopAction() {
-		return stopActionEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getTransmitAction() {
-		return transmitActionEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getTransmitAction_FlowTraffic() {
-		return (EReference)transmitActionEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getWaitAction() {
-		return waitActionEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getWaitAction_WaitTime() {
-		return (EReference)waitActionEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getPerformanceSpecification() {
-		return performanceSpecificationEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getPerformanceLink() {
-		return performanceLinkEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getPerformanceLink_PropagationDelay() {
-		return (EReference)performanceLinkEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getPerformanceLink_MaxSupportedBandwidth() {
-		return (EReference)performanceLinkEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getPerformanceLink_EntityType() {
-		return (EReference)performanceLinkEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getPerformanceNetworkInterface() {
-		return performanceNetworkInterfaceEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPerformanceNetworkInterface_IsUp() {
-		return (EAttribute)performanceNetworkInterfaceEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPerformanceNetworkInterface_MTU() {
-		return (EAttribute)performanceNetworkInterfaceEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getPerformanceNetworkInterface_PacketProcessingTime() {
-		return (EReference)performanceNetworkInterfaceEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getPerformanceNetworkInterface_InterfaceThroughput() {
-		return (EReference)performanceNetworkInterfaceEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getPerformanceNetworkInterface_EntityType() {
-		return (EReference)performanceNetworkInterfaceEClass.getEStructuralFeatures().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getSdnFlowRule() {
-		return sdnFlowRuleEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getSdnFlowRule_SdnSwitch() {
-		return (EReference)sdnFlowRuleEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getSdnFlowRule_Flow() {
-		return (EReference)sdnFlowRuleEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getSdnFlowRule_ProbabilityHardware() {
-		return (EAttribute)sdnFlowRuleEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getSdnFlowRule_ProbabilitySoftware() {
-		return (EAttribute)sdnFlowRuleEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getSdnFlowRule_ProbabilityController() {
-		return (EAttribute)sdnFlowRuleEClass.getEStructuralFeatures().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getSdnFlowRule_ControllerApplication() {
-		return (EReference)sdnFlowRuleEClass.getEStructuralFeatures().get(5);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getSdnController() {
-		return sdnControllerEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getSdnController_Applications() {
-		return (EReference)sdnControllerEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getSdnController_Nodes() {
-		return (EReference)sdnControllerEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getSdnControllerApplication() {
-		return sdnControllerApplicationEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getSdnControllerApplication_BelongsTo() {
-		return (EReference)sdnControllerApplicationEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getSdnControllerApplication_IsDefault() {
-		return (EAttribute)sdnControllerApplicationEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getSdnControllerApplication_ResponseDelay() {
-		return (EReference)sdnControllerApplicationEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getIType() {
-		return iTypeEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getCommon() {
-		return commonEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getSDN() {
-		return sdnEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getSDN_Performance() {
-		return (EReference)sdnEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getSDN_Controller() {
-		return (EReference)sdnEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getSDN_OpenFlowEndPoint() {
-		return (EReference)sdnEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getIntermediatePerformance() {
-		return intermediatePerformanceEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getIntermediatePerformance_ForwardingLatency() {
-		return (EReference)intermediatePerformanceEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getIntermediatePerformance_ForwardingBandwidthBPS() {
-		return (EReference)intermediatePerformanceEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getIntermediatePerformance_SwitchingCapacityPPS() {
-		return (EReference)intermediatePerformanceEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getIntermediatePerformance_EntityType() {
-		return (EReference)intermediatePerformanceEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getEndPerformance() {
-		return endPerformanceEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getEndPerformance_SoftwareLayersDelay() {
-		return (EReference)endPerformanceEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getEndPerformance_EntityType() {
-		return (EReference)endPerformanceEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getPerformanceSdnNode() {
-		return performanceSdnNodeEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getPerformanceSdnNode_SoftwareSwitchingPerformance() {
-		return (EReference)performanceSdnNodeEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getPerformanceSdnNode_HardwareSwitchingPerformance() {
-		return (EReference)performanceSdnNodeEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getPerformanceSdnNode_EntityType() {
-		return (EReference)performanceSdnNodeEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getDNIUnit() {
-		return dniUnitEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getSpeedUnit() {
-		return speedUnitEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getSpeedUnit_Unit() {
-		return (EAttribute)speedUnitEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getSpeedUnit_Prefix() {
-		return (EAttribute)speedUnitEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getDataUnit() {
-		return dataUnitEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getDataUnit_Prefix() {
-		return (EAttribute)dataUnitEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getTimeUnit() {
-		return timeUnitEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getTimeUnit_Unit() {
-		return (EAttribute)timeUnitEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getDependency() {
-		return dependencyEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getDependency_Unit() {
-		return (EReference)dependencyEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getVariable() {
-		return variableEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getFunction() {
-		return functionEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getConstantDoubleVariable() {
-		return constantDoubleVariableEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getConstantDoubleVariable_Value() {
-		return (EAttribute)constantDoubleVariableEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getConstantLongVariable() {
-		return constantLongVariableEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getConstantLongVariable_Value() {
-		return (EAttribute)constantLongVariableEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getRandomVariable() {
-		return randomVariableEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getRandomVariable_Cdf() {
-		return (EReference)randomVariableEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getFloatCoordinate() {
-		return floatCoordinateEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getFloatCoordinate_X() {
-		return (EAttribute)floatCoordinateEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getFloatCoordinate_Y() {
-		return (EAttribute)floatCoordinateEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getDiscreteFunction() {
-		return discreteFunctionEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getDiscreteFunction_Vals() {
-		return (EReference)discreteFunctionEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getExponentialFunction() {
-		return exponentialFunctionEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getExponentialFunction_Lambda() {
-		return (EAttribute)exponentialFunctionEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getEntityTypes() {
-		return entityTypesEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getEntityTypes_Types() {
-		return (EReference)entityTypesEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getITypedEntity() {
-		return iTypedEntityEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getNodeType() {
-		return nodeTypeEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNodeType_Entities() {
-		return (EReference)nodeTypeEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getEndPerformanceType() {
-		return endPerformanceTypeEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getEndPerformanceType_Entities() {
-		return (EReference)endPerformanceTypeEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getIntermediatePerformanceType() {
-		return intermediatePerformanceTypeEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getIntermediatePerformanceType_Entities() {
-		return (EReference)intermediatePerformanceTypeEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getSdnNodePerformanceType() {
-		return sdnNodePerformanceTypeEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getSdnNodePerformanceType_Entities() {
-		return (EReference)sdnNodePerformanceTypeEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getNetworkInterfaceType() {
-		return networkInterfaceTypeEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNetworkInterfaceType_Entities() {
-		return (EReference)networkInterfaceTypeEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getNetworkInterfacePerformanceType() {
-		return networkInterfacePerformanceTypeEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNetworkInterfacePerformanceType_Entities() {
-		return (EReference)networkInterfacePerformanceTypeEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getLinkType() {
-		return linkTypeEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getLinkType_Entities() {
-		return (EReference)linkTypeEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getLinkPerformanceType() {
-		return linkPerformanceTypeEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getLinkPerformanceType_Entities() {
-		return (EReference)linkPerformanceTypeEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EEnum getUnitPrefix() {
-		return unitPrefixEEnum;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EEnum getSpeed() {
-		return speedEEnum;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EEnum getTime() {
-		return timeEEnum;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DNIFactory getDNIFactory() {
-		return (DNIFactory)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
-		namedElementEClass = createEClass(NAMED_ELEMENT);
-		createEAttribute(namedElementEClass, NAMED_ELEMENT__NAME);
-		createEAttribute(namedElementEClass, NAMED_ELEMENT__DESCRIPTION);
-
-		identifierEClass = createEClass(IDENTIFIER);
-		createEAttribute(identifierEClass, IDENTIFIER__UID);
-		createEAttribute(identifierEClass, IDENTIFIER__UID_GENERATED);
-
-		entityEClass = createEClass(ENTITY);
-
-		networkInfrastructureEClass = createEClass(NETWORK_INFRASTRUCTURE);
-		createEReference(networkInfrastructureEClass, NETWORK_INFRASTRUCTURE__TRAFFIC);
-		createEReference(networkInfrastructureEClass, NETWORK_INFRASTRUCTURE__STRUCTURE);
-		createEReference(networkInfrastructureEClass, NETWORK_INFRASTRUCTURE__CONFIGURATION);
-		createEReference(networkInfrastructureEClass, NETWORK_INFRASTRUCTURE__ENTITY_TYPES);
-		createEAttribute(networkInfrastructureEClass, NETWORK_INFRASTRUCTURE__DATA_CENTER_NAME);
-		createEAttribute(networkInfrastructureEClass, NETWORK_INFRASTRUCTURE__META_MODEL_VERSION);
-
-		networkStructureEClass = createEClass(NETWORK_STRUCTURE);
-		createEReference(networkStructureEClass, NETWORK_STRUCTURE__NODES);
-		createEReference(networkStructureEClass, NETWORK_STRUCTURE__LINKS);
-
-		nodeEClass = createEClass(NODE);
-		createEReference(nodeEClass, NODE__INTERFACES);
-		createEReference(nodeEClass, NODE__SDNTYPE);
-		createEAttribute(nodeEClass, NODE__IS_PHYSICAL);
-		createEAttribute(nodeEClass, NODE__IS_PHYSICAL_DERIVED);
-		createEReference(nodeEClass, NODE__HOSTS);
-		createEReference(nodeEClass, NODE__IS_HOSTED_ON);
-		createEReference(nodeEClass, NODE__END);
-		createEReference(nodeEClass, NODE__INTERMEDIATE);
-		createEReference(nodeEClass, NODE__ENTITY_TYPE);
-
-		endEClass = createEClass(END);
-		createEReference(endEClass, END__PERFORMANCE);
-		createEReference(endEClass, END__SOFTWARE);
-		createEReference(endEClass, END__NODE);
-		createEAttribute(endEClass, END__NAME);
-
-		intermediateEClass = createEClass(INTERMEDIATE);
-		createEReference(intermediateEClass, INTERMEDIATE__PERFORMANCE);
-		createEReference(intermediateEClass, INTERMEDIATE__NODE);
-		createEAttribute(intermediateEClass, INTERMEDIATE__NAME);
-
-		linkEClass = createEClass(LINK);
-		createEReference(linkEClass, LINK__CONNECTS);
-		createEReference(linkEClass, LINK__PERFORMANCE);
-		createEAttribute(linkEClass, LINK__NAME_GENERATED);
-		createEReference(linkEClass, LINK__ENTITY_TYPE);
-
-		networkInterfaceEClass = createEClass(NETWORK_INTERFACE);
-		createEReference(networkInterfaceEClass, NETWORK_INTERFACE__USED_PROTOCOL_STACK);
-		createEReference(networkInterfaceEClass, NETWORK_INTERFACE__PERFORMANCE);
-		createEReference(networkInterfaceEClass, NETWORK_INTERFACE__NODE);
-		createEAttribute(networkInterfaceEClass, NETWORK_INTERFACE__NAME_GENERATED);
-		createEReference(networkInterfaceEClass, NETWORK_INTERFACE__ENTITY_TYPE);
-
-		networkTrafficEClass = createEClass(NETWORK_TRAFFIC);
-		createEReference(networkTrafficEClass, NETWORK_TRAFFIC__FLOWS);
-		createEReference(networkTrafficEClass, NETWORK_TRAFFIC__SOFTWARE);
-
-		flowEClass = createEClass(FLOW);
-		createEReference(flowEClass, FLOW__SOURCE_SOFTWARE);
-		createEReference(flowEClass, FLOW__GENERATED_TRAFFIC);
-		createEReference(flowEClass, FLOW__DESTINATION_SOFTWARE);
-		createEReference(flowEClass, FLOW__DESTINATION_ADDRESSES);
-
-		sdnControlFlowEClass = createEClass(SDN_CONTROL_FLOW);
-		createEReference(sdnControlFlowEClass, SDN_CONTROL_FLOW__PARENT_FLOW);
-
-		flowTrafficEClass = createEClass(FLOW_TRAFFIC);
-		createEReference(flowTrafficEClass, FLOW_TRAFFIC__FLOW);
-		createEAttribute(flowTrafficEClass, FLOW_TRAFFIC__NAME);
-
-		genericFlowTrafficEClass = createEClass(GENERIC_FLOW_TRAFFIC);
-		createEReference(genericFlowTrafficEClass, GENERIC_FLOW_TRAFFIC__DATA_SIZE);
-
-		communicatingApplicationEClass = createEClass(COMMUNICATING_APPLICATION);
-		createEReference(communicatingApplicationEClass, COMMUNICATING_APPLICATION__TRAFFIC_SOURCES);
-		createEReference(communicatingApplicationEClass, COMMUNICATING_APPLICATION__DEPLOYED_ON);
-
-		trafficSourceEClass = createEClass(TRAFFIC_SOURCE);
-		createEReference(trafficSourceEClass, TRAFFIC_SOURCE__WORKLOAD);
-		createEReference(trafficSourceEClass, TRAFFIC_SOURCE__SOFTWARE_COMPONENT);
-
-		networkConfigurationEClass = createEClass(NETWORK_CONFIGURATION);
-		createEReference(networkConfigurationEClass, NETWORK_CONFIGURATION__PROTOCOLS_AND_STACKS);
-		createEReference(networkConfigurationEClass, NETWORK_CONFIGURATION__ROUTES);
-		createEReference(networkConfigurationEClass, NETWORK_CONFIGURATION__RULES);
-
-		protocolsRepositoryEClass = createEClass(PROTOCOLS_REPOSITORY);
-		createEReference(protocolsRepositoryEClass, PROTOCOLS_REPOSITORY__STACKS);
-		createEReference(protocolsRepositoryEClass, PROTOCOLS_REPOSITORY__PROTOCOLS);
-
-		protocolStackEClass = createEClass(PROTOCOL_STACK);
-		createEReference(protocolStackEClass, PROTOCOL_STACK__LAYERS);
-
-		protocolLayerEClass = createEClass(PROTOCOL_LAYER);
-		createEReference(protocolLayerEClass, PROTOCOL_LAYER__PROTOCOL);
-		createEReference(protocolLayerEClass, PROTOCOL_LAYER__IS_CARRIED_BY);
-		createEReference(protocolLayerEClass, PROTOCOL_LAYER__CARRIES);
-
-		networkProtocolEClass = createEClass(NETWORK_PROTOCOL);
-		createEAttribute(networkProtocolEClass, NETWORK_PROTOCOL__MTU);
-		createEAttribute(networkProtocolEClass, NETWORK_PROTOCOL__HEADERS_LENGTH);
-
-		routesRepositoryEClass = createEClass(ROUTES_REPOSITORY);
-		createEReference(routesRepositoryEClass, ROUTES_REPOSITORY__ROUTES);
-		createEReference(routesRepositoryEClass, ROUTES_REPOSITORY__FLOW_ROUTES);
-		createEReference(routesRepositoryEClass, ROUTES_REPOSITORY__DIRECTIONS);
-
-		directionEClass = createEClass(DIRECTION);
-		createEReference(directionEClass, DIRECTION__ON_NODE);
-		createEReference(directionEClass, DIRECTION__FLOW);
-		createEReference(directionEClass, DIRECTION__VIA);
-		createEAttribute(directionEClass, DIRECTION__DEFAULT);
-		createEAttribute(directionEClass, DIRECTION__PROBABILITY);
-
-		flowRouteEClass = createEClass(FLOW_ROUTE);
-		createEReference(flowRouteEClass, FLOW_ROUTE__HOPS);
-		createEReference(flowRouteEClass, FLOW_ROUTE__FLOW);
-		createEReference(flowRouteEClass, FLOW_ROUTE__START);
-		createEReference(flowRouteEClass, FLOW_ROUTE__END);
-		createEAttribute(flowRouteEClass, FLOW_ROUTE__PROBABILITY);
-
-		routeEClass = createEClass(ROUTE);
-		createEReference(routeEClass, ROUTE__HOPS);
-		createEReference(routeEClass, ROUTE__START);
-		createEReference(routeEClass, ROUTE__END);
-
-		hopEClass = createEClass(HOP);
-		createEReference(hopEClass, HOP__NEXT_HOP);
-		createEReference(hopEClass, HOP__INTERFACEREF);
-
-		entityAddressEClass = createEClass(ENTITY_ADDRESS);
-		createEAttribute(entityAddressEClass, ENTITY_ADDRESS__ADDRESS);
-		createEReference(entityAddressEClass, ENTITY_ADDRESS__ADDRESS_GIVEN_BY);
-
-		addressableEntityEClass = createEClass(ADDRESSABLE_ENTITY);
-		createEReference(addressableEntityEClass, ADDRESSABLE_ENTITY__ADDRESSES);
-
-		workloadEClass = createEClass(WORKLOAD);
-
-		genericWorkloadEClass = createEClass(GENERIC_WORKLOAD);
-		createEReference(genericWorkloadEClass, GENERIC_WORKLOAD__ACTIONS);
-
-		abstractActionEClass = createEClass(ABSTRACT_ACTION);
-
-		branchActionEClass = createEClass(BRANCH_ACTION);
-		createEReference(branchActionEClass, BRANCH_ACTION__INTERN);
-
-		loopActionEClass = createEClass(LOOP_ACTION);
-		createEReference(loopActionEClass, LOOP_ACTION__INTERN);
-		createEReference(loopActionEClass, LOOP_ACTION__NUM_ITERATIONS);
-
-		sequenceActionEClass = createEClass(SEQUENCE_ACTION);
-		createEReference(sequenceActionEClass, SEQUENCE_ACTION__INTERN);
-
-		startActionEClass = createEClass(START_ACTION);
-
-		stopActionEClass = createEClass(STOP_ACTION);
-
-		transmitActionEClass = createEClass(TRANSMIT_ACTION);
-		createEReference(transmitActionEClass, TRANSMIT_ACTION__FLOW_TRAFFIC);
-
-		waitActionEClass = createEClass(WAIT_ACTION);
-		createEReference(waitActionEClass, WAIT_ACTION__WAIT_TIME);
-
-		performanceSpecificationEClass = createEClass(PERFORMANCE_SPECIFICATION);
-
-		performanceLinkEClass = createEClass(PERFORMANCE_LINK);
-		createEReference(performanceLinkEClass, PERFORMANCE_LINK__PROPAGATION_DELAY);
-		createEReference(performanceLinkEClass, PERFORMANCE_LINK__MAX_SUPPORTED_BANDWIDTH);
-		createEReference(performanceLinkEClass, PERFORMANCE_LINK__ENTITY_TYPE);
-
-		performanceNetworkInterfaceEClass = createEClass(PERFORMANCE_NETWORK_INTERFACE);
-		createEAttribute(performanceNetworkInterfaceEClass, PERFORMANCE_NETWORK_INTERFACE__IS_UP);
-		createEAttribute(performanceNetworkInterfaceEClass, PERFORMANCE_NETWORK_INTERFACE__MTU);
-		createEReference(performanceNetworkInterfaceEClass, PERFORMANCE_NETWORK_INTERFACE__PACKET_PROCESSING_TIME);
-		createEReference(performanceNetworkInterfaceEClass, PERFORMANCE_NETWORK_INTERFACE__INTERFACE_THROUGHPUT);
-		createEReference(performanceNetworkInterfaceEClass, PERFORMANCE_NETWORK_INTERFACE__ENTITY_TYPE);
-
-		sdnFlowRuleEClass = createEClass(SDN_FLOW_RULE);
-		createEReference(sdnFlowRuleEClass, SDN_FLOW_RULE__SDN_SWITCH);
-		createEReference(sdnFlowRuleEClass, SDN_FLOW_RULE__FLOW);
-		createEAttribute(sdnFlowRuleEClass, SDN_FLOW_RULE__PROBABILITY_HARDWARE);
-		createEAttribute(sdnFlowRuleEClass, SDN_FLOW_RULE__PROBABILITY_SOFTWARE);
-		createEAttribute(sdnFlowRuleEClass, SDN_FLOW_RULE__PROBABILITY_CONTROLLER);
-		createEReference(sdnFlowRuleEClass, SDN_FLOW_RULE__CONTROLLER_APPLICATION);
-
-		sdnControllerEClass = createEClass(SDN_CONTROLLER);
-		createEReference(sdnControllerEClass, SDN_CONTROLLER__APPLICATIONS);
-		createEReference(sdnControllerEClass, SDN_CONTROLLER__NODES);
-
-		sdnControllerApplicationEClass = createEClass(SDN_CONTROLLER_APPLICATION);
-		createEReference(sdnControllerApplicationEClass, SDN_CONTROLLER_APPLICATION__BELONGS_TO);
-		createEAttribute(sdnControllerApplicationEClass, SDN_CONTROLLER_APPLICATION__IS_DEFAULT);
-		createEReference(sdnControllerApplicationEClass, SDN_CONTROLLER_APPLICATION__RESPONSE_DELAY);
-
-		iTypeEClass = createEClass(ITYPE);
-
-		commonEClass = createEClass(COMMON);
-
-		sdnEClass = createEClass(SDN);
-		createEReference(sdnEClass, SDN__PERFORMANCE);
-		createEReference(sdnEClass, SDN__CONTROLLER);
-		createEReference(sdnEClass, SDN__OPEN_FLOW_END_POINT);
-
-		intermediatePerformanceEClass = createEClass(INTERMEDIATE_PERFORMANCE);
-		createEReference(intermediatePerformanceEClass, INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY);
-		createEReference(intermediatePerformanceEClass, INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS);
-		createEReference(intermediatePerformanceEClass, INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS);
-		createEReference(intermediatePerformanceEClass, INTERMEDIATE_PERFORMANCE__ENTITY_TYPE);
-
-		endPerformanceEClass = createEClass(END_PERFORMANCE);
-		createEReference(endPerformanceEClass, END_PERFORMANCE__SOFTWARE_LAYERS_DELAY);
-		createEReference(endPerformanceEClass, END_PERFORMANCE__ENTITY_TYPE);
-
-		performanceSdnNodeEClass = createEClass(PERFORMANCE_SDN_NODE);
-		createEReference(performanceSdnNodeEClass, PERFORMANCE_SDN_NODE__SOFTWARE_SWITCHING_PERFORMANCE);
-		createEReference(performanceSdnNodeEClass, PERFORMANCE_SDN_NODE__HARDWARE_SWITCHING_PERFORMANCE);
-		createEReference(performanceSdnNodeEClass, PERFORMANCE_SDN_NODE__ENTITY_TYPE);
-
-		dniUnitEClass = createEClass(DNI_UNIT);
-
-		speedUnitEClass = createEClass(SPEED_UNIT);
-		createEAttribute(speedUnitEClass, SPEED_UNIT__UNIT);
-		createEAttribute(speedUnitEClass, SPEED_UNIT__PREFIX);
-
-		dataUnitEClass = createEClass(DATA_UNIT);
-		createEAttribute(dataUnitEClass, DATA_UNIT__PREFIX);
-
-		timeUnitEClass = createEClass(TIME_UNIT);
-		createEAttribute(timeUnitEClass, TIME_UNIT__UNIT);
-
-		dependencyEClass = createEClass(DEPENDENCY);
-		createEReference(dependencyEClass, DEPENDENCY__UNIT);
-
-		variableEClass = createEClass(VARIABLE);
-
-		functionEClass = createEClass(FUNCTION);
-
-		constantDoubleVariableEClass = createEClass(CONSTANT_DOUBLE_VARIABLE);
-		createEAttribute(constantDoubleVariableEClass, CONSTANT_DOUBLE_VARIABLE__VALUE);
-
-		constantLongVariableEClass = createEClass(CONSTANT_LONG_VARIABLE);
-		createEAttribute(constantLongVariableEClass, CONSTANT_LONG_VARIABLE__VALUE);
-
-		randomVariableEClass = createEClass(RANDOM_VARIABLE);
-		createEReference(randomVariableEClass, RANDOM_VARIABLE__CDF);
-
-		floatCoordinateEClass = createEClass(FLOAT_COORDINATE);
-		createEAttribute(floatCoordinateEClass, FLOAT_COORDINATE__X);
-		createEAttribute(floatCoordinateEClass, FLOAT_COORDINATE__Y);
-
-		discreteFunctionEClass = createEClass(DISCRETE_FUNCTION);
-		createEReference(discreteFunctionEClass, DISCRETE_FUNCTION__VALS);
-
-		exponentialFunctionEClass = createEClass(EXPONENTIAL_FUNCTION);
-		createEAttribute(exponentialFunctionEClass, EXPONENTIAL_FUNCTION__LAMBDA);
-
-		entityTypesEClass = createEClass(ENTITY_TYPES);
-		createEReference(entityTypesEClass, ENTITY_TYPES__TYPES);
-
-		iTypedEntityEClass = createEClass(ITYPED_ENTITY);
-
-		nodeTypeEClass = createEClass(NODE_TYPE);
-		createEReference(nodeTypeEClass, NODE_TYPE__ENTITIES);
-
-		endPerformanceTypeEClass = createEClass(END_PERFORMANCE_TYPE);
-		createEReference(endPerformanceTypeEClass, END_PERFORMANCE_TYPE__ENTITIES);
-
-		intermediatePerformanceTypeEClass = createEClass(INTERMEDIATE_PERFORMANCE_TYPE);
-		createEReference(intermediatePerformanceTypeEClass, INTERMEDIATE_PERFORMANCE_TYPE__ENTITIES);
-
-		sdnNodePerformanceTypeEClass = createEClass(SDN_NODE_PERFORMANCE_TYPE);
-		createEReference(sdnNodePerformanceTypeEClass, SDN_NODE_PERFORMANCE_TYPE__ENTITIES);
-
-		networkInterfaceTypeEClass = createEClass(NETWORK_INTERFACE_TYPE);
-		createEReference(networkInterfaceTypeEClass, NETWORK_INTERFACE_TYPE__ENTITIES);
-
-		networkInterfacePerformanceTypeEClass = createEClass(NETWORK_INTERFACE_PERFORMANCE_TYPE);
-		createEReference(networkInterfacePerformanceTypeEClass, NETWORK_INTERFACE_PERFORMANCE_TYPE__ENTITIES);
-
-		linkTypeEClass = createEClass(LINK_TYPE);
-		createEReference(linkTypeEClass, LINK_TYPE__ENTITIES);
-
-		linkPerformanceTypeEClass = createEClass(LINK_PERFORMANCE_TYPE);
-		createEReference(linkPerformanceTypeEClass, LINK_PERFORMANCE_TYPE__ENTITIES);
-
-		// Create enums
-		unitPrefixEEnum = createEEnum(UNIT_PREFIX);
-		speedEEnum = createEEnum(SPEED);
-		timeEEnum = createEEnum(TIME);
-	}
-
-	/**
-	 * <!-- 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
-		EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
-
-		// Create type parameters
-
-		// Set bounds for type parameters
-
-		// Add supertypes to classes
-		entityEClass.getESuperTypes().add(this.getIdentifier());
-		entityEClass.getESuperTypes().add(this.getNamedElement());
-		nodeEClass.getESuperTypes().add(this.getEntity());
-		endEClass.getESuperTypes().add(this.getIdentifier());
-		intermediateEClass.getESuperTypes().add(this.getIdentifier());
-		linkEClass.getESuperTypes().add(this.getEntity());
-		networkInterfaceEClass.getESuperTypes().add(this.getAddressableEntity());
-		networkInterfaceEClass.getESuperTypes().add(this.getNamedElement());
-		networkInterfaceEClass.getESuperTypes().add(this.getEntity());
-		flowEClass.getESuperTypes().add(this.getEntity());
-		sdnControlFlowEClass.getESuperTypes().add(this.getFlow());
-		genericFlowTrafficEClass.getESuperTypes().add(this.getFlowTraffic());
-		communicatingApplicationEClass.getESuperTypes().add(this.getEntity());
-		trafficSourceEClass.getESuperTypes().add(this.getEntity());
-		trafficSourceEClass.getESuperTypes().add(this.getAddressableEntity());
-		protocolStackEClass.getESuperTypes().add(this.getEntity());
-		protocolLayerEClass.getESuperTypes().add(this.getEntity());
-		networkProtocolEClass.getESuperTypes().add(this.getEntity());
-		directionEClass.getESuperTypes().add(this.getEntity());
-		flowRouteEClass.getESuperTypes().add(this.getEntity());
-		routeEClass.getESuperTypes().add(this.getEntity());
-		genericWorkloadEClass.getESuperTypes().add(this.getWorkload());
-		branchActionEClass.getESuperTypes().add(this.getAbstractAction());
-		loopActionEClass.getESuperTypes().add(this.getAbstractAction());
-		sequenceActionEClass.getESuperTypes().add(this.getAbstractAction());
-		startActionEClass.getESuperTypes().add(this.getAbstractAction());
-		stopActionEClass.getESuperTypes().add(this.getAbstractAction());
-		transmitActionEClass.getESuperTypes().add(this.getAbstractAction());
-		waitActionEClass.getESuperTypes().add(this.getAbstractAction());
-		performanceLinkEClass.getESuperTypes().add(this.getPerformanceSpecification());
-		performanceNetworkInterfaceEClass.getESuperTypes().add(this.getPerformanceSpecification());
-		sdnControllerEClass.getESuperTypes().add(this.getCommunicatingApplication());
-		sdnControllerApplicationEClass.getESuperTypes().add(this.getCommunicatingApplication());
-		commonEClass.getESuperTypes().add(this.getIType());
-		sdnEClass.getESuperTypes().add(this.getIType());
-		intermediatePerformanceEClass.getESuperTypes().add(this.getPerformanceSpecification());
-		endPerformanceEClass.getESuperTypes().add(this.getPerformanceSpecification());
-		performanceSdnNodeEClass.getESuperTypes().add(this.getPerformanceSpecification());
-		speedUnitEClass.getESuperTypes().add(this.getDNIUnit());
-		dataUnitEClass.getESuperTypes().add(this.getDNIUnit());
-		timeUnitEClass.getESuperTypes().add(this.getDNIUnit());
-		variableEClass.getESuperTypes().add(this.getDependency());
-		functionEClass.getESuperTypes().add(this.getDependency());
-		constantDoubleVariableEClass.getESuperTypes().add(this.getVariable());
-		constantLongVariableEClass.getESuperTypes().add(this.getVariable());
-		randomVariableEClass.getESuperTypes().add(this.getVariable());
-		discreteFunctionEClass.getESuperTypes().add(this.getFunction());
-		exponentialFunctionEClass.getESuperTypes().add(this.getFunction());
-		iTypedEntityEClass.getESuperTypes().add(this.getNamedElement());
-		iTypedEntityEClass.getESuperTypes().add(this.getIdentifier());
-		nodeTypeEClass.getESuperTypes().add(this.getITypedEntity());
-		endPerformanceTypeEClass.getESuperTypes().add(this.getITypedEntity());
-		intermediatePerformanceTypeEClass.getESuperTypes().add(this.getITypedEntity());
-		sdnNodePerformanceTypeEClass.getESuperTypes().add(this.getITypedEntity());
-		networkInterfaceTypeEClass.getESuperTypes().add(this.getITypedEntity());
-		networkInterfacePerformanceTypeEClass.getESuperTypes().add(this.getITypedEntity());
-		linkTypeEClass.getESuperTypes().add(this.getITypedEntity());
-		linkPerformanceTypeEClass.getESuperTypes().add(this.getITypedEntity());
-
-		// Initialize classes, features, and operations; add parameters
-		initEClass(namedElementEClass, NamedElement.class, "NamedElement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getNamedElement_Name(), theEcorePackage.getEString(), "name", null, 1, 1, NamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getNamedElement_Description(), theEcorePackage.getEString(), "description", null, 0, 1, NamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(identifierEClass, Identifier.class, "Identifier", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getIdentifier_Uid(), theEcorePackage.getEString(), "uid", null, 0, 1, Identifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getIdentifier_Uid_generated(), theEcorePackage.getEString(), "uid_generated", null, 0, 1, Identifier.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
-
-		initEClass(entityEClass, Entity.class, "Entity", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(networkInfrastructureEClass, NetworkInfrastructure.class, "NetworkInfrastructure", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getNetworkInfrastructure_Traffic(), this.getNetworkTraffic(), null, "traffic", null, 1, 1, NetworkInfrastructure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getNetworkInfrastructure_Structure(), this.getNetworkStructure(), null, "structure", null, 1, 1, NetworkInfrastructure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getNetworkInfrastructure_Configuration(), this.getNetworkConfiguration(), null, "configuration", null, 1, 1, NetworkInfrastructure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getNetworkInfrastructure_EntityTypes(), this.getEntityTypes(), null, "entityTypes", null, 1, 1, NetworkInfrastructure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getNetworkInfrastructure_DataCenterName(), theEcorePackage.getEString(), "dataCenterName", null, 0, 1, NetworkInfrastructure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getNetworkInfrastructure_MetaModelVersion(), theEcorePackage.getEString(), "metaModelVersion", null, 0, 1, NetworkInfrastructure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(networkStructureEClass, NetworkStructure.class, "NetworkStructure", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getNetworkStructure_Nodes(), this.getNode(), null, "nodes", null, 1, -1, NetworkStructure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getNetworkStructure_Links(), this.getLink(), null, "links", null, 0, -1, NetworkStructure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(nodeEClass, Node.class, "Node", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getNode_Interfaces(), this.getNetworkInterface(), this.getNetworkInterface_Node(), "interfaces", null, 0, -1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getNode_Sdntype(), this.getIType(), null, "sdntype", null, 1, 1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getNode_IsPhysical(), theEcorePackage.getEBoolean(), "isPhysical", "true", 0, 1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getNode_IsPhysical_derived(), theEcorePackage.getEBoolean(), "isPhysical_derived", null, 0, 1, Node.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
-		initEReference(getNode_Hosts(), this.getNode(), this.getNode_IsHostedOn(), "hosts", null, 0, -1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getNode_IsHostedOn(), this.getNode(), this.getNode_Hosts(), "isHostedOn", null, 0, 1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getNode_End(), this.getEnd(), this.getEnd_Node(), "end", null, 0, 1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getNode_Intermediate(), this.getIntermediate(), this.getIntermediate_Node(), "intermediate", null, 0, 1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getNode_EntityType(), this.getNodeType(), this.getNodeType_Entities(), "entityType", null, 0, 1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(endEClass, End.class, "End", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getEnd_Performance(), this.getEndPerformance(), null, "performance", null, 0, 1, End.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getEnd_Software(), this.getCommunicatingApplication(), this.getCommunicatingApplication_DeployedOn(), "software", null, 0, -1, End.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getEnd_Node(), this.getNode(), this.getNode_End(), "node", null, 0, 1, End.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getEnd_Name(), theEcorePackage.getEString(), "name", null, 0, 1, End.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
-
-		initEClass(intermediateEClass, Intermediate.class, "Intermediate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getIntermediate_Performance(), this.getIntermediatePerformance(), null, "performance", null, 0, 1, Intermediate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getIntermediate_Node(), this.getNode(), this.getNode_Intermediate(), "node", null, 0, 1, Intermediate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getIntermediate_Name(), theEcorePackage.getEString(), "name", null, 0, 1, Intermediate.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
-
-		initEClass(linkEClass, Link.class, "Link", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getLink_Connects(), this.getNetworkInterface(), null, "connects", null, 2, 2, Link.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getLink_Performance(), this.getPerformanceLink(), null, "performance", null, 0, 1, Link.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getLink_Name_generated(), theEcorePackage.getEString(), "name_generated", null, 0, 1, Link.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
-		initEReference(getLink_EntityType(), this.getLinkType(), this.getLinkType_Entities(), "entityType", null, 0, 1, Link.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(networkInterfaceEClass, NetworkInterface.class, "NetworkInterface", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getNetworkInterface_UsedProtocolStack(), this.getProtocolStack(), null, "usedProtocolStack", null, 1, 1, NetworkInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getNetworkInterface_Performance(), this.getPerformanceNetworkInterface(), null, "performance", null, 0, 1, NetworkInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getNetworkInterface_Node(), this.getNode(), this.getNode_Interfaces(), "node", null, 0, 1, NetworkInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getNetworkInterface_Name_generated(), theEcorePackage.getEString(), "name_generated", null, 0, 1, NetworkInterface.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
-		initEReference(getNetworkInterface_EntityType(), this.getNetworkInterfaceType(), this.getNetworkInterfaceType_Entities(), "entityType", null, 0, 1, NetworkInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(networkTrafficEClass, NetworkTraffic.class, "NetworkTraffic", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getNetworkTraffic_Flows(), this.getFlow(), null, "flows", null, 0, -1, NetworkTraffic.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getNetworkTraffic_Software(), this.getCommunicatingApplication(), null, "software", null, 0, -1, NetworkTraffic.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(flowEClass, Flow.class, "Flow", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getFlow_SourceSoftware(), this.getCommunicatingApplication(), null, "sourceSoftware", null, 1, 1, Flow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getFlow_GeneratedTraffic(), this.getFlowTraffic(), this.getFlowTraffic_Flow(), "generatedTraffic", null, 0, -1, Flow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getFlow_DestinationSoftware(), this.getCommunicatingApplication(), null, "destinationSoftware", null, 1, -1, Flow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getFlow_DestinationAddresses(), this.getEntityAddress(), null, "destinationAddresses", null, 0, -1, Flow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(sdnControlFlowEClass, SdnControlFlow.class, "SdnControlFlow", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getSdnControlFlow_ParentFlow(), this.getFlow(), null, "parentFlow", null, 1, 1, SdnControlFlow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(flowTrafficEClass, FlowTraffic.class, "FlowTraffic", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getFlowTraffic_Flow(), this.getFlow(), this.getFlow_GeneratedTraffic(), "flow", null, 0, 1, FlowTraffic.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getFlowTraffic_Name(), theEcorePackage.getEString(), "name", null, 0, 1, FlowTraffic.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
-
-		initEClass(genericFlowTrafficEClass, GenericFlowTraffic.class, "GenericFlowTraffic", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getGenericFlowTraffic_DataSize(), this.getDependency(), null, "dataSize", null, 1, 1, GenericFlowTraffic.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(communicatingApplicationEClass, CommunicatingApplication.class, "CommunicatingApplication", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getCommunicatingApplication_TrafficSources(), this.getTrafficSource(), this.getTrafficSource_SoftwareComponent(), "trafficSources", null, 0, -1, CommunicatingApplication.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getCommunicatingApplication_DeployedOn(), this.getEnd(), this.getEnd_Software(), "deployedOn", null, 0, 1, CommunicatingApplication.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(trafficSourceEClass, TrafficSource.class, "TrafficSource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getTrafficSource_Workload(), this.getWorkload(), null, "workload", null, 1, -1, TrafficSource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getTrafficSource_SoftwareComponent(), this.getCommunicatingApplication(), this.getCommunicatingApplication_TrafficSources(), "softwareComponent", null, 1, 1, TrafficSource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(networkConfigurationEClass, NetworkConfiguration.class, "NetworkConfiguration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getNetworkConfiguration_ProtocolsAndStacks(), this.getProtocolsRepository(), null, "protocolsAndStacks", null, 1, 1, NetworkConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getNetworkConfiguration_Routes(), this.getRoutesRepository(), null, "routes", null, 1, 1, NetworkConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getNetworkConfiguration_Rules(), this.getSdnFlowRule(), null, "rules", null, 0, -1, NetworkConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(protocolsRepositoryEClass, ProtocolsRepository.class, "ProtocolsRepository", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getProtocolsRepository_Stacks(), this.getProtocolStack(), null, "stacks", null, 0, -1, ProtocolsRepository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getProtocolsRepository_Protocols(), this.getNetworkProtocol(), null, "protocols", null, 1, -1, ProtocolsRepository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(protocolStackEClass, ProtocolStack.class, "ProtocolStack", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getProtocolStack_Layers(), this.getProtocolLayer(), null, "layers", null, 1, -1, ProtocolStack.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(protocolLayerEClass, ProtocolLayer.class, "ProtocolLayer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getProtocolLayer_Protocol(), this.getNetworkProtocol(), null, "protocol", null, 1, 1, ProtocolLayer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getProtocolLayer_IsCarriedBy(), this.getProtocolLayer(), this.getProtocolLayer_Carries(), "isCarriedBy", null, 0, 1, ProtocolLayer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getProtocolLayer_Carries(), this.getProtocolLayer(), this.getProtocolLayer_IsCarriedBy(), "carries", null, 0, 1, ProtocolLayer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(networkProtocolEClass, NetworkProtocol.class, "NetworkProtocol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getNetworkProtocol_Mtu(), theEcorePackage.getEInt(), "mtu", "1500", 1, 1, NetworkProtocol.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getNetworkProtocol_HeadersLength(), theEcorePackage.getEInt(), "headersLength", "40", 1, 1, NetworkProtocol.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(routesRepositoryEClass, RoutesRepository.class, "RoutesRepository", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getRoutesRepository_Routes(), this.getRoute(), null, "routes", null, 0, -1, RoutesRepository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getRoutesRepository_FlowRoutes(), this.getFlowRoute(), null, "flowRoutes", null, 0, -1, RoutesRepository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getRoutesRepository_Directions(), this.getDirection(), null, "directions", null, 0, -1, RoutesRepository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(directionEClass, Direction.class, "Direction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getDirection_OnNode(), this.getNode(), null, "onNode", null, 1, 1, Direction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getDirection_Flow(), this.getFlow(), null, "flow", null, 1, 1, Direction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getDirection_Via(), this.getNetworkInterface(), null, "via", null, 1, 1, Direction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getDirection_Default(), theEcorePackage.getEInt(), "default", "0", 0, 1, Direction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getDirection_Probability(), theEcorePackage.getEFloat(), "probability", "1.0", 1, 1, Direction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(flowRouteEClass, FlowRoute.class, "FlowRoute", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getFlowRoute_Hops(), this.getHop(), null, "hops", null, 0, 1, FlowRoute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getFlowRoute_Flow(), this.getFlow(), null, "flow", null, 1, 1, FlowRoute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getFlowRoute_Start(), this.getNetworkInterface(), null, "start", null, 1, 1, FlowRoute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getFlowRoute_End(), this.getNetworkInterface(), null, "end", null, 1, 1, FlowRoute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getFlowRoute_Probability(), theEcorePackage.getEFloat(), "probability", "1.0", 1, 1, FlowRoute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(routeEClass, Route.class, "Route", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getRoute_Hops(), this.getHop(), null, "hops", null, 0, 1, Route.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getRoute_Start(), this.getNetworkInterface(), null, "start", null, 1, 1, Route.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getRoute_End(), this.getNetworkInterface(), null, "end", null, 1, 1, Route.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(hopEClass, Hop.class, "Hop", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getHop_NextHop(), this.getHop(), null, "nextHop", null, 0, 1, Hop.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getHop_Interfaceref(), this.getNetworkInterface(), null, "interfaceref", null, 1, 1, Hop.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(entityAddressEClass, EntityAddress.class, "EntityAddress", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getEntityAddress_Address(), theEcorePackage.getEString(), "address", "x.x.x.x", 0, 1, EntityAddress.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getEntityAddress_AddressGivenBy(), this.getNetworkProtocol(), null, "addressGivenBy", null, 0, 1, EntityAddress.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(addressableEntityEClass, AddressableEntity.class, "AddressableEntity", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getAddressableEntity_Addresses(), this.getEntityAddress(), null, "addresses", null, 0, -1, AddressableEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(workloadEClass, Workload.class, "Workload", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(genericWorkloadEClass, GenericWorkload.class, "GenericWorkload", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getGenericWorkload_Actions(), this.getAbstractAction(), null, "actions", null, 0, -1, GenericWorkload.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-
-		initEClass(abstractActionEClass, AbstractAction.class, "AbstractAction", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(branchActionEClass, BranchAction.class, "BranchAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getBranchAction_Intern(), this.getAbstractAction(), null, "intern", null, 1, -1, BranchAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(loopActionEClass, LoopAction.class, "LoopAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getLoopAction_Intern(), this.getAbstractAction(), null, "intern", null, 1, 1, LoopAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getLoopAction_NumIterations(), this.getDependency(), null, "numIterations", null, 1, 1, LoopAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(sequenceActionEClass, SequenceAction.class, "SequenceAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getSequenceAction_Intern(), this.getAbstractAction(), null, "intern", null, 1, -1, SequenceAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(startActionEClass, StartAction.class, "StartAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(stopActionEClass, StopAction.class, "StopAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(transmitActionEClass, TransmitAction.class, "TransmitAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getTransmitAction_FlowTraffic(), this.getFlowTraffic(), null, "flowTraffic", null, 1, 1, TransmitAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(waitActionEClass, WaitAction.class, "WaitAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getWaitAction_WaitTime(), this.getDependency(), null, "waitTime", null, 1, 1, WaitAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(performanceSpecificationEClass, PerformanceSpecification.class, "PerformanceSpecification", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(performanceLinkEClass, PerformanceLink.class, "PerformanceLink", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getPerformanceLink_PropagationDelay(), this.getDependency(), null, "propagationDelay", null, 1, 1, PerformanceLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getPerformanceLink_MaxSupportedBandwidth(), this.getDependency(), null, "maxSupportedBandwidth", null, 1, 1, PerformanceLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getPerformanceLink_EntityType(), this.getLinkPerformanceType(), this.getLinkPerformanceType_Entities(), "entityType", null, 0, 1, PerformanceLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(performanceNetworkInterfaceEClass, PerformanceNetworkInterface.class, "PerformanceNetworkInterface", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getPerformanceNetworkInterface_IsUp(), theEcorePackage.getEBoolean(), "isUp", "true", 0, 1, PerformanceNetworkInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getPerformanceNetworkInterface_MTU(), theEcorePackage.getEInt(), "MTU", "1500", 1, 1, PerformanceNetworkInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getPerformanceNetworkInterface_PacketProcessingTime(), this.getDependency(), null, "packetProcessingTime", null, 1, 1, PerformanceNetworkInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getPerformanceNetworkInterface_InterfaceThroughput(), this.getVariable(), null, "interfaceThroughput", null, 1, 1, PerformanceNetworkInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getPerformanceNetworkInterface_EntityType(), this.getNetworkInterfacePerformanceType(), this.getNetworkInterfacePerformanceType_Entities(), "entityType", null, 0, 1, PerformanceNetworkInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(sdnFlowRuleEClass, SdnFlowRule.class, "SdnFlowRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getSdnFlowRule_SdnSwitch(), this.getNode(), null, "sdnSwitch", null, 1, 1, SdnFlowRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getSdnFlowRule_Flow(), this.getFlow(), null, "flow", null, 1, 1, SdnFlowRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getSdnFlowRule_ProbabilityHardware(), theEcorePackage.getEFloat(), "probabilityHardware", "1.0", 1, 1, SdnFlowRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getSdnFlowRule_ProbabilitySoftware(), theEcorePackage.getEFloat(), "probabilitySoftware", "0.0", 0, 1, SdnFlowRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getSdnFlowRule_ProbabilityController(), theEcorePackage.getEFloat(), "probabilityController", "0.0", 0, 1, SdnFlowRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getSdnFlowRule_ControllerApplication(), this.getSdnControllerApplication(), null, "controllerApplication", null, 0, 1, SdnFlowRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(sdnControllerEClass, SdnController.class, "SdnController", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getSdnController_Applications(), this.getSdnControllerApplication(), this.getSdnControllerApplication_BelongsTo(), "applications", null, 0, -1, SdnController.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getSdnController_Nodes(), this.getSDN(), this.getSDN_Controller(), "nodes", null, 0, -1, SdnController.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(sdnControllerApplicationEClass, SdnControllerApplication.class, "SdnControllerApplication", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getSdnControllerApplication_BelongsTo(), this.getSdnController(), this.getSdnController_Applications(), "belongsTo", null, 0, 1, SdnControllerApplication.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getSdnControllerApplication_IsDefault(), theEcorePackage.getEBoolean(), "isDefault", "false", 1, 1, SdnControllerApplication.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getSdnControllerApplication_ResponseDelay(), this.getDependency(), null, "responseDelay", null, 0, 1, SdnControllerApplication.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(iTypeEClass, IType.class, "IType", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(commonEClass, Common.class, "Common", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(sdnEClass, tools.descartes.dni.dnimm3.SDN.class, "SDN", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getSDN_Performance(), this.getPerformanceSdnNode(), null, "performance", null, 1, 1, tools.descartes.dni.dnimm3.SDN.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getSDN_Controller(), this.getSdnController(), this.getSdnController_Nodes(), "controller", null, 1, -1, tools.descartes.dni.dnimm3.SDN.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getSDN_OpenFlowEndPoint(), this.getCommunicatingApplication(), null, "openFlowEndPoint", null, 1, 1, tools.descartes.dni.dnimm3.SDN.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(intermediatePerformanceEClass, IntermediatePerformance.class, "IntermediatePerformance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getIntermediatePerformance_ForwardingLatency(), this.getDependency(), null, "forwardingLatency", null, 1, 1, IntermediatePerformance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getIntermediatePerformance_ForwardingBandwidthBPS(), this.getDependency(), null, "forwardingBandwidthBPS", null, 1, 1, IntermediatePerformance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getIntermediatePerformance_SwitchingCapacityPPS(), this.getDependency(), null, "switchingCapacityPPS", null, 1, 1, IntermediatePerformance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getIntermediatePerformance_EntityType(), this.getIntermediatePerformanceType(), this.getIntermediatePerformanceType_Entities(), "entityType", null, 0, 1, IntermediatePerformance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(endPerformanceEClass, EndPerformance.class, "EndPerformance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getEndPerformance_SoftwareLayersDelay(), this.getDependency(), null, "softwareLayersDelay", null, 1, 1, EndPerformance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getEndPerformance_EntityType(), this.getEndPerformanceType(), this.getEndPerformanceType_Entities(), "entityType", null, 0, 1, EndPerformance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(performanceSdnNodeEClass, PerformanceSdnNode.class, "PerformanceSdnNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getPerformanceSdnNode_SoftwareSwitchingPerformance(), this.getIntermediatePerformance(), null, "softwareSwitchingPerformance", null, 0, 1, PerformanceSdnNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getPerformanceSdnNode_HardwareSwitchingPerformance(), this.getIntermediatePerformance(), null, "hardwareSwitchingPerformance", null, 0, 1, PerformanceSdnNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getPerformanceSdnNode_EntityType(), this.getSdnNodePerformanceType(), this.getSdnNodePerformanceType_Entities(), "entityType", null, 0, 1, PerformanceSdnNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(dniUnitEClass, DNIUnit.class, "DNIUnit", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(speedUnitEClass, SpeedUnit.class, "SpeedUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getSpeedUnit_Unit(), this.getSpeed(), "unit", null, 1, 1, SpeedUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEAttribute(getSpeedUnit_Prefix(), this.getUnitPrefix(), "prefix", "none", 1, 1, SpeedUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-
-		initEClass(dataUnitEClass, DataUnit.class, "DataUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getDataUnit_Prefix(), this.getUnitPrefix(), "prefix", "none", 1, 1, DataUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-
-		initEClass(timeUnitEClass, TimeUnit.class, "TimeUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getTimeUnit_Unit(), this.getTime(), "unit", null, 0, 1, TimeUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(dependencyEClass, Dependency.class, "Dependency", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getDependency_Unit(), this.getDNIUnit(), null, "unit", null, 0, 1, Dependency.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(variableEClass, Variable.class, "Variable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(functionEClass, Function.class, "Function", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(constantDoubleVariableEClass, ConstantDoubleVariable.class, "ConstantDoubleVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getConstantDoubleVariable_Value(), theEcorePackage.getEDouble(), "value", null, 1, 1, ConstantDoubleVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(constantLongVariableEClass, ConstantLongVariable.class, "ConstantLongVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getConstantLongVariable_Value(), theEcorePackage.getELong(), "value", null, 1, 1, ConstantLongVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(randomVariableEClass, RandomVariable.class, "RandomVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getRandomVariable_Cdf(), this.getFunction(), null, "cdf", null, 1, 1, RandomVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(floatCoordinateEClass, FloatCoordinate.class, "FloatCoordinate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getFloatCoordinate_X(), theEcorePackage.getEDouble(), "x", null, 0, 1, FloatCoordinate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getFloatCoordinate_Y(), theEcorePackage.getEDouble(), "y", null, 0, 1, FloatCoordinate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(discreteFunctionEClass, DiscreteFunction.class, "DiscreteFunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getDiscreteFunction_Vals(), this.getFloatCoordinate(), null, "vals", null, 1, -1, DiscreteFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(exponentialFunctionEClass, ExponentialFunction.class, "ExponentialFunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getExponentialFunction_Lambda(), theEcorePackage.getEDouble(), "lambda", null, 0, 1, ExponentialFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(entityTypesEClass, EntityTypes.class, "EntityTypes", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getEntityTypes_Types(), this.getITypedEntity(), null, "types", null, 0, -1, EntityTypes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(iTypedEntityEClass, ITypedEntity.class, "ITypedEntity", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(nodeTypeEClass, NodeType.class, "NodeType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getNodeType_Entities(), this.getNode(), this.getNode_EntityType(), "entities", null, 0, -1, NodeType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(endPerformanceTypeEClass, EndPerformanceType.class, "EndPerformanceType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getEndPerformanceType_Entities(), this.getEndPerformance(), this.getEndPerformance_EntityType(), "entities", null, 0, -1, EndPerformanceType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(intermediatePerformanceTypeEClass, IntermediatePerformanceType.class, "IntermediatePerformanceType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getIntermediatePerformanceType_Entities(), this.getIntermediatePerformance(), this.getIntermediatePerformance_EntityType(), "entities", null, 0, -1, IntermediatePerformanceType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(sdnNodePerformanceTypeEClass, SdnNodePerformanceType.class, "SdnNodePerformanceType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getSdnNodePerformanceType_Entities(), this.getPerformanceSdnNode(), this.getPerformanceSdnNode_EntityType(), "entities", null, 0, -1, SdnNodePerformanceType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(networkInterfaceTypeEClass, NetworkInterfaceType.class, "NetworkInterfaceType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getNetworkInterfaceType_Entities(), this.getNetworkInterface(), this.getNetworkInterface_EntityType(), "entities", null, 0, -1, NetworkInterfaceType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(networkInterfacePerformanceTypeEClass, NetworkInterfacePerformanceType.class, "NetworkInterfacePerformanceType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getNetworkInterfacePerformanceType_Entities(), this.getPerformanceNetworkInterface(), this.getPerformanceNetworkInterface_EntityType(), "entities", null, 0, -1, NetworkInterfacePerformanceType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(linkTypeEClass, LinkType.class, "LinkType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getLinkType_Entities(), this.getLink(), this.getLink_EntityType(), "entities", null, 0, -1, LinkType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(linkPerformanceTypeEClass, LinkPerformanceType.class, "LinkPerformanceType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getLinkPerformanceType_Entities(), this.getPerformanceLink(), this.getPerformanceLink_EntityType(), "entities", null, 0, -1, LinkPerformanceType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		// Initialize enums and add enum literals
-		initEEnum(unitPrefixEEnum, UnitPrefix.class, "UnitPrefix");
-		addEEnumLiteral(unitPrefixEEnum, UnitPrefix.NONE);
-		addEEnumLiteral(unitPrefixEEnum, UnitPrefix.K);
-		addEEnumLiteral(unitPrefixEEnum, UnitPrefix.M);
-		addEEnumLiteral(unitPrefixEEnum, UnitPrefix.G);
-
-		initEEnum(speedEEnum, Speed.class, "Speed");
-		addEEnumLiteral(speedEEnum, Speed.BYTES_PER_SEC);
-		addEEnumLiteral(speedEEnum, Speed.BITS_PER_SEC);
-		addEEnumLiteral(speedEEnum, Speed.PACKETS_PER_SEC);
-
-		initEEnum(timeEEnum, Time.class, "Time");
-		addEEnumLiteral(timeEEnum, Time.SECONDS);
-		addEEnumLiteral(timeEEnum, Time.MILLISECONDS);
-		addEEnumLiteral(timeEEnum, Time.MICROSECONDS);
-
-		// Create resource
-		createResource(eNS_URI);
-
-		// Create annotations
-		// http://www.eclipse.org/emf/2011/Xcore
-		createXcoreAnnotations();
-	}
-
-	/**
-	 * Initializes the annotations for <b>http://www.eclipse.org/emf/2011/Xcore</b>.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void createXcoreAnnotations() {
-		String source = "http://www.eclipse.org/emf/2011/Xcore";	
-		addAnnotation
-		  (this, 
-		   source, 
-		   new String[] {
-			 "Pivot", "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"
-		   });
-	}
-
-} //DNIPackageImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DataUnitImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DataUnitImpl.java
deleted file mode 100644
index b3827072..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DataUnitImpl.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.DataUnit;
-import tools.descartes.dni.dnimm3.UnitPrefix;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Data Unit</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.DataUnitImpl#getPrefix <em>Prefix</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class DataUnitImpl extends MinimalEObjectImpl.Container implements DataUnit {
-	/**
-	 * The default value of the '{@link #getPrefix() <em>Prefix</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPrefix()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final UnitPrefix PREFIX_EDEFAULT = UnitPrefix.NONE;
-
-	/**
-	 * The cached value of the '{@link #getPrefix() <em>Prefix</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPrefix()
-	 * @generated
-	 * @ordered
-	 */
-	protected UnitPrefix prefix = PREFIX_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected DataUnitImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.DATA_UNIT;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public UnitPrefix getPrefix() {
-		return prefix;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPrefix(UnitPrefix newPrefix) {
-		UnitPrefix oldPrefix = prefix;
-		prefix = newPrefix == null ? PREFIX_EDEFAULT : newPrefix;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.DATA_UNIT__PREFIX, oldPrefix, prefix));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.DATA_UNIT__PREFIX:
-				return getPrefix();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.DATA_UNIT__PREFIX:
-				setPrefix((UnitPrefix)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.DATA_UNIT__PREFIX:
-				setPrefix(PREFIX_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.DATA_UNIT__PREFIX:
-				return prefix != PREFIX_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (prefix: ");
-		result.append(prefix);
-		result.append(')');
-		return result.toString();
-	}
-
-} //DataUnitImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DirectionImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DirectionImpl.java
deleted file mode 100644
index 5ba4de69..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DirectionImpl.java
+++ /dev/null
@@ -1,543 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-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 tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Direction;
-import tools.descartes.dni.dnimm3.Flow;
-import tools.descartes.dni.dnimm3.NamedElement;
-import tools.descartes.dni.dnimm3.NetworkInterface;
-import tools.descartes.dni.dnimm3.Node;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Direction</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.DirectionImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.DirectionImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.DirectionImpl#getOnNode <em>On Node</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.DirectionImpl#getFlow <em>Flow</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.DirectionImpl#getVia <em>Via</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.DirectionImpl#getDefault <em>Default</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.DirectionImpl#getProbability <em>Probability</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class DirectionImpl extends IdentifierImpl implements Direction {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The cached value of the '{@link #getOnNode() <em>On Node</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getOnNode()
-	 * @generated
-	 * @ordered
-	 */
-	protected Node onNode;
-
-	/**
-	 * The cached value of the '{@link #getFlow() <em>Flow</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getFlow()
-	 * @generated
-	 * @ordered
-	 */
-	protected Flow flow;
-
-	/**
-	 * The cached value of the '{@link #getVia() <em>Via</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getVia()
-	 * @generated
-	 * @ordered
-	 */
-	protected NetworkInterface via;
-
-	/**
-	 * The default value of the '{@link #getDefault() <em>Default</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDefault()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int DEFAULT_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getDefault() <em>Default</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDefault()
-	 * @generated
-	 * @ordered
-	 */
-	protected int default_ = DEFAULT_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getProbability() <em>Probability</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProbability()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final float PROBABILITY_EDEFAULT = 1.0F;
-
-	/**
-	 * The cached value of the '{@link #getProbability() <em>Probability</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProbability()
-	 * @generated
-	 * @ordered
-	 */
-	protected float probability = PROBABILITY_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected DirectionImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.DIRECTION;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.DIRECTION__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIPackage.DIRECTION__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Node getOnNode() {
-		if (onNode != null && onNode.eIsProxy()) {
-			InternalEObject oldOnNode = (InternalEObject)onNode;
-			onNode = (Node)eResolveProxy(oldOnNode);
-			if (onNode != oldOnNode) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.DIRECTION__ON_NODE, oldOnNode, onNode));
-			}
-		}
-		return onNode;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Node basicGetOnNode() {
-		return onNode;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setOnNode(Node newOnNode) {
-		Node oldOnNode = onNode;
-		onNode = newOnNode;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.DIRECTION__ON_NODE, oldOnNode, onNode));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Flow getFlow() {
-		if (flow != null && flow.eIsProxy()) {
-			InternalEObject oldFlow = (InternalEObject)flow;
-			flow = (Flow)eResolveProxy(oldFlow);
-			if (flow != oldFlow) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.DIRECTION__FLOW, oldFlow, flow));
-			}
-		}
-		return flow;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Flow basicGetFlow() {
-		return flow;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setFlow(Flow newFlow) {
-		Flow oldFlow = flow;
-		flow = newFlow;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.DIRECTION__FLOW, oldFlow, flow));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterface getVia() {
-		if (via != null && via.eIsProxy()) {
-			InternalEObject oldVia = (InternalEObject)via;
-			via = (NetworkInterface)eResolveProxy(oldVia);
-			if (via != oldVia) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.DIRECTION__VIA, oldVia, via));
-			}
-		}
-		return via;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterface basicGetVia() {
-		return via;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setVia(NetworkInterface newVia) {
-		NetworkInterface oldVia = via;
-		via = newVia;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.DIRECTION__VIA, oldVia, via));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getDefault() {
-		return default_;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setDefault(int newDefault) {
-		int oldDefault = default_;
-		default_ = newDefault;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.DIRECTION__DEFAULT, oldDefault, default_));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public float getProbability() {
-		return probability;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setProbability(float newProbability) {
-		float oldProbability = probability;
-		probability = newProbability;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.DIRECTION__PROBABILITY, oldProbability, probability));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.DIRECTION__NAME:
-				return getName();
-			case DNIPackage.DIRECTION__DESCRIPTION:
-				return getDescription();
-			case DNIPackage.DIRECTION__ON_NODE:
-				if (resolve) return getOnNode();
-				return basicGetOnNode();
-			case DNIPackage.DIRECTION__FLOW:
-				if (resolve) return getFlow();
-				return basicGetFlow();
-			case DNIPackage.DIRECTION__VIA:
-				if (resolve) return getVia();
-				return basicGetVia();
-			case DNIPackage.DIRECTION__DEFAULT:
-				return getDefault();
-			case DNIPackage.DIRECTION__PROBABILITY:
-				return getProbability();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.DIRECTION__NAME:
-				setName((String)newValue);
-				return;
-			case DNIPackage.DIRECTION__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIPackage.DIRECTION__ON_NODE:
-				setOnNode((Node)newValue);
-				return;
-			case DNIPackage.DIRECTION__FLOW:
-				setFlow((Flow)newValue);
-				return;
-			case DNIPackage.DIRECTION__VIA:
-				setVia((NetworkInterface)newValue);
-				return;
-			case DNIPackage.DIRECTION__DEFAULT:
-				setDefault((Integer)newValue);
-				return;
-			case DNIPackage.DIRECTION__PROBABILITY:
-				setProbability((Float)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.DIRECTION__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIPackage.DIRECTION__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIPackage.DIRECTION__ON_NODE:
-				setOnNode((Node)null);
-				return;
-			case DNIPackage.DIRECTION__FLOW:
-				setFlow((Flow)null);
-				return;
-			case DNIPackage.DIRECTION__VIA:
-				setVia((NetworkInterface)null);
-				return;
-			case DNIPackage.DIRECTION__DEFAULT:
-				setDefault(DEFAULT_EDEFAULT);
-				return;
-			case DNIPackage.DIRECTION__PROBABILITY:
-				setProbability(PROBABILITY_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.DIRECTION__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIPackage.DIRECTION__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIPackage.DIRECTION__ON_NODE:
-				return onNode != null;
-			case DNIPackage.DIRECTION__FLOW:
-				return flow != null;
-			case DNIPackage.DIRECTION__VIA:
-				return via != null;
-			case DNIPackage.DIRECTION__DEFAULT:
-				return default_ != DEFAULT_EDEFAULT;
-			case DNIPackage.DIRECTION__PROBABILITY:
-				return probability != PROBABILITY_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.DIRECTION__NAME: return DNIPackage.NAMED_ELEMENT__NAME;
-				case DNIPackage.DIRECTION__DESCRIPTION: return DNIPackage.NAMED_ELEMENT__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.NAMED_ELEMENT__NAME: return DNIPackage.DIRECTION__NAME;
-				case DNIPackage.NAMED_ELEMENT__DESCRIPTION: return DNIPackage.DIRECTION__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(", default: ");
-		result.append(default_);
-		result.append(", probability: ");
-		result.append(probability);
-		result.append(')');
-		return result.toString();
-	}
-
-} //DirectionImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DiscreteFunctionImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DiscreteFunctionImpl.java
deleted file mode 100644
index a9a4422d..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DiscreteFunctionImpl.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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 tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.DNIUnit;
-import tools.descartes.dni.dnimm3.DiscreteFunction;
-import tools.descartes.dni.dnimm3.FloatCoordinate;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Discrete Function</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.DiscreteFunctionImpl#getUnit <em>Unit</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.DiscreteFunctionImpl#getVals <em>Vals</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class DiscreteFunctionImpl extends MinimalEObjectImpl.Container implements DiscreteFunction {
-	/**
-	 * The cached value of the '{@link #getUnit() <em>Unit</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUnit()
-	 * @generated
-	 * @ordered
-	 */
-	protected DNIUnit unit;
-
-	/**
-	 * The cached value of the '{@link #getVals() <em>Vals</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getVals()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<FloatCoordinate> vals;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected DiscreteFunctionImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.DISCRETE_FUNCTION;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DNIUnit getUnit() {
-		return unit;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetUnit(DNIUnit newUnit, NotificationChain msgs) {
-		DNIUnit oldUnit = unit;
-		unit = newUnit;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.DISCRETE_FUNCTION__UNIT, oldUnit, newUnit);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setUnit(DNIUnit newUnit) {
-		if (newUnit != unit) {
-			NotificationChain msgs = null;
-			if (unit != null)
-				msgs = ((InternalEObject)unit).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.DISCRETE_FUNCTION__UNIT, null, msgs);
-			if (newUnit != null)
-				msgs = ((InternalEObject)newUnit).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.DISCRETE_FUNCTION__UNIT, null, msgs);
-			msgs = basicSetUnit(newUnit, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.DISCRETE_FUNCTION__UNIT, newUnit, newUnit));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<FloatCoordinate> getVals() {
-		if (vals == null) {
-			vals = new EObjectContainmentEList<FloatCoordinate>(FloatCoordinate.class, this, DNIPackage.DISCRETE_FUNCTION__VALS);
-		}
-		return vals;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.DISCRETE_FUNCTION__UNIT:
-				return basicSetUnit(null, msgs);
-			case DNIPackage.DISCRETE_FUNCTION__VALS:
-				return ((InternalEList<?>)getVals()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.DISCRETE_FUNCTION__UNIT:
-				return getUnit();
-			case DNIPackage.DISCRETE_FUNCTION__VALS:
-				return getVals();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.DISCRETE_FUNCTION__UNIT:
-				setUnit((DNIUnit)newValue);
-				return;
-			case DNIPackage.DISCRETE_FUNCTION__VALS:
-				getVals().clear();
-				getVals().addAll((Collection<? extends FloatCoordinate>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.DISCRETE_FUNCTION__UNIT:
-				setUnit((DNIUnit)null);
-				return;
-			case DNIPackage.DISCRETE_FUNCTION__VALS:
-				getVals().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.DISCRETE_FUNCTION__UNIT:
-				return unit != null;
-			case DNIPackage.DISCRETE_FUNCTION__VALS:
-				return vals != null && !vals.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //DiscreteFunctionImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/EndImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/EndImpl.java
deleted file mode 100644
index 7fc2bfde..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/EndImpl.java
+++ /dev/null
@@ -1,347 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.util.EObjectWithInverseResolvingEList;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.CommunicatingApplication;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.End;
-import tools.descartes.dni.dnimm3.EndPerformance;
-import tools.descartes.dni.dnimm3.Node;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>End</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.EndImpl#getPerformance <em>Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.EndImpl#getSoftware <em>Software</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.EndImpl#getNode <em>Node</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.EndImpl#getName <em>Name</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class EndImpl extends IdentifierImpl implements End {
-	/**
-	 * The cached value of the '{@link #getPerformance() <em>Performance</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPerformance()
-	 * @generated
-	 * @ordered
-	 */
-	protected EndPerformance performance;
-
-	/**
-	 * The cached value of the '{@link #getSoftware() <em>Software</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSoftware()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<CommunicatingApplication> software;
-
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EndImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.END;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EndPerformance getPerformance() {
-		return performance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetPerformance(EndPerformance newPerformance, NotificationChain msgs) {
-		EndPerformance oldPerformance = performance;
-		performance = newPerformance;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.END__PERFORMANCE, oldPerformance, newPerformance);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPerformance(EndPerformance newPerformance) {
-		if (newPerformance != performance) {
-			NotificationChain msgs = null;
-			if (performance != null)
-				msgs = ((InternalEObject)performance).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.END__PERFORMANCE, null, msgs);
-			if (newPerformance != null)
-				msgs = ((InternalEObject)newPerformance).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.END__PERFORMANCE, null, msgs);
-			msgs = basicSetPerformance(newPerformance, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.END__PERFORMANCE, newPerformance, newPerformance));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<CommunicatingApplication> getSoftware() {
-		if (software == null) {
-			software = new EObjectWithInverseResolvingEList<CommunicatingApplication>(CommunicatingApplication.class, this, DNIPackage.END__SOFTWARE, DNIPackage.COMMUNICATING_APPLICATION__DEPLOYED_ON);
-		}
-		return software;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Node getNode() {
-		if (eContainerFeatureID() != DNIPackage.END__NODE) return null;
-		return (Node)eContainer();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Node basicGetNode() {
-		if (eContainerFeatureID() != DNIPackage.END__NODE) return null;
-		return (Node)eInternalContainer();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetNode(Node newNode, NotificationChain msgs) {
-		msgs = eBasicSetContainer((InternalEObject)newNode, DNIPackage.END__NODE, msgs);
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setNode(Node newNode) {
-		if (newNode != eInternalContainer() || (eContainerFeatureID() != DNIPackage.END__NODE && newNode != null)) {
-			if (EcoreUtil.isAncestor(this, newNode))
-				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
-			NotificationChain msgs = null;
-			if (eInternalContainer() != null)
-				msgs = eBasicRemoveFromContainer(msgs);
-			if (newNode != null)
-				msgs = ((InternalEObject)newNode).eInverseAdd(this, DNIPackage.NODE__END, Node.class, msgs);
-			msgs = basicSetNode(newNode, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.END__NODE, newNode, newNode));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		String _name = this.getNode().getName();
-		String _plus = (("End" + "[") + _name);
-		return (_plus + "]");
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.END__SOFTWARE:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getSoftware()).basicAdd(otherEnd, msgs);
-			case DNIPackage.END__NODE:
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetNode((Node)otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.END__PERFORMANCE:
-				return basicSetPerformance(null, msgs);
-			case DNIPackage.END__SOFTWARE:
-				return ((InternalEList<?>)getSoftware()).basicRemove(otherEnd, msgs);
-			case DNIPackage.END__NODE:
-				return basicSetNode(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
-		switch (eContainerFeatureID()) {
-			case DNIPackage.END__NODE:
-				return eInternalContainer().eInverseRemove(this, DNIPackage.NODE__END, Node.class, msgs);
-		}
-		return super.eBasicRemoveFromContainerFeature(msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.END__PERFORMANCE:
-				return getPerformance();
-			case DNIPackage.END__SOFTWARE:
-				return getSoftware();
-			case DNIPackage.END__NODE:
-				if (resolve) return getNode();
-				return basicGetNode();
-			case DNIPackage.END__NAME:
-				return getName();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.END__PERFORMANCE:
-				setPerformance((EndPerformance)newValue);
-				return;
-			case DNIPackage.END__SOFTWARE:
-				getSoftware().clear();
-				getSoftware().addAll((Collection<? extends CommunicatingApplication>)newValue);
-				return;
-			case DNIPackage.END__NODE:
-				setNode((Node)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.END__PERFORMANCE:
-				setPerformance((EndPerformance)null);
-				return;
-			case DNIPackage.END__SOFTWARE:
-				getSoftware().clear();
-				return;
-			case DNIPackage.END__NODE:
-				setNode((Node)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.END__PERFORMANCE:
-				return performance != null;
-			case DNIPackage.END__SOFTWARE:
-				return software != null && !software.isEmpty();
-			case DNIPackage.END__NODE:
-				return basicGetNode() != null;
-			case DNIPackage.END__NAME:
-				return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //EndImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/EndPerformanceImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/EndPerformanceImpl.java
deleted file mode 100644
index 8ce38eff..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/EndPerformanceImpl.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-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 tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Dependency;
-import tools.descartes.dni.dnimm3.EndPerformance;
-import tools.descartes.dni.dnimm3.EndPerformanceType;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>End Performance</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.EndPerformanceImpl#getSoftwareLayersDelay <em>Software Layers Delay</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.EndPerformanceImpl#getEntityType <em>Entity Type</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class EndPerformanceImpl extends MinimalEObjectImpl.Container implements EndPerformance {
-	/**
-	 * The cached value of the '{@link #getSoftwareLayersDelay() <em>Software Layers Delay</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSoftwareLayersDelay()
-	 * @generated
-	 * @ordered
-	 */
-	protected Dependency softwareLayersDelay;
-
-	/**
-	 * The cached value of the '{@link #getEntityType() <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntityType()
-	 * @generated
-	 * @ordered
-	 */
-	protected EndPerformanceType entityType;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EndPerformanceImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.END_PERFORMANCE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Dependency getSoftwareLayersDelay() {
-		return softwareLayersDelay;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetSoftwareLayersDelay(Dependency newSoftwareLayersDelay, NotificationChain msgs) {
-		Dependency oldSoftwareLayersDelay = softwareLayersDelay;
-		softwareLayersDelay = newSoftwareLayersDelay;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.END_PERFORMANCE__SOFTWARE_LAYERS_DELAY, oldSoftwareLayersDelay, newSoftwareLayersDelay);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setSoftwareLayersDelay(Dependency newSoftwareLayersDelay) {
-		if (newSoftwareLayersDelay != softwareLayersDelay) {
-			NotificationChain msgs = null;
-			if (softwareLayersDelay != null)
-				msgs = ((InternalEObject)softwareLayersDelay).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.END_PERFORMANCE__SOFTWARE_LAYERS_DELAY, null, msgs);
-			if (newSoftwareLayersDelay != null)
-				msgs = ((InternalEObject)newSoftwareLayersDelay).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.END_PERFORMANCE__SOFTWARE_LAYERS_DELAY, null, msgs);
-			msgs = basicSetSoftwareLayersDelay(newSoftwareLayersDelay, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.END_PERFORMANCE__SOFTWARE_LAYERS_DELAY, newSoftwareLayersDelay, newSoftwareLayersDelay));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EndPerformanceType getEntityType() {
-		if (entityType != null && entityType.eIsProxy()) {
-			InternalEObject oldEntityType = (InternalEObject)entityType;
-			entityType = (EndPerformanceType)eResolveProxy(oldEntityType);
-			if (entityType != oldEntityType) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.END_PERFORMANCE__ENTITY_TYPE, oldEntityType, entityType));
-			}
-		}
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EndPerformanceType basicGetEntityType() {
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetEntityType(EndPerformanceType newEntityType, NotificationChain msgs) {
-		EndPerformanceType oldEntityType = entityType;
-		entityType = newEntityType;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.END_PERFORMANCE__ENTITY_TYPE, oldEntityType, newEntityType);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEntityType(EndPerformanceType newEntityType) {
-		if (newEntityType != entityType) {
-			NotificationChain msgs = null;
-			if (entityType != null)
-				msgs = ((InternalEObject)entityType).eInverseRemove(this, DNIPackage.END_PERFORMANCE_TYPE__ENTITIES, EndPerformanceType.class, msgs);
-			if (newEntityType != null)
-				msgs = ((InternalEObject)newEntityType).eInverseAdd(this, DNIPackage.END_PERFORMANCE_TYPE__ENTITIES, EndPerformanceType.class, msgs);
-			msgs = basicSetEntityType(newEntityType, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.END_PERFORMANCE__ENTITY_TYPE, newEntityType, newEntityType));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.END_PERFORMANCE__ENTITY_TYPE:
-				if (entityType != null)
-					msgs = ((InternalEObject)entityType).eInverseRemove(this, DNIPackage.END_PERFORMANCE_TYPE__ENTITIES, EndPerformanceType.class, msgs);
-				return basicSetEntityType((EndPerformanceType)otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.END_PERFORMANCE__SOFTWARE_LAYERS_DELAY:
-				return basicSetSoftwareLayersDelay(null, msgs);
-			case DNIPackage.END_PERFORMANCE__ENTITY_TYPE:
-				return basicSetEntityType(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.END_PERFORMANCE__SOFTWARE_LAYERS_DELAY:
-				return getSoftwareLayersDelay();
-			case DNIPackage.END_PERFORMANCE__ENTITY_TYPE:
-				if (resolve) return getEntityType();
-				return basicGetEntityType();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.END_PERFORMANCE__SOFTWARE_LAYERS_DELAY:
-				setSoftwareLayersDelay((Dependency)newValue);
-				return;
-			case DNIPackage.END_PERFORMANCE__ENTITY_TYPE:
-				setEntityType((EndPerformanceType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.END_PERFORMANCE__SOFTWARE_LAYERS_DELAY:
-				setSoftwareLayersDelay((Dependency)null);
-				return;
-			case DNIPackage.END_PERFORMANCE__ENTITY_TYPE:
-				setEntityType((EndPerformanceType)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.END_PERFORMANCE__SOFTWARE_LAYERS_DELAY:
-				return softwareLayersDelay != null;
-			case DNIPackage.END_PERFORMANCE__ENTITY_TYPE:
-				return entityType != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //EndPerformanceImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/EndPerformanceTypeImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/EndPerformanceTypeImpl.java
deleted file mode 100644
index abb72eb3..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/EndPerformanceTypeImpl.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.EObjectWithInverseResolvingEList;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.EndPerformance;
-import tools.descartes.dni.dnimm3.EndPerformanceType;
-import tools.descartes.dni.dnimm3.Identifier;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>End Performance Type</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.EndPerformanceTypeImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.EndPerformanceTypeImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.EndPerformanceTypeImpl#getUid <em>Uid</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.EndPerformanceTypeImpl#getUid_generated <em>Uid generated</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.EndPerformanceTypeImpl#getEntities <em>Entities</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class EndPerformanceTypeImpl extends MinimalEObjectImpl.Container implements EndPerformanceType {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The default value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected String uid = UID_EDEFAULT;
-
-	/**
-	 * This is true if the Uid attribute has been set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean uidESet;
-
-	/**
-	 * The default value of the '{@link #getUid_generated() <em>Uid generated</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid_generated()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_GENERATED_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getEntities() <em>Entities</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntities()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<EndPerformance> entities;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EndPerformanceTypeImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.END_PERFORMANCE_TYPE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.END_PERFORMANCE_TYPE__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIPackage.END_PERFORMANCE_TYPE__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid() {
-		return uid;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setUid(String newUid) {
-		String oldUid = uid;
-		uid = newUid;
-		boolean oldUidESet = uidESet;
-		uidESet = true;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.END_PERFORMANCE_TYPE__UID, oldUid, uid, !oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void unsetUid() {
-		String oldUid = uid;
-		boolean oldUidESet = uidESet;
-		uid = UID_EDEFAULT;
-		uidESet = false;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.UNSET, DNIPackage.END_PERFORMANCE_TYPE__UID, oldUid, UID_EDEFAULT, oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isSetUid() {
-		return uidESet;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid_generated() {
-		if (((this.getUid() == null) || this.getUid().isEmpty())) {
-			this.setUid(EcoreUtil.generateUUID().toString());
-		}
-		return this.getUid();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<EndPerformance> getEntities() {
-		if (entities == null) {
-			entities = new EObjectWithInverseResolvingEList<EndPerformance>(EndPerformance.class, this, DNIPackage.END_PERFORMANCE_TYPE__ENTITIES, DNIPackage.END_PERFORMANCE__ENTITY_TYPE);
-		}
-		return entities;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.END_PERFORMANCE_TYPE__ENTITIES:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getEntities()).basicAdd(otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.END_PERFORMANCE_TYPE__ENTITIES:
-				return ((InternalEList<?>)getEntities()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.END_PERFORMANCE_TYPE__NAME:
-				return getName();
-			case DNIPackage.END_PERFORMANCE_TYPE__DESCRIPTION:
-				return getDescription();
-			case DNIPackage.END_PERFORMANCE_TYPE__UID:
-				return getUid();
-			case DNIPackage.END_PERFORMANCE_TYPE__UID_GENERATED:
-				return getUid_generated();
-			case DNIPackage.END_PERFORMANCE_TYPE__ENTITIES:
-				return getEntities();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.END_PERFORMANCE_TYPE__NAME:
-				setName((String)newValue);
-				return;
-			case DNIPackage.END_PERFORMANCE_TYPE__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIPackage.END_PERFORMANCE_TYPE__UID:
-				setUid((String)newValue);
-				return;
-			case DNIPackage.END_PERFORMANCE_TYPE__ENTITIES:
-				getEntities().clear();
-				getEntities().addAll((Collection<? extends EndPerformance>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.END_PERFORMANCE_TYPE__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIPackage.END_PERFORMANCE_TYPE__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIPackage.END_PERFORMANCE_TYPE__UID:
-				unsetUid();
-				return;
-			case DNIPackage.END_PERFORMANCE_TYPE__ENTITIES:
-				getEntities().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.END_PERFORMANCE_TYPE__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIPackage.END_PERFORMANCE_TYPE__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIPackage.END_PERFORMANCE_TYPE__UID:
-				return isSetUid();
-			case DNIPackage.END_PERFORMANCE_TYPE__UID_GENERATED:
-				return UID_GENERATED_EDEFAULT == null ? getUid_generated() != null : !UID_GENERATED_EDEFAULT.equals(getUid_generated());
-			case DNIPackage.END_PERFORMANCE_TYPE__ENTITIES:
-				return entities != null && !entities.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == Identifier.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.END_PERFORMANCE_TYPE__UID: return DNIPackage.IDENTIFIER__UID;
-				case DNIPackage.END_PERFORMANCE_TYPE__UID_GENERATED: return DNIPackage.IDENTIFIER__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == Identifier.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.IDENTIFIER__UID: return DNIPackage.END_PERFORMANCE_TYPE__UID;
-				case DNIPackage.IDENTIFIER__UID_GENERATED: return DNIPackage.END_PERFORMANCE_TYPE__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(", uid: ");
-		if (uidESet) result.append(uid); else result.append("<unset>");
-		result.append(')');
-		return result.toString();
-	}
-
-} //EndPerformanceTypeImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/EntityAddressImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/EntityAddressImpl.java
deleted file mode 100644
index 7dd699d5..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/EntityAddressImpl.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-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 tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.EntityAddress;
-import tools.descartes.dni.dnimm3.NetworkProtocol;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Entity Address</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.EntityAddressImpl#getAddress <em>Address</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.EntityAddressImpl#getAddressGivenBy <em>Address Given By</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class EntityAddressImpl extends MinimalEObjectImpl.Container implements EntityAddress {
-	/**
-	 * The default value of the '{@link #getAddress() <em>Address</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAddress()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String ADDRESS_EDEFAULT = "x.x.x.x";
-
-	/**
-	 * The cached value of the '{@link #getAddress() <em>Address</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAddress()
-	 * @generated
-	 * @ordered
-	 */
-	protected String address = ADDRESS_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getAddressGivenBy() <em>Address Given By</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAddressGivenBy()
-	 * @generated
-	 * @ordered
-	 */
-	protected NetworkProtocol addressGivenBy;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EntityAddressImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.ENTITY_ADDRESS;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getAddress() {
-		return address;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setAddress(String newAddress) {
-		String oldAddress = address;
-		address = newAddress;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.ENTITY_ADDRESS__ADDRESS, oldAddress, address));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkProtocol getAddressGivenBy() {
-		if (addressGivenBy != null && addressGivenBy.eIsProxy()) {
-			InternalEObject oldAddressGivenBy = (InternalEObject)addressGivenBy;
-			addressGivenBy = (NetworkProtocol)eResolveProxy(oldAddressGivenBy);
-			if (addressGivenBy != oldAddressGivenBy) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.ENTITY_ADDRESS__ADDRESS_GIVEN_BY, oldAddressGivenBy, addressGivenBy));
-			}
-		}
-		return addressGivenBy;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkProtocol basicGetAddressGivenBy() {
-		return addressGivenBy;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setAddressGivenBy(NetworkProtocol newAddressGivenBy) {
-		NetworkProtocol oldAddressGivenBy = addressGivenBy;
-		addressGivenBy = newAddressGivenBy;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.ENTITY_ADDRESS__ADDRESS_GIVEN_BY, oldAddressGivenBy, addressGivenBy));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.ENTITY_ADDRESS__ADDRESS:
-				return getAddress();
-			case DNIPackage.ENTITY_ADDRESS__ADDRESS_GIVEN_BY:
-				if (resolve) return getAddressGivenBy();
-				return basicGetAddressGivenBy();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.ENTITY_ADDRESS__ADDRESS:
-				setAddress((String)newValue);
-				return;
-			case DNIPackage.ENTITY_ADDRESS__ADDRESS_GIVEN_BY:
-				setAddressGivenBy((NetworkProtocol)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.ENTITY_ADDRESS__ADDRESS:
-				setAddress(ADDRESS_EDEFAULT);
-				return;
-			case DNIPackage.ENTITY_ADDRESS__ADDRESS_GIVEN_BY:
-				setAddressGivenBy((NetworkProtocol)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.ENTITY_ADDRESS__ADDRESS:
-				return ADDRESS_EDEFAULT == null ? address != null : !ADDRESS_EDEFAULT.equals(address);
-			case DNIPackage.ENTITY_ADDRESS__ADDRESS_GIVEN_BY:
-				return addressGivenBy != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (address: ");
-		result.append(address);
-		result.append(')');
-		return result.toString();
-	}
-
-} //EntityAddressImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/EntityTypesImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/EntityTypesImpl.java
deleted file mode 100644
index 3e40830b..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/EntityTypesImpl.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.EntityTypes;
-import tools.descartes.dni.dnimm3.ITypedEntity;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Entity Types</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.EntityTypesImpl#getTypes <em>Types</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class EntityTypesImpl extends MinimalEObjectImpl.Container implements EntityTypes {
-	/**
-	 * The cached value of the '{@link #getTypes() <em>Types</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getTypes()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<ITypedEntity> types;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EntityTypesImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.ENTITY_TYPES;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<ITypedEntity> getTypes() {
-		if (types == null) {
-			types = new EObjectContainmentEList<ITypedEntity>(ITypedEntity.class, this, DNIPackage.ENTITY_TYPES__TYPES);
-		}
-		return types;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.ENTITY_TYPES__TYPES:
-				return ((InternalEList<?>)getTypes()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.ENTITY_TYPES__TYPES:
-				return getTypes();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.ENTITY_TYPES__TYPES:
-				getTypes().clear();
-				getTypes().addAll((Collection<? extends ITypedEntity>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.ENTITY_TYPES__TYPES:
-				getTypes().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.ENTITY_TYPES__TYPES:
-				return types != null && !types.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //EntityTypesImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ExponentialFunctionImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ExponentialFunctionImpl.java
deleted file mode 100644
index 61174e57..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ExponentialFunctionImpl.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-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 tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.DNIUnit;
-import tools.descartes.dni.dnimm3.ExponentialFunction;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Exponential Function</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.ExponentialFunctionImpl#getUnit <em>Unit</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.ExponentialFunctionImpl#getLambda <em>Lambda</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ExponentialFunctionImpl extends MinimalEObjectImpl.Container implements ExponentialFunction {
-	/**
-	 * The cached value of the '{@link #getUnit() <em>Unit</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUnit()
-	 * @generated
-	 * @ordered
-	 */
-	protected DNIUnit unit;
-
-	/**
-	 * The default value of the '{@link #getLambda() <em>Lambda</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getLambda()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final double LAMBDA_EDEFAULT = 0.0;
-
-	/**
-	 * The cached value of the '{@link #getLambda() <em>Lambda</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getLambda()
-	 * @generated
-	 * @ordered
-	 */
-	protected double lambda = LAMBDA_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ExponentialFunctionImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.EXPONENTIAL_FUNCTION;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DNIUnit getUnit() {
-		return unit;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetUnit(DNIUnit newUnit, NotificationChain msgs) {
-		DNIUnit oldUnit = unit;
-		unit = newUnit;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.EXPONENTIAL_FUNCTION__UNIT, oldUnit, newUnit);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setUnit(DNIUnit newUnit) {
-		if (newUnit != unit) {
-			NotificationChain msgs = null;
-			if (unit != null)
-				msgs = ((InternalEObject)unit).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.EXPONENTIAL_FUNCTION__UNIT, null, msgs);
-			if (newUnit != null)
-				msgs = ((InternalEObject)newUnit).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.EXPONENTIAL_FUNCTION__UNIT, null, msgs);
-			msgs = basicSetUnit(newUnit, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.EXPONENTIAL_FUNCTION__UNIT, newUnit, newUnit));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public double getLambda() {
-		return lambda;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setLambda(double newLambda) {
-		double oldLambda = lambda;
-		lambda = newLambda;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.EXPONENTIAL_FUNCTION__LAMBDA, oldLambda, lambda));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.EXPONENTIAL_FUNCTION__UNIT:
-				return basicSetUnit(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.EXPONENTIAL_FUNCTION__UNIT:
-				return getUnit();
-			case DNIPackage.EXPONENTIAL_FUNCTION__LAMBDA:
-				return getLambda();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.EXPONENTIAL_FUNCTION__UNIT:
-				setUnit((DNIUnit)newValue);
-				return;
-			case DNIPackage.EXPONENTIAL_FUNCTION__LAMBDA:
-				setLambda((Double)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.EXPONENTIAL_FUNCTION__UNIT:
-				setUnit((DNIUnit)null);
-				return;
-			case DNIPackage.EXPONENTIAL_FUNCTION__LAMBDA:
-				setLambda(LAMBDA_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.EXPONENTIAL_FUNCTION__UNIT:
-				return unit != null;
-			case DNIPackage.EXPONENTIAL_FUNCTION__LAMBDA:
-				return lambda != LAMBDA_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (lambda: ");
-		result.append(lambda);
-		result.append(')');
-		return result.toString();
-	}
-
-} //ExponentialFunctionImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/FloatCoordinateImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/FloatCoordinateImpl.java
deleted file mode 100644
index 1c24e4e6..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/FloatCoordinateImpl.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.FloatCoordinate;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Float Coordinate</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.FloatCoordinateImpl#getX <em>X</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.FloatCoordinateImpl#getY <em>Y</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class FloatCoordinateImpl extends MinimalEObjectImpl.Container implements FloatCoordinate {
-	/**
-	 * The default value of the '{@link #getX() <em>X</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getX()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final double X_EDEFAULT = 0.0;
-
-	/**
-	 * The cached value of the '{@link #getX() <em>X</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getX()
-	 * @generated
-	 * @ordered
-	 */
-	protected double x = X_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getY() <em>Y</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getY()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final double Y_EDEFAULT = 0.0;
-
-	/**
-	 * The cached value of the '{@link #getY() <em>Y</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getY()
-	 * @generated
-	 * @ordered
-	 */
-	protected double y = Y_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected FloatCoordinateImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.FLOAT_COORDINATE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public double getX() {
-		return x;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setX(double newX) {
-		double oldX = x;
-		x = newX;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.FLOAT_COORDINATE__X, oldX, x));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public double getY() {
-		return y;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setY(double newY) {
-		double oldY = y;
-		y = newY;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.FLOAT_COORDINATE__Y, oldY, y));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.FLOAT_COORDINATE__X:
-				return getX();
-			case DNIPackage.FLOAT_COORDINATE__Y:
-				return getY();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.FLOAT_COORDINATE__X:
-				setX((Double)newValue);
-				return;
-			case DNIPackage.FLOAT_COORDINATE__Y:
-				setY((Double)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.FLOAT_COORDINATE__X:
-				setX(X_EDEFAULT);
-				return;
-			case DNIPackage.FLOAT_COORDINATE__Y:
-				setY(Y_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.FLOAT_COORDINATE__X:
-				return x != X_EDEFAULT;
-			case DNIPackage.FLOAT_COORDINATE__Y:
-				return y != Y_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (x: ");
-		result.append(x);
-		result.append(", y: ");
-		result.append(y);
-		result.append(')');
-		return result.toString();
-	}
-
-} //FloatCoordinateImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/FlowImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/FlowImpl.java
deleted file mode 100644
index beca5e97..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/FlowImpl.java
+++ /dev/null
@@ -1,460 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
-import org.eclipse.emf.ecore.util.EObjectResolvingEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.CommunicatingApplication;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.EntityAddress;
-import tools.descartes.dni.dnimm3.Flow;
-import tools.descartes.dni.dnimm3.FlowTraffic;
-import tools.descartes.dni.dnimm3.NamedElement;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Flow</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.FlowImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.FlowImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.FlowImpl#getSourceSoftware <em>Source Software</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.FlowImpl#getGeneratedTraffic <em>Generated Traffic</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.FlowImpl#getDestinationSoftware <em>Destination Software</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.FlowImpl#getDestinationAddresses <em>Destination Addresses</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class FlowImpl extends IdentifierImpl implements Flow {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The cached value of the '{@link #getSourceSoftware() <em>Source Software</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSourceSoftware()
-	 * @generated
-	 * @ordered
-	 */
-	protected CommunicatingApplication sourceSoftware;
-
-	/**
-	 * The cached value of the '{@link #getGeneratedTraffic() <em>Generated Traffic</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGeneratedTraffic()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<FlowTraffic> generatedTraffic;
-
-	/**
-	 * The cached value of the '{@link #getDestinationSoftware() <em>Destination Software</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDestinationSoftware()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<CommunicatingApplication> destinationSoftware;
-
-	/**
-	 * The cached value of the '{@link #getDestinationAddresses() <em>Destination Addresses</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDestinationAddresses()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<EntityAddress> destinationAddresses;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected FlowImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.FLOW;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.FLOW__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIPackage.FLOW__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public CommunicatingApplication getSourceSoftware() {
-		if (sourceSoftware != null && sourceSoftware.eIsProxy()) {
-			InternalEObject oldSourceSoftware = (InternalEObject)sourceSoftware;
-			sourceSoftware = (CommunicatingApplication)eResolveProxy(oldSourceSoftware);
-			if (sourceSoftware != oldSourceSoftware) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.FLOW__SOURCE_SOFTWARE, oldSourceSoftware, sourceSoftware));
-			}
-		}
-		return sourceSoftware;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public CommunicatingApplication basicGetSourceSoftware() {
-		return sourceSoftware;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setSourceSoftware(CommunicatingApplication newSourceSoftware) {
-		CommunicatingApplication oldSourceSoftware = sourceSoftware;
-		sourceSoftware = newSourceSoftware;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.FLOW__SOURCE_SOFTWARE, oldSourceSoftware, sourceSoftware));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<FlowTraffic> getGeneratedTraffic() {
-		if (generatedTraffic == null) {
-			generatedTraffic = new EObjectContainmentWithInverseEList<FlowTraffic>(FlowTraffic.class, this, DNIPackage.FLOW__GENERATED_TRAFFIC, DNIPackage.FLOW_TRAFFIC__FLOW);
-		}
-		return generatedTraffic;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<CommunicatingApplication> getDestinationSoftware() {
-		if (destinationSoftware == null) {
-			destinationSoftware = new EObjectResolvingEList<CommunicatingApplication>(CommunicatingApplication.class, this, DNIPackage.FLOW__DESTINATION_SOFTWARE);
-		}
-		return destinationSoftware;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<EntityAddress> getDestinationAddresses() {
-		if (destinationAddresses == null) {
-			destinationAddresses = new EObjectContainmentEList<EntityAddress>(EntityAddress.class, this, DNIPackage.FLOW__DESTINATION_ADDRESSES);
-		}
-		return destinationAddresses;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.FLOW__GENERATED_TRAFFIC:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getGeneratedTraffic()).basicAdd(otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.FLOW__GENERATED_TRAFFIC:
-				return ((InternalEList<?>)getGeneratedTraffic()).basicRemove(otherEnd, msgs);
-			case DNIPackage.FLOW__DESTINATION_ADDRESSES:
-				return ((InternalEList<?>)getDestinationAddresses()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.FLOW__NAME:
-				return getName();
-			case DNIPackage.FLOW__DESCRIPTION:
-				return getDescription();
-			case DNIPackage.FLOW__SOURCE_SOFTWARE:
-				if (resolve) return getSourceSoftware();
-				return basicGetSourceSoftware();
-			case DNIPackage.FLOW__GENERATED_TRAFFIC:
-				return getGeneratedTraffic();
-			case DNIPackage.FLOW__DESTINATION_SOFTWARE:
-				return getDestinationSoftware();
-			case DNIPackage.FLOW__DESTINATION_ADDRESSES:
-				return getDestinationAddresses();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.FLOW__NAME:
-				setName((String)newValue);
-				return;
-			case DNIPackage.FLOW__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIPackage.FLOW__SOURCE_SOFTWARE:
-				setSourceSoftware((CommunicatingApplication)newValue);
-				return;
-			case DNIPackage.FLOW__GENERATED_TRAFFIC:
-				getGeneratedTraffic().clear();
-				getGeneratedTraffic().addAll((Collection<? extends FlowTraffic>)newValue);
-				return;
-			case DNIPackage.FLOW__DESTINATION_SOFTWARE:
-				getDestinationSoftware().clear();
-				getDestinationSoftware().addAll((Collection<? extends CommunicatingApplication>)newValue);
-				return;
-			case DNIPackage.FLOW__DESTINATION_ADDRESSES:
-				getDestinationAddresses().clear();
-				getDestinationAddresses().addAll((Collection<? extends EntityAddress>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.FLOW__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIPackage.FLOW__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIPackage.FLOW__SOURCE_SOFTWARE:
-				setSourceSoftware((CommunicatingApplication)null);
-				return;
-			case DNIPackage.FLOW__GENERATED_TRAFFIC:
-				getGeneratedTraffic().clear();
-				return;
-			case DNIPackage.FLOW__DESTINATION_SOFTWARE:
-				getDestinationSoftware().clear();
-				return;
-			case DNIPackage.FLOW__DESTINATION_ADDRESSES:
-				getDestinationAddresses().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.FLOW__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIPackage.FLOW__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIPackage.FLOW__SOURCE_SOFTWARE:
-				return sourceSoftware != null;
-			case DNIPackage.FLOW__GENERATED_TRAFFIC:
-				return generatedTraffic != null && !generatedTraffic.isEmpty();
-			case DNIPackage.FLOW__DESTINATION_SOFTWARE:
-				return destinationSoftware != null && !destinationSoftware.isEmpty();
-			case DNIPackage.FLOW__DESTINATION_ADDRESSES:
-				return destinationAddresses != null && !destinationAddresses.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.FLOW__NAME: return DNIPackage.NAMED_ELEMENT__NAME;
-				case DNIPackage.FLOW__DESCRIPTION: return DNIPackage.NAMED_ELEMENT__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.NAMED_ELEMENT__NAME: return DNIPackage.FLOW__NAME;
-				case DNIPackage.NAMED_ELEMENT__DESCRIPTION: return DNIPackage.FLOW__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(')');
-		return result.toString();
-	}
-
-} //FlowImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/FlowRouteImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/FlowRouteImpl.java
deleted file mode 100644
index 301bf215..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/FlowRouteImpl.java
+++ /dev/null
@@ -1,568 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Flow;
-import tools.descartes.dni.dnimm3.FlowRoute;
-import tools.descartes.dni.dnimm3.Hop;
-import tools.descartes.dni.dnimm3.NamedElement;
-import tools.descartes.dni.dnimm3.NetworkInterface;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Flow Route</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.FlowRouteImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.FlowRouteImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.FlowRouteImpl#getHops <em>Hops</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.FlowRouteImpl#getFlow <em>Flow</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.FlowRouteImpl#getStart <em>Start</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.FlowRouteImpl#getEnd <em>End</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.FlowRouteImpl#getProbability <em>Probability</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class FlowRouteImpl extends IdentifierImpl implements FlowRoute {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The cached value of the '{@link #getHops() <em>Hops</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getHops()
-	 * @generated
-	 * @ordered
-	 */
-	protected Hop hops;
-
-	/**
-	 * The cached value of the '{@link #getFlow() <em>Flow</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getFlow()
-	 * @generated
-	 * @ordered
-	 */
-	protected Flow flow;
-
-	/**
-	 * The cached value of the '{@link #getStart() <em>Start</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getStart()
-	 * @generated
-	 * @ordered
-	 */
-	protected NetworkInterface start;
-
-	/**
-	 * The cached value of the '{@link #getEnd() <em>End</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEnd()
-	 * @generated
-	 * @ordered
-	 */
-	protected NetworkInterface end;
-
-	/**
-	 * The default value of the '{@link #getProbability() <em>Probability</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProbability()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final float PROBABILITY_EDEFAULT = 1.0F;
-
-	/**
-	 * The cached value of the '{@link #getProbability() <em>Probability</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProbability()
-	 * @generated
-	 * @ordered
-	 */
-	protected float probability = PROBABILITY_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected FlowRouteImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.FLOW_ROUTE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.FLOW_ROUTE__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIPackage.FLOW_ROUTE__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Hop getHops() {
-		return hops;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetHops(Hop newHops, NotificationChain msgs) {
-		Hop oldHops = hops;
-		hops = newHops;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.FLOW_ROUTE__HOPS, oldHops, newHops);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setHops(Hop newHops) {
-		if (newHops != hops) {
-			NotificationChain msgs = null;
-			if (hops != null)
-				msgs = ((InternalEObject)hops).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.FLOW_ROUTE__HOPS, null, msgs);
-			if (newHops != null)
-				msgs = ((InternalEObject)newHops).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.FLOW_ROUTE__HOPS, null, msgs);
-			msgs = basicSetHops(newHops, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.FLOW_ROUTE__HOPS, newHops, newHops));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Flow getFlow() {
-		if (flow != null && flow.eIsProxy()) {
-			InternalEObject oldFlow = (InternalEObject)flow;
-			flow = (Flow)eResolveProxy(oldFlow);
-			if (flow != oldFlow) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.FLOW_ROUTE__FLOW, oldFlow, flow));
-			}
-		}
-		return flow;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Flow basicGetFlow() {
-		return flow;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setFlow(Flow newFlow) {
-		Flow oldFlow = flow;
-		flow = newFlow;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.FLOW_ROUTE__FLOW, oldFlow, flow));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterface getStart() {
-		if (start != null && start.eIsProxy()) {
-			InternalEObject oldStart = (InternalEObject)start;
-			start = (NetworkInterface)eResolveProxy(oldStart);
-			if (start != oldStart) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.FLOW_ROUTE__START, oldStart, start));
-			}
-		}
-		return start;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterface basicGetStart() {
-		return start;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setStart(NetworkInterface newStart) {
-		NetworkInterface oldStart = start;
-		start = newStart;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.FLOW_ROUTE__START, oldStart, start));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterface getEnd() {
-		if (end != null && end.eIsProxy()) {
-			InternalEObject oldEnd = (InternalEObject)end;
-			end = (NetworkInterface)eResolveProxy(oldEnd);
-			if (end != oldEnd) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.FLOW_ROUTE__END, oldEnd, end));
-			}
-		}
-		return end;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterface basicGetEnd() {
-		return end;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEnd(NetworkInterface newEnd) {
-		NetworkInterface oldEnd = end;
-		end = newEnd;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.FLOW_ROUTE__END, oldEnd, end));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public float getProbability() {
-		return probability;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setProbability(float newProbability) {
-		float oldProbability = probability;
-		probability = newProbability;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.FLOW_ROUTE__PROBABILITY, oldProbability, probability));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.FLOW_ROUTE__HOPS:
-				return basicSetHops(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.FLOW_ROUTE__NAME:
-				return getName();
-			case DNIPackage.FLOW_ROUTE__DESCRIPTION:
-				return getDescription();
-			case DNIPackage.FLOW_ROUTE__HOPS:
-				return getHops();
-			case DNIPackage.FLOW_ROUTE__FLOW:
-				if (resolve) return getFlow();
-				return basicGetFlow();
-			case DNIPackage.FLOW_ROUTE__START:
-				if (resolve) return getStart();
-				return basicGetStart();
-			case DNIPackage.FLOW_ROUTE__END:
-				if (resolve) return getEnd();
-				return basicGetEnd();
-			case DNIPackage.FLOW_ROUTE__PROBABILITY:
-				return getProbability();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.FLOW_ROUTE__NAME:
-				setName((String)newValue);
-				return;
-			case DNIPackage.FLOW_ROUTE__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIPackage.FLOW_ROUTE__HOPS:
-				setHops((Hop)newValue);
-				return;
-			case DNIPackage.FLOW_ROUTE__FLOW:
-				setFlow((Flow)newValue);
-				return;
-			case DNIPackage.FLOW_ROUTE__START:
-				setStart((NetworkInterface)newValue);
-				return;
-			case DNIPackage.FLOW_ROUTE__END:
-				setEnd((NetworkInterface)newValue);
-				return;
-			case DNIPackage.FLOW_ROUTE__PROBABILITY:
-				setProbability((Float)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.FLOW_ROUTE__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIPackage.FLOW_ROUTE__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIPackage.FLOW_ROUTE__HOPS:
-				setHops((Hop)null);
-				return;
-			case DNIPackage.FLOW_ROUTE__FLOW:
-				setFlow((Flow)null);
-				return;
-			case DNIPackage.FLOW_ROUTE__START:
-				setStart((NetworkInterface)null);
-				return;
-			case DNIPackage.FLOW_ROUTE__END:
-				setEnd((NetworkInterface)null);
-				return;
-			case DNIPackage.FLOW_ROUTE__PROBABILITY:
-				setProbability(PROBABILITY_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.FLOW_ROUTE__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIPackage.FLOW_ROUTE__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIPackage.FLOW_ROUTE__HOPS:
-				return hops != null;
-			case DNIPackage.FLOW_ROUTE__FLOW:
-				return flow != null;
-			case DNIPackage.FLOW_ROUTE__START:
-				return start != null;
-			case DNIPackage.FLOW_ROUTE__END:
-				return end != null;
-			case DNIPackage.FLOW_ROUTE__PROBABILITY:
-				return probability != PROBABILITY_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.FLOW_ROUTE__NAME: return DNIPackage.NAMED_ELEMENT__NAME;
-				case DNIPackage.FLOW_ROUTE__DESCRIPTION: return DNIPackage.NAMED_ELEMENT__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.NAMED_ELEMENT__NAME: return DNIPackage.FLOW_ROUTE__NAME;
-				case DNIPackage.NAMED_ELEMENT__DESCRIPTION: return DNIPackage.FLOW_ROUTE__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(", probability: ");
-		result.append(probability);
-		result.append(')');
-		return result.toString();
-	}
-
-} //FlowRouteImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/FlowTrafficImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/FlowTrafficImpl.java
deleted file mode 100644
index 34beae37..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/FlowTrafficImpl.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-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.EcoreUtil;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Flow;
-import tools.descartes.dni.dnimm3.FlowTraffic;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Flow Traffic</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.FlowTrafficImpl#getFlow <em>Flow</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.FlowTrafficImpl#getName <em>Name</em>}</li>
- * </ul>
- *
- * @generated
- */
-public abstract class FlowTrafficImpl extends MinimalEObjectImpl.Container implements FlowTraffic {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected FlowTrafficImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.FLOW_TRAFFIC;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Flow getFlow() {
-		if (eContainerFeatureID() != DNIPackage.FLOW_TRAFFIC__FLOW) return null;
-		return (Flow)eContainer();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Flow basicGetFlow() {
-		if (eContainerFeatureID() != DNIPackage.FLOW_TRAFFIC__FLOW) return null;
-		return (Flow)eInternalContainer();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetFlow(Flow newFlow, NotificationChain msgs) {
-		msgs = eBasicSetContainer((InternalEObject)newFlow, DNIPackage.FLOW_TRAFFIC__FLOW, msgs);
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setFlow(Flow newFlow) {
-		if (newFlow != eInternalContainer() || (eContainerFeatureID() != DNIPackage.FLOW_TRAFFIC__FLOW && newFlow != null)) {
-			if (EcoreUtil.isAncestor(this, newFlow))
-				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
-			NotificationChain msgs = null;
-			if (eInternalContainer() != null)
-				msgs = eBasicRemoveFromContainer(msgs);
-			if (newFlow != null)
-				msgs = ((InternalEObject)newFlow).eInverseAdd(this, DNIPackage.FLOW__GENERATED_TRAFFIC, Flow.class, msgs);
-			msgs = basicSetFlow(newFlow, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.FLOW_TRAFFIC__FLOW, newFlow, newFlow));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		String _name = this.getFlow().getName();
-		String _plus = (("FlowTraffic" + "[") + _name);
-		return (_plus + "]");
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.FLOW_TRAFFIC__FLOW:
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetFlow((Flow)otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.FLOW_TRAFFIC__FLOW:
-				return basicSetFlow(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
-		switch (eContainerFeatureID()) {
-			case DNIPackage.FLOW_TRAFFIC__FLOW:
-				return eInternalContainer().eInverseRemove(this, DNIPackage.FLOW__GENERATED_TRAFFIC, Flow.class, msgs);
-		}
-		return super.eBasicRemoveFromContainerFeature(msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.FLOW_TRAFFIC__FLOW:
-				if (resolve) return getFlow();
-				return basicGetFlow();
-			case DNIPackage.FLOW_TRAFFIC__NAME:
-				return getName();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.FLOW_TRAFFIC__FLOW:
-				setFlow((Flow)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.FLOW_TRAFFIC__FLOW:
-				setFlow((Flow)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.FLOW_TRAFFIC__FLOW:
-				return basicGetFlow() != null;
-			case DNIPackage.FLOW_TRAFFIC__NAME:
-				return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //FlowTrafficImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/GenericFlowTrafficImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/GenericFlowTrafficImpl.java
deleted file mode 100644
index e9fab62a..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/GenericFlowTrafficImpl.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Dependency;
-import tools.descartes.dni.dnimm3.GenericFlowTraffic;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Generic Flow Traffic</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.GenericFlowTrafficImpl#getDataSize <em>Data Size</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class GenericFlowTrafficImpl extends FlowTrafficImpl implements GenericFlowTraffic {
-	/**
-	 * The cached value of the '{@link #getDataSize() <em>Data Size</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDataSize()
-	 * @generated
-	 * @ordered
-	 */
-	protected Dependency dataSize;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected GenericFlowTrafficImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.GENERIC_FLOW_TRAFFIC;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Dependency getDataSize() {
-		return dataSize;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetDataSize(Dependency newDataSize, NotificationChain msgs) {
-		Dependency oldDataSize = dataSize;
-		dataSize = newDataSize;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.GENERIC_FLOW_TRAFFIC__DATA_SIZE, oldDataSize, newDataSize);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setDataSize(Dependency newDataSize) {
-		if (newDataSize != dataSize) {
-			NotificationChain msgs = null;
-			if (dataSize != null)
-				msgs = ((InternalEObject)dataSize).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.GENERIC_FLOW_TRAFFIC__DATA_SIZE, null, msgs);
-			if (newDataSize != null)
-				msgs = ((InternalEObject)newDataSize).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.GENERIC_FLOW_TRAFFIC__DATA_SIZE, null, msgs);
-			msgs = basicSetDataSize(newDataSize, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.GENERIC_FLOW_TRAFFIC__DATA_SIZE, newDataSize, newDataSize));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.GENERIC_FLOW_TRAFFIC__DATA_SIZE:
-				return basicSetDataSize(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.GENERIC_FLOW_TRAFFIC__DATA_SIZE:
-				return getDataSize();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.GENERIC_FLOW_TRAFFIC__DATA_SIZE:
-				setDataSize((Dependency)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.GENERIC_FLOW_TRAFFIC__DATA_SIZE:
-				setDataSize((Dependency)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.GENERIC_FLOW_TRAFFIC__DATA_SIZE:
-				return dataSize != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //GenericFlowTrafficImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/GenericWorkloadImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/GenericWorkloadImpl.java
deleted file mode 100644
index fca0ad6f..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/GenericWorkloadImpl.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.AbstractAction;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.GenericWorkload;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Generic Workload</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.GenericWorkloadImpl#getActions <em>Actions</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class GenericWorkloadImpl extends MinimalEObjectImpl.Container implements GenericWorkload {
-	/**
-	 * The cached value of the '{@link #getActions() <em>Actions</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getActions()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AbstractAction> actions;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected GenericWorkloadImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.GENERIC_WORKLOAD;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AbstractAction> getActions() {
-		if (actions == null) {
-			actions = new EObjectContainmentEList<AbstractAction>(AbstractAction.class, this, DNIPackage.GENERIC_WORKLOAD__ACTIONS);
-		}
-		return actions;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.GENERIC_WORKLOAD__ACTIONS:
-				return ((InternalEList<?>)getActions()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.GENERIC_WORKLOAD__ACTIONS:
-				return getActions();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.GENERIC_WORKLOAD__ACTIONS:
-				getActions().clear();
-				getActions().addAll((Collection<? extends AbstractAction>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.GENERIC_WORKLOAD__ACTIONS:
-				getActions().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.GENERIC_WORKLOAD__ACTIONS:
-				return actions != null && !actions.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //GenericWorkloadImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/HopImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/HopImpl.java
deleted file mode 100644
index e45b6f97..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/HopImpl.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-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 tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Hop;
-import tools.descartes.dni.dnimm3.NetworkInterface;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Hop</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.HopImpl#getNextHop <em>Next Hop</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.HopImpl#getInterfaceref <em>Interfaceref</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class HopImpl extends MinimalEObjectImpl.Container implements Hop {
-	/**
-	 * The cached value of the '{@link #getNextHop() <em>Next Hop</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getNextHop()
-	 * @generated
-	 * @ordered
-	 */
-	protected Hop nextHop;
-
-	/**
-	 * The cached value of the '{@link #getInterfaceref() <em>Interfaceref</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getInterfaceref()
-	 * @generated
-	 * @ordered
-	 */
-	protected NetworkInterface interfaceref;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected HopImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.HOP;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Hop getNextHop() {
-		return nextHop;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetNextHop(Hop newNextHop, NotificationChain msgs) {
-		Hop oldNextHop = nextHop;
-		nextHop = newNextHop;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.HOP__NEXT_HOP, oldNextHop, newNextHop);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setNextHop(Hop newNextHop) {
-		if (newNextHop != nextHop) {
-			NotificationChain msgs = null;
-			if (nextHop != null)
-				msgs = ((InternalEObject)nextHop).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.HOP__NEXT_HOP, null, msgs);
-			if (newNextHop != null)
-				msgs = ((InternalEObject)newNextHop).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.HOP__NEXT_HOP, null, msgs);
-			msgs = basicSetNextHop(newNextHop, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.HOP__NEXT_HOP, newNextHop, newNextHop));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterface getInterfaceref() {
-		if (interfaceref != null && interfaceref.eIsProxy()) {
-			InternalEObject oldInterfaceref = (InternalEObject)interfaceref;
-			interfaceref = (NetworkInterface)eResolveProxy(oldInterfaceref);
-			if (interfaceref != oldInterfaceref) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.HOP__INTERFACEREF, oldInterfaceref, interfaceref));
-			}
-		}
-		return interfaceref;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterface basicGetInterfaceref() {
-		return interfaceref;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setInterfaceref(NetworkInterface newInterfaceref) {
-		NetworkInterface oldInterfaceref = interfaceref;
-		interfaceref = newInterfaceref;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.HOP__INTERFACEREF, oldInterfaceref, interfaceref));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.HOP__NEXT_HOP:
-				return basicSetNextHop(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.HOP__NEXT_HOP:
-				return getNextHop();
-			case DNIPackage.HOP__INTERFACEREF:
-				if (resolve) return getInterfaceref();
-				return basicGetInterfaceref();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.HOP__NEXT_HOP:
-				setNextHop((Hop)newValue);
-				return;
-			case DNIPackage.HOP__INTERFACEREF:
-				setInterfaceref((NetworkInterface)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.HOP__NEXT_HOP:
-				setNextHop((Hop)null);
-				return;
-			case DNIPackage.HOP__INTERFACEREF:
-				setInterfaceref((NetworkInterface)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.HOP__NEXT_HOP:
-				return nextHop != null;
-			case DNIPackage.HOP__INTERFACEREF:
-				return interfaceref != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //HopImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/IdentifierImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/IdentifierImpl.java
deleted file mode 100644
index b8376724..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/IdentifierImpl.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Identifier;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Identifier</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.IdentifierImpl#getUid <em>Uid</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.IdentifierImpl#getUid_generated <em>Uid generated</em>}</li>
- * </ul>
- *
- * @generated
- */
-public abstract class IdentifierImpl extends MinimalEObjectImpl.Container implements Identifier {
-	/**
-	 * The default value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected String uid = UID_EDEFAULT;
-
-	/**
-	 * This is true if the Uid attribute has been set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean uidESet;
-
-	/**
-	 * The default value of the '{@link #getUid_generated() <em>Uid generated</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid_generated()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_GENERATED_EDEFAULT = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IdentifierImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.IDENTIFIER;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid() {
-		return uid;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setUid(String newUid) {
-		String oldUid = uid;
-		uid = newUid;
-		boolean oldUidESet = uidESet;
-		uidESet = true;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.IDENTIFIER__UID, oldUid, uid, !oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void unsetUid() {
-		String oldUid = uid;
-		boolean oldUidESet = uidESet;
-		uid = UID_EDEFAULT;
-		uidESet = false;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.UNSET, DNIPackage.IDENTIFIER__UID, oldUid, UID_EDEFAULT, oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isSetUid() {
-		return uidESet;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid_generated() {
-		if (((this.getUid() == null) || this.getUid().isEmpty())) {
-			this.setUid(EcoreUtil.generateUUID().toString());
-		}
-		return this.getUid();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.IDENTIFIER__UID:
-				return getUid();
-			case DNIPackage.IDENTIFIER__UID_GENERATED:
-				return getUid_generated();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.IDENTIFIER__UID:
-				setUid((String)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.IDENTIFIER__UID:
-				unsetUid();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.IDENTIFIER__UID:
-				return isSetUid();
-			case DNIPackage.IDENTIFIER__UID_GENERATED:
-				return UID_GENERATED_EDEFAULT == null ? getUid_generated() != null : !UID_GENERATED_EDEFAULT.equals(getUid_generated());
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (uid: ");
-		if (uidESet) result.append(uid); else result.append("<unset>");
-		result.append(')');
-		return result.toString();
-	}
-
-} //IdentifierImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/IntermediateImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/IntermediateImpl.java
deleted file mode 100644
index ed025457..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/IntermediateImpl.java
+++ /dev/null
@@ -1,299 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Intermediate;
-import tools.descartes.dni.dnimm3.IntermediatePerformance;
-import tools.descartes.dni.dnimm3.Node;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Intermediate</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.IntermediateImpl#getPerformance <em>Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.IntermediateImpl#getNode <em>Node</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.IntermediateImpl#getName <em>Name</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class IntermediateImpl extends IdentifierImpl implements Intermediate {
-	/**
-	 * The cached value of the '{@link #getPerformance() <em>Performance</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPerformance()
-	 * @generated
-	 * @ordered
-	 */
-	protected IntermediatePerformance performance;
-
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IntermediateImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.INTERMEDIATE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IntermediatePerformance getPerformance() {
-		return performance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetPerformance(IntermediatePerformance newPerformance, NotificationChain msgs) {
-		IntermediatePerformance oldPerformance = performance;
-		performance = newPerformance;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.INTERMEDIATE__PERFORMANCE, oldPerformance, newPerformance);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPerformance(IntermediatePerformance newPerformance) {
-		if (newPerformance != performance) {
-			NotificationChain msgs = null;
-			if (performance != null)
-				msgs = ((InternalEObject)performance).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.INTERMEDIATE__PERFORMANCE, null, msgs);
-			if (newPerformance != null)
-				msgs = ((InternalEObject)newPerformance).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.INTERMEDIATE__PERFORMANCE, null, msgs);
-			msgs = basicSetPerformance(newPerformance, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.INTERMEDIATE__PERFORMANCE, newPerformance, newPerformance));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Node getNode() {
-		if (eContainerFeatureID() != DNIPackage.INTERMEDIATE__NODE) return null;
-		return (Node)eContainer();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Node basicGetNode() {
-		if (eContainerFeatureID() != DNIPackage.INTERMEDIATE__NODE) return null;
-		return (Node)eInternalContainer();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetNode(Node newNode, NotificationChain msgs) {
-		msgs = eBasicSetContainer((InternalEObject)newNode, DNIPackage.INTERMEDIATE__NODE, msgs);
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setNode(Node newNode) {
-		if (newNode != eInternalContainer() || (eContainerFeatureID() != DNIPackage.INTERMEDIATE__NODE && newNode != null)) {
-			if (EcoreUtil.isAncestor(this, newNode))
-				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
-			NotificationChain msgs = null;
-			if (eInternalContainer() != null)
-				msgs = eBasicRemoveFromContainer(msgs);
-			if (newNode != null)
-				msgs = ((InternalEObject)newNode).eInverseAdd(this, DNIPackage.NODE__INTERMEDIATE, Node.class, msgs);
-			msgs = basicSetNode(newNode, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.INTERMEDIATE__NODE, newNode, newNode));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		String _name = this.getNode().getName();
-		String _plus = (("Intermediate" + "[") + _name);
-		return (_plus + "]");
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.INTERMEDIATE__NODE:
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetNode((Node)otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.INTERMEDIATE__PERFORMANCE:
-				return basicSetPerformance(null, msgs);
-			case DNIPackage.INTERMEDIATE__NODE:
-				return basicSetNode(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
-		switch (eContainerFeatureID()) {
-			case DNIPackage.INTERMEDIATE__NODE:
-				return eInternalContainer().eInverseRemove(this, DNIPackage.NODE__INTERMEDIATE, Node.class, msgs);
-		}
-		return super.eBasicRemoveFromContainerFeature(msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.INTERMEDIATE__PERFORMANCE:
-				return getPerformance();
-			case DNIPackage.INTERMEDIATE__NODE:
-				if (resolve) return getNode();
-				return basicGetNode();
-			case DNIPackage.INTERMEDIATE__NAME:
-				return getName();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.INTERMEDIATE__PERFORMANCE:
-				setPerformance((IntermediatePerformance)newValue);
-				return;
-			case DNIPackage.INTERMEDIATE__NODE:
-				setNode((Node)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.INTERMEDIATE__PERFORMANCE:
-				setPerformance((IntermediatePerformance)null);
-				return;
-			case DNIPackage.INTERMEDIATE__NODE:
-				setNode((Node)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.INTERMEDIATE__PERFORMANCE:
-				return performance != null;
-			case DNIPackage.INTERMEDIATE__NODE:
-				return basicGetNode() != null;
-			case DNIPackage.INTERMEDIATE__NAME:
-				return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //IntermediateImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/IntermediatePerformanceImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/IntermediatePerformanceImpl.java
deleted file mode 100644
index 098831fb..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/IntermediatePerformanceImpl.java
+++ /dev/null
@@ -1,409 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-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 tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Dependency;
-import tools.descartes.dni.dnimm3.IntermediatePerformance;
-import tools.descartes.dni.dnimm3.IntermediatePerformanceType;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Intermediate Performance</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.IntermediatePerformanceImpl#getForwardingLatency <em>Forwarding Latency</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.IntermediatePerformanceImpl#getForwardingBandwidthBPS <em>Forwarding Bandwidth BPS</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.IntermediatePerformanceImpl#getSwitchingCapacityPPS <em>Switching Capacity PPS</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.IntermediatePerformanceImpl#getEntityType <em>Entity Type</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class IntermediatePerformanceImpl extends MinimalEObjectImpl.Container implements IntermediatePerformance {
-	/**
-	 * The cached value of the '{@link #getForwardingLatency() <em>Forwarding Latency</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getForwardingLatency()
-	 * @generated
-	 * @ordered
-	 */
-	protected Dependency forwardingLatency;
-
-	/**
-	 * The cached value of the '{@link #getForwardingBandwidthBPS() <em>Forwarding Bandwidth BPS</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getForwardingBandwidthBPS()
-	 * @generated
-	 * @ordered
-	 */
-	protected Dependency forwardingBandwidthBPS;
-
-	/**
-	 * The cached value of the '{@link #getSwitchingCapacityPPS() <em>Switching Capacity PPS</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSwitchingCapacityPPS()
-	 * @generated
-	 * @ordered
-	 */
-	protected Dependency switchingCapacityPPS;
-
-	/**
-	 * The cached value of the '{@link #getEntityType() <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntityType()
-	 * @generated
-	 * @ordered
-	 */
-	protected IntermediatePerformanceType entityType;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IntermediatePerformanceImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.INTERMEDIATE_PERFORMANCE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Dependency getForwardingLatency() {
-		return forwardingLatency;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetForwardingLatency(Dependency newForwardingLatency, NotificationChain msgs) {
-		Dependency oldForwardingLatency = forwardingLatency;
-		forwardingLatency = newForwardingLatency;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY, oldForwardingLatency, newForwardingLatency);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setForwardingLatency(Dependency newForwardingLatency) {
-		if (newForwardingLatency != forwardingLatency) {
-			NotificationChain msgs = null;
-			if (forwardingLatency != null)
-				msgs = ((InternalEObject)forwardingLatency).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY, null, msgs);
-			if (newForwardingLatency != null)
-				msgs = ((InternalEObject)newForwardingLatency).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY, null, msgs);
-			msgs = basicSetForwardingLatency(newForwardingLatency, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY, newForwardingLatency, newForwardingLatency));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Dependency getForwardingBandwidthBPS() {
-		return forwardingBandwidthBPS;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetForwardingBandwidthBPS(Dependency newForwardingBandwidthBPS, NotificationChain msgs) {
-		Dependency oldForwardingBandwidthBPS = forwardingBandwidthBPS;
-		forwardingBandwidthBPS = newForwardingBandwidthBPS;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS, oldForwardingBandwidthBPS, newForwardingBandwidthBPS);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setForwardingBandwidthBPS(Dependency newForwardingBandwidthBPS) {
-		if (newForwardingBandwidthBPS != forwardingBandwidthBPS) {
-			NotificationChain msgs = null;
-			if (forwardingBandwidthBPS != null)
-				msgs = ((InternalEObject)forwardingBandwidthBPS).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS, null, msgs);
-			if (newForwardingBandwidthBPS != null)
-				msgs = ((InternalEObject)newForwardingBandwidthBPS).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS, null, msgs);
-			msgs = basicSetForwardingBandwidthBPS(newForwardingBandwidthBPS, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS, newForwardingBandwidthBPS, newForwardingBandwidthBPS));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Dependency getSwitchingCapacityPPS() {
-		return switchingCapacityPPS;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetSwitchingCapacityPPS(Dependency newSwitchingCapacityPPS, NotificationChain msgs) {
-		Dependency oldSwitchingCapacityPPS = switchingCapacityPPS;
-		switchingCapacityPPS = newSwitchingCapacityPPS;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS, oldSwitchingCapacityPPS, newSwitchingCapacityPPS);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setSwitchingCapacityPPS(Dependency newSwitchingCapacityPPS) {
-		if (newSwitchingCapacityPPS != switchingCapacityPPS) {
-			NotificationChain msgs = null;
-			if (switchingCapacityPPS != null)
-				msgs = ((InternalEObject)switchingCapacityPPS).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS, null, msgs);
-			if (newSwitchingCapacityPPS != null)
-				msgs = ((InternalEObject)newSwitchingCapacityPPS).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS, null, msgs);
-			msgs = basicSetSwitchingCapacityPPS(newSwitchingCapacityPPS, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS, newSwitchingCapacityPPS, newSwitchingCapacityPPS));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IntermediatePerformanceType getEntityType() {
-		if (entityType != null && entityType.eIsProxy()) {
-			InternalEObject oldEntityType = (InternalEObject)entityType;
-			entityType = (IntermediatePerformanceType)eResolveProxy(oldEntityType);
-			if (entityType != oldEntityType) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.INTERMEDIATE_PERFORMANCE__ENTITY_TYPE, oldEntityType, entityType));
-			}
-		}
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IntermediatePerformanceType basicGetEntityType() {
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetEntityType(IntermediatePerformanceType newEntityType, NotificationChain msgs) {
-		IntermediatePerformanceType oldEntityType = entityType;
-		entityType = newEntityType;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.INTERMEDIATE_PERFORMANCE__ENTITY_TYPE, oldEntityType, newEntityType);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEntityType(IntermediatePerformanceType newEntityType) {
-		if (newEntityType != entityType) {
-			NotificationChain msgs = null;
-			if (entityType != null)
-				msgs = ((InternalEObject)entityType).eInverseRemove(this, DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__ENTITIES, IntermediatePerformanceType.class, msgs);
-			if (newEntityType != null)
-				msgs = ((InternalEObject)newEntityType).eInverseAdd(this, DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__ENTITIES, IntermediatePerformanceType.class, msgs);
-			msgs = basicSetEntityType(newEntityType, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.INTERMEDIATE_PERFORMANCE__ENTITY_TYPE, newEntityType, newEntityType));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__ENTITY_TYPE:
-				if (entityType != null)
-					msgs = ((InternalEObject)entityType).eInverseRemove(this, DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__ENTITIES, IntermediatePerformanceType.class, msgs);
-				return basicSetEntityType((IntermediatePerformanceType)otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY:
-				return basicSetForwardingLatency(null, msgs);
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS:
-				return basicSetForwardingBandwidthBPS(null, msgs);
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS:
-				return basicSetSwitchingCapacityPPS(null, msgs);
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__ENTITY_TYPE:
-				return basicSetEntityType(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY:
-				return getForwardingLatency();
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS:
-				return getForwardingBandwidthBPS();
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS:
-				return getSwitchingCapacityPPS();
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__ENTITY_TYPE:
-				if (resolve) return getEntityType();
-				return basicGetEntityType();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY:
-				setForwardingLatency((Dependency)newValue);
-				return;
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS:
-				setForwardingBandwidthBPS((Dependency)newValue);
-				return;
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS:
-				setSwitchingCapacityPPS((Dependency)newValue);
-				return;
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__ENTITY_TYPE:
-				setEntityType((IntermediatePerformanceType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY:
-				setForwardingLatency((Dependency)null);
-				return;
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS:
-				setForwardingBandwidthBPS((Dependency)null);
-				return;
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS:
-				setSwitchingCapacityPPS((Dependency)null);
-				return;
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__ENTITY_TYPE:
-				setEntityType((IntermediatePerformanceType)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY:
-				return forwardingLatency != null;
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS:
-				return forwardingBandwidthBPS != null;
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS:
-				return switchingCapacityPPS != null;
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__ENTITY_TYPE:
-				return entityType != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //IntermediatePerformanceImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/IntermediatePerformanceTypeImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/IntermediatePerformanceTypeImpl.java
deleted file mode 100644
index 80b3623f..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/IntermediatePerformanceTypeImpl.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.EObjectWithInverseResolvingEList;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Identifier;
-import tools.descartes.dni.dnimm3.IntermediatePerformance;
-import tools.descartes.dni.dnimm3.IntermediatePerformanceType;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Intermediate Performance Type</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.IntermediatePerformanceTypeImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.IntermediatePerformanceTypeImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.IntermediatePerformanceTypeImpl#getUid <em>Uid</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.IntermediatePerformanceTypeImpl#getUid_generated <em>Uid generated</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.IntermediatePerformanceTypeImpl#getEntities <em>Entities</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class IntermediatePerformanceTypeImpl extends MinimalEObjectImpl.Container implements IntermediatePerformanceType {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The default value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected String uid = UID_EDEFAULT;
-
-	/**
-	 * This is true if the Uid attribute has been set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean uidESet;
-
-	/**
-	 * The default value of the '{@link #getUid_generated() <em>Uid generated</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid_generated()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_GENERATED_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getEntities() <em>Entities</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntities()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<IntermediatePerformance> entities;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IntermediatePerformanceTypeImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.INTERMEDIATE_PERFORMANCE_TYPE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid() {
-		return uid;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setUid(String newUid) {
-		String oldUid = uid;
-		uid = newUid;
-		boolean oldUidESet = uidESet;
-		uidESet = true;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__UID, oldUid, uid, !oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void unsetUid() {
-		String oldUid = uid;
-		boolean oldUidESet = uidESet;
-		uid = UID_EDEFAULT;
-		uidESet = false;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.UNSET, DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__UID, oldUid, UID_EDEFAULT, oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isSetUid() {
-		return uidESet;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid_generated() {
-		if (((this.getUid() == null) || this.getUid().isEmpty())) {
-			this.setUid(EcoreUtil.generateUUID().toString());
-		}
-		return this.getUid();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<IntermediatePerformance> getEntities() {
-		if (entities == null) {
-			entities = new EObjectWithInverseResolvingEList<IntermediatePerformance>(IntermediatePerformance.class, this, DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__ENTITIES, DNIPackage.INTERMEDIATE_PERFORMANCE__ENTITY_TYPE);
-		}
-		return entities;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__ENTITIES:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getEntities()).basicAdd(otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__ENTITIES:
-				return ((InternalEList<?>)getEntities()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__NAME:
-				return getName();
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__DESCRIPTION:
-				return getDescription();
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__UID:
-				return getUid();
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__UID_GENERATED:
-				return getUid_generated();
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__ENTITIES:
-				return getEntities();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__NAME:
-				setName((String)newValue);
-				return;
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__UID:
-				setUid((String)newValue);
-				return;
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__ENTITIES:
-				getEntities().clear();
-				getEntities().addAll((Collection<? extends IntermediatePerformance>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__UID:
-				unsetUid();
-				return;
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__ENTITIES:
-				getEntities().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__UID:
-				return isSetUid();
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__UID_GENERATED:
-				return UID_GENERATED_EDEFAULT == null ? getUid_generated() != null : !UID_GENERATED_EDEFAULT.equals(getUid_generated());
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__ENTITIES:
-				return entities != null && !entities.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == Identifier.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__UID: return DNIPackage.IDENTIFIER__UID;
-				case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__UID_GENERATED: return DNIPackage.IDENTIFIER__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == Identifier.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.IDENTIFIER__UID: return DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__UID;
-				case DNIPackage.IDENTIFIER__UID_GENERATED: return DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(", uid: ");
-		if (uidESet) result.append(uid); else result.append("<unset>");
-		result.append(')');
-		return result.toString();
-	}
-
-} //IntermediatePerformanceTypeImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/LinkImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/LinkImpl.java
deleted file mode 100644
index 962c7614..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/LinkImpl.java
+++ /dev/null
@@ -1,530 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.util.EObjectResolvingEList;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Link;
-import tools.descartes.dni.dnimm3.LinkType;
-import tools.descartes.dni.dnimm3.NamedElement;
-import tools.descartes.dni.dnimm3.NetworkInterface;
-import tools.descartes.dni.dnimm3.PerformanceLink;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Link</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.LinkImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.LinkImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.LinkImpl#getConnects <em>Connects</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.LinkImpl#getPerformance <em>Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.LinkImpl#getName_generated <em>Name generated</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.LinkImpl#getEntityType <em>Entity Type</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class LinkImpl extends IdentifierImpl implements Link {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The cached value of the '{@link #getConnects() <em>Connects</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getConnects()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<NetworkInterface> connects;
-
-	/**
-	 * The cached value of the '{@link #getPerformance() <em>Performance</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPerformance()
-	 * @generated
-	 * @ordered
-	 */
-	protected PerformanceLink performance;
-
-	/**
-	 * The default value of the '{@link #getName_generated() <em>Name generated</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName_generated()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_GENERATED_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getEntityType() <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntityType()
-	 * @generated
-	 * @ordered
-	 */
-	protected LinkType entityType;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected LinkImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.LINK;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.LINK__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIPackage.LINK__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<NetworkInterface> getConnects() {
-		if (connects == null) {
-			connects = new EObjectResolvingEList<NetworkInterface>(NetworkInterface.class, this, DNIPackage.LINK__CONNECTS);
-		}
-		return connects;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PerformanceLink getPerformance() {
-		return performance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetPerformance(PerformanceLink newPerformance, NotificationChain msgs) {
-		PerformanceLink oldPerformance = performance;
-		performance = newPerformance;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.LINK__PERFORMANCE, oldPerformance, newPerformance);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPerformance(PerformanceLink newPerformance) {
-		if (newPerformance != performance) {
-			NotificationChain msgs = null;
-			if (performance != null)
-				msgs = ((InternalEObject)performance).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.LINK__PERFORMANCE, null, msgs);
-			if (newPerformance != null)
-				msgs = ((InternalEObject)newPerformance).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.LINK__PERFORMANCE, null, msgs);
-			msgs = basicSetPerformance(newPerformance, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.LINK__PERFORMANCE, newPerformance, newPerformance));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName_generated() {
-		int _size = this.getConnects().size();
-		boolean _equals = (_size == 0);
-		if (_equals) {
-			String _uid = this.getUid();
-			String _plus = ("Unconnected_" + _uid);
-			this.setName(_plus);
-		}
-		int _size_1 = this.getConnects().size();
-		boolean _equals_1 = (_size_1 == 1);
-		if (_equals_1) {
-			String _uid_1 = this.getUid();
-			String _plus_1 = ("Partially_connected_" + _uid_1);
-			this.setName(_plus_1);
-		}
-		else {
-			if (((((this.getConnects().get(0) == null) || (this.getConnects().get(0).getName() == null)) || (this.getConnects().get(1) == null)) || 
-				(this.getConnects().get(1).getName() == null))) {
-				String _uid_2 = this.getUid();
-				String _plus_2 = ("Partially_connected_" + _uid_2);
-				this.setName(_plus_2);
-			}
-			else {
-				String _name = this.getConnects().get(0).getName();
-				String _plus_3 = ("Link between " + _name);
-				String _plus_4 = (_plus_3 + " and ");
-				String _name_1 = this.getConnects().get(1).getName();
-				String _plus_5 = (_plus_4 + _name_1);
-				this.setName(_plus_5);
-			}
-		}
-		return this.getName();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LinkType getEntityType() {
-		if (entityType != null && entityType.eIsProxy()) {
-			InternalEObject oldEntityType = (InternalEObject)entityType;
-			entityType = (LinkType)eResolveProxy(oldEntityType);
-			if (entityType != oldEntityType) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.LINK__ENTITY_TYPE, oldEntityType, entityType));
-			}
-		}
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LinkType basicGetEntityType() {
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetEntityType(LinkType newEntityType, NotificationChain msgs) {
-		LinkType oldEntityType = entityType;
-		entityType = newEntityType;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.LINK__ENTITY_TYPE, oldEntityType, newEntityType);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEntityType(LinkType newEntityType) {
-		if (newEntityType != entityType) {
-			NotificationChain msgs = null;
-			if (entityType != null)
-				msgs = ((InternalEObject)entityType).eInverseRemove(this, DNIPackage.LINK_TYPE__ENTITIES, LinkType.class, msgs);
-			if (newEntityType != null)
-				msgs = ((InternalEObject)newEntityType).eInverseAdd(this, DNIPackage.LINK_TYPE__ENTITIES, LinkType.class, msgs);
-			msgs = basicSetEntityType(newEntityType, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.LINK__ENTITY_TYPE, newEntityType, newEntityType));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.LINK__ENTITY_TYPE:
-				if (entityType != null)
-					msgs = ((InternalEObject)entityType).eInverseRemove(this, DNIPackage.LINK_TYPE__ENTITIES, LinkType.class, msgs);
-				return basicSetEntityType((LinkType)otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.LINK__PERFORMANCE:
-				return basicSetPerformance(null, msgs);
-			case DNIPackage.LINK__ENTITY_TYPE:
-				return basicSetEntityType(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.LINK__NAME:
-				return getName();
-			case DNIPackage.LINK__DESCRIPTION:
-				return getDescription();
-			case DNIPackage.LINK__CONNECTS:
-				return getConnects();
-			case DNIPackage.LINK__PERFORMANCE:
-				return getPerformance();
-			case DNIPackage.LINK__NAME_GENERATED:
-				return getName_generated();
-			case DNIPackage.LINK__ENTITY_TYPE:
-				if (resolve) return getEntityType();
-				return basicGetEntityType();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.LINK__NAME:
-				setName((String)newValue);
-				return;
-			case DNIPackage.LINK__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIPackage.LINK__CONNECTS:
-				getConnects().clear();
-				getConnects().addAll((Collection<? extends NetworkInterface>)newValue);
-				return;
-			case DNIPackage.LINK__PERFORMANCE:
-				setPerformance((PerformanceLink)newValue);
-				return;
-			case DNIPackage.LINK__ENTITY_TYPE:
-				setEntityType((LinkType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.LINK__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIPackage.LINK__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIPackage.LINK__CONNECTS:
-				getConnects().clear();
-				return;
-			case DNIPackage.LINK__PERFORMANCE:
-				setPerformance((PerformanceLink)null);
-				return;
-			case DNIPackage.LINK__ENTITY_TYPE:
-				setEntityType((LinkType)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.LINK__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIPackage.LINK__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIPackage.LINK__CONNECTS:
-				return connects != null && !connects.isEmpty();
-			case DNIPackage.LINK__PERFORMANCE:
-				return performance != null;
-			case DNIPackage.LINK__NAME_GENERATED:
-				return NAME_GENERATED_EDEFAULT == null ? getName_generated() != null : !NAME_GENERATED_EDEFAULT.equals(getName_generated());
-			case DNIPackage.LINK__ENTITY_TYPE:
-				return entityType != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.LINK__NAME: return DNIPackage.NAMED_ELEMENT__NAME;
-				case DNIPackage.LINK__DESCRIPTION: return DNIPackage.NAMED_ELEMENT__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.NAMED_ELEMENT__NAME: return DNIPackage.LINK__NAME;
-				case DNIPackage.NAMED_ELEMENT__DESCRIPTION: return DNIPackage.LINK__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(')');
-		return result.toString();
-	}
-
-} //LinkImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/LinkPerformanceTypeImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/LinkPerformanceTypeImpl.java
deleted file mode 100644
index a7e6a6db..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/LinkPerformanceTypeImpl.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.EObjectWithInverseResolvingEList;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Identifier;
-import tools.descartes.dni.dnimm3.LinkPerformanceType;
-import tools.descartes.dni.dnimm3.PerformanceLink;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Link Performance Type</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.LinkPerformanceTypeImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.LinkPerformanceTypeImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.LinkPerformanceTypeImpl#getUid <em>Uid</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.LinkPerformanceTypeImpl#getUid_generated <em>Uid generated</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.LinkPerformanceTypeImpl#getEntities <em>Entities</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class LinkPerformanceTypeImpl extends MinimalEObjectImpl.Container implements LinkPerformanceType {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The default value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected String uid = UID_EDEFAULT;
-
-	/**
-	 * This is true if the Uid attribute has been set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean uidESet;
-
-	/**
-	 * The default value of the '{@link #getUid_generated() <em>Uid generated</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid_generated()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_GENERATED_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getEntities() <em>Entities</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntities()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<PerformanceLink> entities;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected LinkPerformanceTypeImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.LINK_PERFORMANCE_TYPE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.LINK_PERFORMANCE_TYPE__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIPackage.LINK_PERFORMANCE_TYPE__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid() {
-		return uid;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setUid(String newUid) {
-		String oldUid = uid;
-		uid = newUid;
-		boolean oldUidESet = uidESet;
-		uidESet = true;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.LINK_PERFORMANCE_TYPE__UID, oldUid, uid, !oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void unsetUid() {
-		String oldUid = uid;
-		boolean oldUidESet = uidESet;
-		uid = UID_EDEFAULT;
-		uidESet = false;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.UNSET, DNIPackage.LINK_PERFORMANCE_TYPE__UID, oldUid, UID_EDEFAULT, oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isSetUid() {
-		return uidESet;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid_generated() {
-		if (((this.getUid() == null) || this.getUid().isEmpty())) {
-			this.setUid(EcoreUtil.generateUUID().toString());
-		}
-		return this.getUid();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<PerformanceLink> getEntities() {
-		if (entities == null) {
-			entities = new EObjectWithInverseResolvingEList<PerformanceLink>(PerformanceLink.class, this, DNIPackage.LINK_PERFORMANCE_TYPE__ENTITIES, DNIPackage.PERFORMANCE_LINK__ENTITY_TYPE);
-		}
-		return entities;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.LINK_PERFORMANCE_TYPE__ENTITIES:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getEntities()).basicAdd(otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.LINK_PERFORMANCE_TYPE__ENTITIES:
-				return ((InternalEList<?>)getEntities()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.LINK_PERFORMANCE_TYPE__NAME:
-				return getName();
-			case DNIPackage.LINK_PERFORMANCE_TYPE__DESCRIPTION:
-				return getDescription();
-			case DNIPackage.LINK_PERFORMANCE_TYPE__UID:
-				return getUid();
-			case DNIPackage.LINK_PERFORMANCE_TYPE__UID_GENERATED:
-				return getUid_generated();
-			case DNIPackage.LINK_PERFORMANCE_TYPE__ENTITIES:
-				return getEntities();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.LINK_PERFORMANCE_TYPE__NAME:
-				setName((String)newValue);
-				return;
-			case DNIPackage.LINK_PERFORMANCE_TYPE__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIPackage.LINK_PERFORMANCE_TYPE__UID:
-				setUid((String)newValue);
-				return;
-			case DNIPackage.LINK_PERFORMANCE_TYPE__ENTITIES:
-				getEntities().clear();
-				getEntities().addAll((Collection<? extends PerformanceLink>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.LINK_PERFORMANCE_TYPE__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIPackage.LINK_PERFORMANCE_TYPE__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIPackage.LINK_PERFORMANCE_TYPE__UID:
-				unsetUid();
-				return;
-			case DNIPackage.LINK_PERFORMANCE_TYPE__ENTITIES:
-				getEntities().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.LINK_PERFORMANCE_TYPE__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIPackage.LINK_PERFORMANCE_TYPE__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIPackage.LINK_PERFORMANCE_TYPE__UID:
-				return isSetUid();
-			case DNIPackage.LINK_PERFORMANCE_TYPE__UID_GENERATED:
-				return UID_GENERATED_EDEFAULT == null ? getUid_generated() != null : !UID_GENERATED_EDEFAULT.equals(getUid_generated());
-			case DNIPackage.LINK_PERFORMANCE_TYPE__ENTITIES:
-				return entities != null && !entities.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == Identifier.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.LINK_PERFORMANCE_TYPE__UID: return DNIPackage.IDENTIFIER__UID;
-				case DNIPackage.LINK_PERFORMANCE_TYPE__UID_GENERATED: return DNIPackage.IDENTIFIER__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == Identifier.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.IDENTIFIER__UID: return DNIPackage.LINK_PERFORMANCE_TYPE__UID;
-				case DNIPackage.IDENTIFIER__UID_GENERATED: return DNIPackage.LINK_PERFORMANCE_TYPE__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(", uid: ");
-		if (uidESet) result.append(uid); else result.append("<unset>");
-		result.append(')');
-		return result.toString();
-	}
-
-} //LinkPerformanceTypeImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/LinkTypeImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/LinkTypeImpl.java
deleted file mode 100644
index da72264d..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/LinkTypeImpl.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.EObjectWithInverseResolvingEList;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Identifier;
-import tools.descartes.dni.dnimm3.Link;
-import tools.descartes.dni.dnimm3.LinkType;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Link Type</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.LinkTypeImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.LinkTypeImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.LinkTypeImpl#getUid <em>Uid</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.LinkTypeImpl#getUid_generated <em>Uid generated</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.LinkTypeImpl#getEntities <em>Entities</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class LinkTypeImpl extends MinimalEObjectImpl.Container implements LinkType {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The default value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected String uid = UID_EDEFAULT;
-
-	/**
-	 * This is true if the Uid attribute has been set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean uidESet;
-
-	/**
-	 * The default value of the '{@link #getUid_generated() <em>Uid generated</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid_generated()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_GENERATED_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getEntities() <em>Entities</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntities()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Link> entities;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected LinkTypeImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.LINK_TYPE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.LINK_TYPE__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIPackage.LINK_TYPE__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid() {
-		return uid;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setUid(String newUid) {
-		String oldUid = uid;
-		uid = newUid;
-		boolean oldUidESet = uidESet;
-		uidESet = true;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.LINK_TYPE__UID, oldUid, uid, !oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void unsetUid() {
-		String oldUid = uid;
-		boolean oldUidESet = uidESet;
-		uid = UID_EDEFAULT;
-		uidESet = false;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.UNSET, DNIPackage.LINK_TYPE__UID, oldUid, UID_EDEFAULT, oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isSetUid() {
-		return uidESet;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid_generated() {
-		if (((this.getUid() == null) || this.getUid().isEmpty())) {
-			this.setUid(EcoreUtil.generateUUID().toString());
-		}
-		return this.getUid();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<Link> getEntities() {
-		if (entities == null) {
-			entities = new EObjectWithInverseResolvingEList<Link>(Link.class, this, DNIPackage.LINK_TYPE__ENTITIES, DNIPackage.LINK__ENTITY_TYPE);
-		}
-		return entities;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.LINK_TYPE__ENTITIES:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getEntities()).basicAdd(otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.LINK_TYPE__ENTITIES:
-				return ((InternalEList<?>)getEntities()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.LINK_TYPE__NAME:
-				return getName();
-			case DNIPackage.LINK_TYPE__DESCRIPTION:
-				return getDescription();
-			case DNIPackage.LINK_TYPE__UID:
-				return getUid();
-			case DNIPackage.LINK_TYPE__UID_GENERATED:
-				return getUid_generated();
-			case DNIPackage.LINK_TYPE__ENTITIES:
-				return getEntities();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.LINK_TYPE__NAME:
-				setName((String)newValue);
-				return;
-			case DNIPackage.LINK_TYPE__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIPackage.LINK_TYPE__UID:
-				setUid((String)newValue);
-				return;
-			case DNIPackage.LINK_TYPE__ENTITIES:
-				getEntities().clear();
-				getEntities().addAll((Collection<? extends Link>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.LINK_TYPE__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIPackage.LINK_TYPE__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIPackage.LINK_TYPE__UID:
-				unsetUid();
-				return;
-			case DNIPackage.LINK_TYPE__ENTITIES:
-				getEntities().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.LINK_TYPE__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIPackage.LINK_TYPE__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIPackage.LINK_TYPE__UID:
-				return isSetUid();
-			case DNIPackage.LINK_TYPE__UID_GENERATED:
-				return UID_GENERATED_EDEFAULT == null ? getUid_generated() != null : !UID_GENERATED_EDEFAULT.equals(getUid_generated());
-			case DNIPackage.LINK_TYPE__ENTITIES:
-				return entities != null && !entities.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == Identifier.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.LINK_TYPE__UID: return DNIPackage.IDENTIFIER__UID;
-				case DNIPackage.LINK_TYPE__UID_GENERATED: return DNIPackage.IDENTIFIER__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == Identifier.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.IDENTIFIER__UID: return DNIPackage.LINK_TYPE__UID;
-				case DNIPackage.IDENTIFIER__UID_GENERATED: return DNIPackage.LINK_TYPE__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(", uid: ");
-		if (uidESet) result.append(uid); else result.append("<unset>");
-		result.append(')');
-		return result.toString();
-	}
-
-} //LinkTypeImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/LoopActionImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/LoopActionImpl.java
deleted file mode 100644
index e36cafe0..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/LoopActionImpl.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-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 tools.descartes.dni.dnimm3.AbstractAction;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Dependency;
-import tools.descartes.dni.dnimm3.LoopAction;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Loop Action</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.LoopActionImpl#getIntern <em>Intern</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.LoopActionImpl#getNumIterations <em>Num Iterations</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class LoopActionImpl extends MinimalEObjectImpl.Container implements LoopAction {
-	/**
-	 * The cached value of the '{@link #getIntern() <em>Intern</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getIntern()
-	 * @generated
-	 * @ordered
-	 */
-	protected AbstractAction intern;
-
-	/**
-	 * The cached value of the '{@link #getNumIterations() <em>Num Iterations</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getNumIterations()
-	 * @generated
-	 * @ordered
-	 */
-	protected Dependency numIterations;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected LoopActionImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.LOOP_ACTION;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AbstractAction getIntern() {
-		return intern;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetIntern(AbstractAction newIntern, NotificationChain msgs) {
-		AbstractAction oldIntern = intern;
-		intern = newIntern;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.LOOP_ACTION__INTERN, oldIntern, newIntern);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setIntern(AbstractAction newIntern) {
-		if (newIntern != intern) {
-			NotificationChain msgs = null;
-			if (intern != null)
-				msgs = ((InternalEObject)intern).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.LOOP_ACTION__INTERN, null, msgs);
-			if (newIntern != null)
-				msgs = ((InternalEObject)newIntern).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.LOOP_ACTION__INTERN, null, msgs);
-			msgs = basicSetIntern(newIntern, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.LOOP_ACTION__INTERN, newIntern, newIntern));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Dependency getNumIterations() {
-		return numIterations;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetNumIterations(Dependency newNumIterations, NotificationChain msgs) {
-		Dependency oldNumIterations = numIterations;
-		numIterations = newNumIterations;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.LOOP_ACTION__NUM_ITERATIONS, oldNumIterations, newNumIterations);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setNumIterations(Dependency newNumIterations) {
-		if (newNumIterations != numIterations) {
-			NotificationChain msgs = null;
-			if (numIterations != null)
-				msgs = ((InternalEObject)numIterations).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.LOOP_ACTION__NUM_ITERATIONS, null, msgs);
-			if (newNumIterations != null)
-				msgs = ((InternalEObject)newNumIterations).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.LOOP_ACTION__NUM_ITERATIONS, null, msgs);
-			msgs = basicSetNumIterations(newNumIterations, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.LOOP_ACTION__NUM_ITERATIONS, newNumIterations, newNumIterations));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.LOOP_ACTION__INTERN:
-				return basicSetIntern(null, msgs);
-			case DNIPackage.LOOP_ACTION__NUM_ITERATIONS:
-				return basicSetNumIterations(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.LOOP_ACTION__INTERN:
-				return getIntern();
-			case DNIPackage.LOOP_ACTION__NUM_ITERATIONS:
-				return getNumIterations();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.LOOP_ACTION__INTERN:
-				setIntern((AbstractAction)newValue);
-				return;
-			case DNIPackage.LOOP_ACTION__NUM_ITERATIONS:
-				setNumIterations((Dependency)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.LOOP_ACTION__INTERN:
-				setIntern((AbstractAction)null);
-				return;
-			case DNIPackage.LOOP_ACTION__NUM_ITERATIONS:
-				setNumIterations((Dependency)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.LOOP_ACTION__INTERN:
-				return intern != null;
-			case DNIPackage.LOOP_ACTION__NUM_ITERATIONS:
-				return numIterations != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //LoopActionImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkConfigurationImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkConfigurationImpl.java
deleted file mode 100644
index b86cdec8..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkConfigurationImpl.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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 tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.NetworkConfiguration;
-import tools.descartes.dni.dnimm3.ProtocolsRepository;
-import tools.descartes.dni.dnimm3.RoutesRepository;
-import tools.descartes.dni.dnimm3.SdnFlowRule;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Network Configuration</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkConfigurationImpl#getProtocolsAndStacks <em>Protocols And Stacks</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkConfigurationImpl#getRoutes <em>Routes</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkConfigurationImpl#getRules <em>Rules</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class NetworkConfigurationImpl extends MinimalEObjectImpl.Container implements NetworkConfiguration {
-	/**
-	 * The cached value of the '{@link #getProtocolsAndStacks() <em>Protocols And Stacks</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProtocolsAndStacks()
-	 * @generated
-	 * @ordered
-	 */
-	protected ProtocolsRepository protocolsAndStacks;
-
-	/**
-	 * The cached value of the '{@link #getRoutes() <em>Routes</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getRoutes()
-	 * @generated
-	 * @ordered
-	 */
-	protected RoutesRepository routes;
-
-	/**
-	 * The cached value of the '{@link #getRules() <em>Rules</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getRules()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<SdnFlowRule> rules;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NetworkConfigurationImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.NETWORK_CONFIGURATION;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ProtocolsRepository getProtocolsAndStacks() {
-		return protocolsAndStacks;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetProtocolsAndStacks(ProtocolsRepository newProtocolsAndStacks, NotificationChain msgs) {
-		ProtocolsRepository oldProtocolsAndStacks = protocolsAndStacks;
-		protocolsAndStacks = newProtocolsAndStacks;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_CONFIGURATION__PROTOCOLS_AND_STACKS, oldProtocolsAndStacks, newProtocolsAndStacks);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setProtocolsAndStacks(ProtocolsRepository newProtocolsAndStacks) {
-		if (newProtocolsAndStacks != protocolsAndStacks) {
-			NotificationChain msgs = null;
-			if (protocolsAndStacks != null)
-				msgs = ((InternalEObject)protocolsAndStacks).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.NETWORK_CONFIGURATION__PROTOCOLS_AND_STACKS, null, msgs);
-			if (newProtocolsAndStacks != null)
-				msgs = ((InternalEObject)newProtocolsAndStacks).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.NETWORK_CONFIGURATION__PROTOCOLS_AND_STACKS, null, msgs);
-			msgs = basicSetProtocolsAndStacks(newProtocolsAndStacks, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_CONFIGURATION__PROTOCOLS_AND_STACKS, newProtocolsAndStacks, newProtocolsAndStacks));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public RoutesRepository getRoutes() {
-		return routes;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetRoutes(RoutesRepository newRoutes, NotificationChain msgs) {
-		RoutesRepository oldRoutes = routes;
-		routes = newRoutes;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_CONFIGURATION__ROUTES, oldRoutes, newRoutes);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setRoutes(RoutesRepository newRoutes) {
-		if (newRoutes != routes) {
-			NotificationChain msgs = null;
-			if (routes != null)
-				msgs = ((InternalEObject)routes).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.NETWORK_CONFIGURATION__ROUTES, null, msgs);
-			if (newRoutes != null)
-				msgs = ((InternalEObject)newRoutes).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.NETWORK_CONFIGURATION__ROUTES, null, msgs);
-			msgs = basicSetRoutes(newRoutes, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_CONFIGURATION__ROUTES, newRoutes, newRoutes));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<SdnFlowRule> getRules() {
-		if (rules == null) {
-			rules = new EObjectContainmentEList<SdnFlowRule>(SdnFlowRule.class, this, DNIPackage.NETWORK_CONFIGURATION__RULES);
-		}
-		return rules;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_CONFIGURATION__PROTOCOLS_AND_STACKS:
-				return basicSetProtocolsAndStacks(null, msgs);
-			case DNIPackage.NETWORK_CONFIGURATION__ROUTES:
-				return basicSetRoutes(null, msgs);
-			case DNIPackage.NETWORK_CONFIGURATION__RULES:
-				return ((InternalEList<?>)getRules()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_CONFIGURATION__PROTOCOLS_AND_STACKS:
-				return getProtocolsAndStacks();
-			case DNIPackage.NETWORK_CONFIGURATION__ROUTES:
-				return getRoutes();
-			case DNIPackage.NETWORK_CONFIGURATION__RULES:
-				return getRules();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_CONFIGURATION__PROTOCOLS_AND_STACKS:
-				setProtocolsAndStacks((ProtocolsRepository)newValue);
-				return;
-			case DNIPackage.NETWORK_CONFIGURATION__ROUTES:
-				setRoutes((RoutesRepository)newValue);
-				return;
-			case DNIPackage.NETWORK_CONFIGURATION__RULES:
-				getRules().clear();
-				getRules().addAll((Collection<? extends SdnFlowRule>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_CONFIGURATION__PROTOCOLS_AND_STACKS:
-				setProtocolsAndStacks((ProtocolsRepository)null);
-				return;
-			case DNIPackage.NETWORK_CONFIGURATION__ROUTES:
-				setRoutes((RoutesRepository)null);
-				return;
-			case DNIPackage.NETWORK_CONFIGURATION__RULES:
-				getRules().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_CONFIGURATION__PROTOCOLS_AND_STACKS:
-				return protocolsAndStacks != null;
-			case DNIPackage.NETWORK_CONFIGURATION__ROUTES:
-				return routes != null;
-			case DNIPackage.NETWORK_CONFIGURATION__RULES:
-				return rules != null && !rules.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //NetworkConfigurationImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkInfrastructureImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkInfrastructureImpl.java
deleted file mode 100644
index 57d03c50..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkInfrastructureImpl.java
+++ /dev/null
@@ -1,499 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-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 tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.EntityTypes;
-import tools.descartes.dni.dnimm3.NetworkConfiguration;
-import tools.descartes.dni.dnimm3.NetworkInfrastructure;
-import tools.descartes.dni.dnimm3.NetworkStructure;
-import tools.descartes.dni.dnimm3.NetworkTraffic;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Network Infrastructure</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInfrastructureImpl#getTraffic <em>Traffic</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInfrastructureImpl#getStructure <em>Structure</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInfrastructureImpl#getConfiguration <em>Configuration</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInfrastructureImpl#getEntityTypes <em>Entity Types</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInfrastructureImpl#getDataCenterName <em>Data Center Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInfrastructureImpl#getMetaModelVersion <em>Meta Model Version</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class NetworkInfrastructureImpl extends MinimalEObjectImpl.Container implements NetworkInfrastructure {
-	/**
-	 * The cached value of the '{@link #getTraffic() <em>Traffic</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getTraffic()
-	 * @generated
-	 * @ordered
-	 */
-	protected NetworkTraffic traffic;
-
-	/**
-	 * The cached value of the '{@link #getStructure() <em>Structure</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getStructure()
-	 * @generated
-	 * @ordered
-	 */
-	protected NetworkStructure structure;
-
-	/**
-	 * The cached value of the '{@link #getConfiguration() <em>Configuration</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getConfiguration()
-	 * @generated
-	 * @ordered
-	 */
-	protected NetworkConfiguration configuration;
-
-	/**
-	 * The cached value of the '{@link #getEntityTypes() <em>Entity Types</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntityTypes()
-	 * @generated
-	 * @ordered
-	 */
-	protected EntityTypes entityTypes;
-
-	/**
-	 * The default value of the '{@link #getDataCenterName() <em>Data Center Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDataCenterName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String DATA_CENTER_NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getDataCenterName() <em>Data Center Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDataCenterName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String dataCenterName = DATA_CENTER_NAME_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getMetaModelVersion() <em>Meta Model Version</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMetaModelVersion()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String META_MODEL_VERSION_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getMetaModelVersion() <em>Meta Model Version</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMetaModelVersion()
-	 * @generated
-	 * @ordered
-	 */
-	protected String metaModelVersion = META_MODEL_VERSION_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NetworkInfrastructureImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.NETWORK_INFRASTRUCTURE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkTraffic getTraffic() {
-		return traffic;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetTraffic(NetworkTraffic newTraffic, NotificationChain msgs) {
-		NetworkTraffic oldTraffic = traffic;
-		traffic = newTraffic;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INFRASTRUCTURE__TRAFFIC, oldTraffic, newTraffic);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setTraffic(NetworkTraffic newTraffic) {
-		if (newTraffic != traffic) {
-			NotificationChain msgs = null;
-			if (traffic != null)
-				msgs = ((InternalEObject)traffic).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.NETWORK_INFRASTRUCTURE__TRAFFIC, null, msgs);
-			if (newTraffic != null)
-				msgs = ((InternalEObject)newTraffic).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.NETWORK_INFRASTRUCTURE__TRAFFIC, null, msgs);
-			msgs = basicSetTraffic(newTraffic, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INFRASTRUCTURE__TRAFFIC, newTraffic, newTraffic));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkStructure getStructure() {
-		return structure;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetStructure(NetworkStructure newStructure, NotificationChain msgs) {
-		NetworkStructure oldStructure = structure;
-		structure = newStructure;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INFRASTRUCTURE__STRUCTURE, oldStructure, newStructure);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setStructure(NetworkStructure newStructure) {
-		if (newStructure != structure) {
-			NotificationChain msgs = null;
-			if (structure != null)
-				msgs = ((InternalEObject)structure).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.NETWORK_INFRASTRUCTURE__STRUCTURE, null, msgs);
-			if (newStructure != null)
-				msgs = ((InternalEObject)newStructure).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.NETWORK_INFRASTRUCTURE__STRUCTURE, null, msgs);
-			msgs = basicSetStructure(newStructure, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INFRASTRUCTURE__STRUCTURE, newStructure, newStructure));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkConfiguration getConfiguration() {
-		return configuration;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetConfiguration(NetworkConfiguration newConfiguration, NotificationChain msgs) {
-		NetworkConfiguration oldConfiguration = configuration;
-		configuration = newConfiguration;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INFRASTRUCTURE__CONFIGURATION, oldConfiguration, newConfiguration);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setConfiguration(NetworkConfiguration newConfiguration) {
-		if (newConfiguration != configuration) {
-			NotificationChain msgs = null;
-			if (configuration != null)
-				msgs = ((InternalEObject)configuration).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.NETWORK_INFRASTRUCTURE__CONFIGURATION, null, msgs);
-			if (newConfiguration != null)
-				msgs = ((InternalEObject)newConfiguration).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.NETWORK_INFRASTRUCTURE__CONFIGURATION, null, msgs);
-			msgs = basicSetConfiguration(newConfiguration, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INFRASTRUCTURE__CONFIGURATION, newConfiguration, newConfiguration));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EntityTypes getEntityTypes() {
-		return entityTypes;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetEntityTypes(EntityTypes newEntityTypes, NotificationChain msgs) {
-		EntityTypes oldEntityTypes = entityTypes;
-		entityTypes = newEntityTypes;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INFRASTRUCTURE__ENTITY_TYPES, oldEntityTypes, newEntityTypes);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEntityTypes(EntityTypes newEntityTypes) {
-		if (newEntityTypes != entityTypes) {
-			NotificationChain msgs = null;
-			if (entityTypes != null)
-				msgs = ((InternalEObject)entityTypes).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.NETWORK_INFRASTRUCTURE__ENTITY_TYPES, null, msgs);
-			if (newEntityTypes != null)
-				msgs = ((InternalEObject)newEntityTypes).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.NETWORK_INFRASTRUCTURE__ENTITY_TYPES, null, msgs);
-			msgs = basicSetEntityTypes(newEntityTypes, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INFRASTRUCTURE__ENTITY_TYPES, newEntityTypes, newEntityTypes));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getDataCenterName() {
-		return dataCenterName;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setDataCenterName(String newDataCenterName) {
-		String oldDataCenterName = dataCenterName;
-		dataCenterName = newDataCenterName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INFRASTRUCTURE__DATA_CENTER_NAME, oldDataCenterName, dataCenterName));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getMetaModelVersion() {
-		return metaModelVersion;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setMetaModelVersion(String newMetaModelVersion) {
-		String oldMetaModelVersion = metaModelVersion;
-		metaModelVersion = newMetaModelVersion;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INFRASTRUCTURE__META_MODEL_VERSION, oldMetaModelVersion, metaModelVersion));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INFRASTRUCTURE__TRAFFIC:
-				return basicSetTraffic(null, msgs);
-			case DNIPackage.NETWORK_INFRASTRUCTURE__STRUCTURE:
-				return basicSetStructure(null, msgs);
-			case DNIPackage.NETWORK_INFRASTRUCTURE__CONFIGURATION:
-				return basicSetConfiguration(null, msgs);
-			case DNIPackage.NETWORK_INFRASTRUCTURE__ENTITY_TYPES:
-				return basicSetEntityTypes(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INFRASTRUCTURE__TRAFFIC:
-				return getTraffic();
-			case DNIPackage.NETWORK_INFRASTRUCTURE__STRUCTURE:
-				return getStructure();
-			case DNIPackage.NETWORK_INFRASTRUCTURE__CONFIGURATION:
-				return getConfiguration();
-			case DNIPackage.NETWORK_INFRASTRUCTURE__ENTITY_TYPES:
-				return getEntityTypes();
-			case DNIPackage.NETWORK_INFRASTRUCTURE__DATA_CENTER_NAME:
-				return getDataCenterName();
-			case DNIPackage.NETWORK_INFRASTRUCTURE__META_MODEL_VERSION:
-				return getMetaModelVersion();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INFRASTRUCTURE__TRAFFIC:
-				setTraffic((NetworkTraffic)newValue);
-				return;
-			case DNIPackage.NETWORK_INFRASTRUCTURE__STRUCTURE:
-				setStructure((NetworkStructure)newValue);
-				return;
-			case DNIPackage.NETWORK_INFRASTRUCTURE__CONFIGURATION:
-				setConfiguration((NetworkConfiguration)newValue);
-				return;
-			case DNIPackage.NETWORK_INFRASTRUCTURE__ENTITY_TYPES:
-				setEntityTypes((EntityTypes)newValue);
-				return;
-			case DNIPackage.NETWORK_INFRASTRUCTURE__DATA_CENTER_NAME:
-				setDataCenterName((String)newValue);
-				return;
-			case DNIPackage.NETWORK_INFRASTRUCTURE__META_MODEL_VERSION:
-				setMetaModelVersion((String)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INFRASTRUCTURE__TRAFFIC:
-				setTraffic((NetworkTraffic)null);
-				return;
-			case DNIPackage.NETWORK_INFRASTRUCTURE__STRUCTURE:
-				setStructure((NetworkStructure)null);
-				return;
-			case DNIPackage.NETWORK_INFRASTRUCTURE__CONFIGURATION:
-				setConfiguration((NetworkConfiguration)null);
-				return;
-			case DNIPackage.NETWORK_INFRASTRUCTURE__ENTITY_TYPES:
-				setEntityTypes((EntityTypes)null);
-				return;
-			case DNIPackage.NETWORK_INFRASTRUCTURE__DATA_CENTER_NAME:
-				setDataCenterName(DATA_CENTER_NAME_EDEFAULT);
-				return;
-			case DNIPackage.NETWORK_INFRASTRUCTURE__META_MODEL_VERSION:
-				setMetaModelVersion(META_MODEL_VERSION_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INFRASTRUCTURE__TRAFFIC:
-				return traffic != null;
-			case DNIPackage.NETWORK_INFRASTRUCTURE__STRUCTURE:
-				return structure != null;
-			case DNIPackage.NETWORK_INFRASTRUCTURE__CONFIGURATION:
-				return configuration != null;
-			case DNIPackage.NETWORK_INFRASTRUCTURE__ENTITY_TYPES:
-				return entityTypes != null;
-			case DNIPackage.NETWORK_INFRASTRUCTURE__DATA_CENTER_NAME:
-				return DATA_CENTER_NAME_EDEFAULT == null ? dataCenterName != null : !DATA_CENTER_NAME_EDEFAULT.equals(dataCenterName);
-			case DNIPackage.NETWORK_INFRASTRUCTURE__META_MODEL_VERSION:
-				return META_MODEL_VERSION_EDEFAULT == null ? metaModelVersion != null : !META_MODEL_VERSION_EDEFAULT.equals(metaModelVersion);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (dataCenterName: ");
-		result.append(dataCenterName);
-		result.append(", metaModelVersion: ");
-		result.append(metaModelVersion);
-		result.append(')');
-		return result.toString();
-	}
-
-} //NetworkInfrastructureImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkInterfaceImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkInterfaceImpl.java
deleted file mode 100644
index ec159c5c..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkInterfaceImpl.java
+++ /dev/null
@@ -1,803 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.EcoreUtil;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Entity;
-import tools.descartes.dni.dnimm3.EntityAddress;
-import tools.descartes.dni.dnimm3.Identifier;
-import tools.descartes.dni.dnimm3.NamedElement;
-import tools.descartes.dni.dnimm3.NetworkInterface;
-import tools.descartes.dni.dnimm3.NetworkInterfaceType;
-import tools.descartes.dni.dnimm3.Node;
-import tools.descartes.dni.dnimm3.PerformanceNetworkInterface;
-import tools.descartes.dni.dnimm3.ProtocolStack;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Network Interface</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInterfaceImpl#getAddresses <em>Addresses</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInterfaceImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInterfaceImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInterfaceImpl#getUid <em>Uid</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInterfaceImpl#getUid_generated <em>Uid generated</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInterfaceImpl#getUsedProtocolStack <em>Used Protocol Stack</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInterfaceImpl#getPerformance <em>Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInterfaceImpl#getNode <em>Node</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInterfaceImpl#getName_generated <em>Name generated</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInterfaceImpl#getEntityType <em>Entity Type</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class NetworkInterfaceImpl extends MinimalEObjectImpl.Container implements NetworkInterface {
-	/**
-	 * The cached value of the '{@link #getAddresses() <em>Addresses</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAddresses()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<EntityAddress> addresses;
-
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The default value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected String uid = UID_EDEFAULT;
-
-	/**
-	 * This is true if the Uid attribute has been set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean uidESet;
-
-	/**
-	 * The default value of the '{@link #getUid_generated() <em>Uid generated</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid_generated()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_GENERATED_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getUsedProtocolStack() <em>Used Protocol Stack</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUsedProtocolStack()
-	 * @generated
-	 * @ordered
-	 */
-	protected ProtocolStack usedProtocolStack;
-
-	/**
-	 * The cached value of the '{@link #getPerformance() <em>Performance</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPerformance()
-	 * @generated
-	 * @ordered
-	 */
-	protected PerformanceNetworkInterface performance;
-
-	/**
-	 * The default value of the '{@link #getName_generated() <em>Name generated</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName_generated()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_GENERATED_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getEntityType() <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntityType()
-	 * @generated
-	 * @ordered
-	 */
-	protected NetworkInterfaceType entityType;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NetworkInterfaceImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.NETWORK_INTERFACE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<EntityAddress> getAddresses() {
-		if (addresses == null) {
-			addresses = new EObjectContainmentEList<EntityAddress>(EntityAddress.class, this, DNIPackage.NETWORK_INTERFACE__ADDRESSES);
-		}
-		return addresses;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INTERFACE__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIPackage.NETWORK_INTERFACE__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid() {
-		return uid;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setUid(String newUid) {
-		String oldUid = uid;
-		uid = newUid;
-		boolean oldUidESet = uidESet;
-		uidESet = true;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INTERFACE__UID, oldUid, uid, !oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void unsetUid() {
-		String oldUid = uid;
-		boolean oldUidESet = uidESet;
-		uid = UID_EDEFAULT;
-		uidESet = false;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.UNSET, DNIPackage.NETWORK_INTERFACE__UID, oldUid, UID_EDEFAULT, oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isSetUid() {
-		return uidESet;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid_generated() {
-		if (((this.getUid() == null) || this.getUid().isEmpty())) {
-			this.setUid(EcoreUtil.generateUUID().toString());
-		}
-		return this.getUid();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ProtocolStack getUsedProtocolStack() {
-		if (usedProtocolStack != null && usedProtocolStack.eIsProxy()) {
-			InternalEObject oldUsedProtocolStack = (InternalEObject)usedProtocolStack;
-			usedProtocolStack = (ProtocolStack)eResolveProxy(oldUsedProtocolStack);
-			if (usedProtocolStack != oldUsedProtocolStack) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.NETWORK_INTERFACE__USED_PROTOCOL_STACK, oldUsedProtocolStack, usedProtocolStack));
-			}
-		}
-		return usedProtocolStack;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ProtocolStack basicGetUsedProtocolStack() {
-		return usedProtocolStack;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setUsedProtocolStack(ProtocolStack newUsedProtocolStack) {
-		ProtocolStack oldUsedProtocolStack = usedProtocolStack;
-		usedProtocolStack = newUsedProtocolStack;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INTERFACE__USED_PROTOCOL_STACK, oldUsedProtocolStack, usedProtocolStack));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PerformanceNetworkInterface getPerformance() {
-		return performance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetPerformance(PerformanceNetworkInterface newPerformance, NotificationChain msgs) {
-		PerformanceNetworkInterface oldPerformance = performance;
-		performance = newPerformance;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INTERFACE__PERFORMANCE, oldPerformance, newPerformance);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPerformance(PerformanceNetworkInterface newPerformance) {
-		if (newPerformance != performance) {
-			NotificationChain msgs = null;
-			if (performance != null)
-				msgs = ((InternalEObject)performance).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.NETWORK_INTERFACE__PERFORMANCE, null, msgs);
-			if (newPerformance != null)
-				msgs = ((InternalEObject)newPerformance).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.NETWORK_INTERFACE__PERFORMANCE, null, msgs);
-			msgs = basicSetPerformance(newPerformance, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INTERFACE__PERFORMANCE, newPerformance, newPerformance));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Node getNode() {
-		if (eContainerFeatureID() != DNIPackage.NETWORK_INTERFACE__NODE) return null;
-		return (Node)eContainer();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Node basicGetNode() {
-		if (eContainerFeatureID() != DNIPackage.NETWORK_INTERFACE__NODE) return null;
-		return (Node)eInternalContainer();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetNode(Node newNode, NotificationChain msgs) {
-		msgs = eBasicSetContainer((InternalEObject)newNode, DNIPackage.NETWORK_INTERFACE__NODE, msgs);
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setNode(Node newNode) {
-		if (newNode != eInternalContainer() || (eContainerFeatureID() != DNIPackage.NETWORK_INTERFACE__NODE && newNode != null)) {
-			if (EcoreUtil.isAncestor(this, newNode))
-				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
-			NotificationChain msgs = null;
-			if (eInternalContainer() != null)
-				msgs = eBasicRemoveFromContainer(msgs);
-			if (newNode != null)
-				msgs = ((InternalEObject)newNode).eInverseAdd(this, DNIPackage.NODE__INTERFACES, Node.class, msgs);
-			msgs = basicSetNode(newNode, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INTERFACE__NODE, newNode, newNode));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName_generated() {
-		if (((this.getDescription() == null) || this.getDescription().isEmpty())) {
-			String _name = this.getNode().getName();
-			String _plus = (("Unnamed_iface_" + "[") + _name);
-			String _plus_1 = (_plus + "]");
-			this.setName(_plus_1);
-		}
-		String _description = this.getDescription();
-		String _plus_2 = (_description + "[");
-		String _name_1 = this.getNode().getName();
-		String _plus_3 = (_plus_2 + _name_1);
-		String _plus_4 = (_plus_3 + "]");
-		this.setName(_plus_4);
-		return this.getName();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterfaceType getEntityType() {
-		if (entityType != null && entityType.eIsProxy()) {
-			InternalEObject oldEntityType = (InternalEObject)entityType;
-			entityType = (NetworkInterfaceType)eResolveProxy(oldEntityType);
-			if (entityType != oldEntityType) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.NETWORK_INTERFACE__ENTITY_TYPE, oldEntityType, entityType));
-			}
-		}
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterfaceType basicGetEntityType() {
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetEntityType(NetworkInterfaceType newEntityType, NotificationChain msgs) {
-		NetworkInterfaceType oldEntityType = entityType;
-		entityType = newEntityType;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INTERFACE__ENTITY_TYPE, oldEntityType, newEntityType);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEntityType(NetworkInterfaceType newEntityType) {
-		if (newEntityType != entityType) {
-			NotificationChain msgs = null;
-			if (entityType != null)
-				msgs = ((InternalEObject)entityType).eInverseRemove(this, DNIPackage.NETWORK_INTERFACE_TYPE__ENTITIES, NetworkInterfaceType.class, msgs);
-			if (newEntityType != null)
-				msgs = ((InternalEObject)newEntityType).eInverseAdd(this, DNIPackage.NETWORK_INTERFACE_TYPE__ENTITIES, NetworkInterfaceType.class, msgs);
-			msgs = basicSetEntityType(newEntityType, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INTERFACE__ENTITY_TYPE, newEntityType, newEntityType));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INTERFACE__NODE:
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetNode((Node)otherEnd, msgs);
-			case DNIPackage.NETWORK_INTERFACE__ENTITY_TYPE:
-				if (entityType != null)
-					msgs = ((InternalEObject)entityType).eInverseRemove(this, DNIPackage.NETWORK_INTERFACE_TYPE__ENTITIES, NetworkInterfaceType.class, msgs);
-				return basicSetEntityType((NetworkInterfaceType)otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INTERFACE__ADDRESSES:
-				return ((InternalEList<?>)getAddresses()).basicRemove(otherEnd, msgs);
-			case DNIPackage.NETWORK_INTERFACE__PERFORMANCE:
-				return basicSetPerformance(null, msgs);
-			case DNIPackage.NETWORK_INTERFACE__NODE:
-				return basicSetNode(null, msgs);
-			case DNIPackage.NETWORK_INTERFACE__ENTITY_TYPE:
-				return basicSetEntityType(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
-		switch (eContainerFeatureID()) {
-			case DNIPackage.NETWORK_INTERFACE__NODE:
-				return eInternalContainer().eInverseRemove(this, DNIPackage.NODE__INTERFACES, Node.class, msgs);
-		}
-		return super.eBasicRemoveFromContainerFeature(msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INTERFACE__ADDRESSES:
-				return getAddresses();
-			case DNIPackage.NETWORK_INTERFACE__NAME:
-				return getName();
-			case DNIPackage.NETWORK_INTERFACE__DESCRIPTION:
-				return getDescription();
-			case DNIPackage.NETWORK_INTERFACE__UID:
-				return getUid();
-			case DNIPackage.NETWORK_INTERFACE__UID_GENERATED:
-				return getUid_generated();
-			case DNIPackage.NETWORK_INTERFACE__USED_PROTOCOL_STACK:
-				if (resolve) return getUsedProtocolStack();
-				return basicGetUsedProtocolStack();
-			case DNIPackage.NETWORK_INTERFACE__PERFORMANCE:
-				return getPerformance();
-			case DNIPackage.NETWORK_INTERFACE__NODE:
-				if (resolve) return getNode();
-				return basicGetNode();
-			case DNIPackage.NETWORK_INTERFACE__NAME_GENERATED:
-				return getName_generated();
-			case DNIPackage.NETWORK_INTERFACE__ENTITY_TYPE:
-				if (resolve) return getEntityType();
-				return basicGetEntityType();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INTERFACE__ADDRESSES:
-				getAddresses().clear();
-				getAddresses().addAll((Collection<? extends EntityAddress>)newValue);
-				return;
-			case DNIPackage.NETWORK_INTERFACE__NAME:
-				setName((String)newValue);
-				return;
-			case DNIPackage.NETWORK_INTERFACE__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIPackage.NETWORK_INTERFACE__UID:
-				setUid((String)newValue);
-				return;
-			case DNIPackage.NETWORK_INTERFACE__USED_PROTOCOL_STACK:
-				setUsedProtocolStack((ProtocolStack)newValue);
-				return;
-			case DNIPackage.NETWORK_INTERFACE__PERFORMANCE:
-				setPerformance((PerformanceNetworkInterface)newValue);
-				return;
-			case DNIPackage.NETWORK_INTERFACE__NODE:
-				setNode((Node)newValue);
-				return;
-			case DNIPackage.NETWORK_INTERFACE__ENTITY_TYPE:
-				setEntityType((NetworkInterfaceType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INTERFACE__ADDRESSES:
-				getAddresses().clear();
-				return;
-			case DNIPackage.NETWORK_INTERFACE__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIPackage.NETWORK_INTERFACE__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIPackage.NETWORK_INTERFACE__UID:
-				unsetUid();
-				return;
-			case DNIPackage.NETWORK_INTERFACE__USED_PROTOCOL_STACK:
-				setUsedProtocolStack((ProtocolStack)null);
-				return;
-			case DNIPackage.NETWORK_INTERFACE__PERFORMANCE:
-				setPerformance((PerformanceNetworkInterface)null);
-				return;
-			case DNIPackage.NETWORK_INTERFACE__NODE:
-				setNode((Node)null);
-				return;
-			case DNIPackage.NETWORK_INTERFACE__ENTITY_TYPE:
-				setEntityType((NetworkInterfaceType)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INTERFACE__ADDRESSES:
-				return addresses != null && !addresses.isEmpty();
-			case DNIPackage.NETWORK_INTERFACE__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIPackage.NETWORK_INTERFACE__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIPackage.NETWORK_INTERFACE__UID:
-				return isSetUid();
-			case DNIPackage.NETWORK_INTERFACE__UID_GENERATED:
-				return UID_GENERATED_EDEFAULT == null ? getUid_generated() != null : !UID_GENERATED_EDEFAULT.equals(getUid_generated());
-			case DNIPackage.NETWORK_INTERFACE__USED_PROTOCOL_STACK:
-				return usedProtocolStack != null;
-			case DNIPackage.NETWORK_INTERFACE__PERFORMANCE:
-				return performance != null;
-			case DNIPackage.NETWORK_INTERFACE__NODE:
-				return basicGetNode() != null;
-			case DNIPackage.NETWORK_INTERFACE__NAME_GENERATED:
-				return NAME_GENERATED_EDEFAULT == null ? getName_generated() != null : !NAME_GENERATED_EDEFAULT.equals(getName_generated());
-			case DNIPackage.NETWORK_INTERFACE__ENTITY_TYPE:
-				return entityType != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.NETWORK_INTERFACE__NAME: return DNIPackage.NAMED_ELEMENT__NAME;
-				case DNIPackage.NETWORK_INTERFACE__DESCRIPTION: return DNIPackage.NAMED_ELEMENT__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		if (baseClass == Identifier.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.NETWORK_INTERFACE__UID: return DNIPackage.IDENTIFIER__UID;
-				case DNIPackage.NETWORK_INTERFACE__UID_GENERATED: return DNIPackage.IDENTIFIER__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		if (baseClass == Entity.class) {
-			switch (derivedFeatureID) {
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.NAMED_ELEMENT__NAME: return DNIPackage.NETWORK_INTERFACE__NAME;
-				case DNIPackage.NAMED_ELEMENT__DESCRIPTION: return DNIPackage.NETWORK_INTERFACE__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		if (baseClass == Identifier.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.IDENTIFIER__UID: return DNIPackage.NETWORK_INTERFACE__UID;
-				case DNIPackage.IDENTIFIER__UID_GENERATED: return DNIPackage.NETWORK_INTERFACE__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		if (baseClass == Entity.class) {
-			switch (baseFeatureID) {
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(", uid: ");
-		if (uidESet) result.append(uid); else result.append("<unset>");
-		result.append(')');
-		return result.toString();
-	}
-
-} //NetworkInterfaceImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkInterfacePerformanceTypeImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkInterfacePerformanceTypeImpl.java
deleted file mode 100644
index abd0e40d..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkInterfacePerformanceTypeImpl.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.EObjectWithInverseResolvingEList;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Identifier;
-import tools.descartes.dni.dnimm3.NetworkInterfacePerformanceType;
-import tools.descartes.dni.dnimm3.PerformanceNetworkInterface;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Network Interface Performance Type</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInterfacePerformanceTypeImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInterfacePerformanceTypeImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInterfacePerformanceTypeImpl#getUid <em>Uid</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInterfacePerformanceTypeImpl#getUid_generated <em>Uid generated</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInterfacePerformanceTypeImpl#getEntities <em>Entities</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class NetworkInterfacePerformanceTypeImpl extends MinimalEObjectImpl.Container implements NetworkInterfacePerformanceType {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The default value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected String uid = UID_EDEFAULT;
-
-	/**
-	 * This is true if the Uid attribute has been set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean uidESet;
-
-	/**
-	 * The default value of the '{@link #getUid_generated() <em>Uid generated</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid_generated()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_GENERATED_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getEntities() <em>Entities</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntities()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<PerformanceNetworkInterface> entities;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NetworkInterfacePerformanceTypeImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.NETWORK_INTERFACE_PERFORMANCE_TYPE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid() {
-		return uid;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setUid(String newUid) {
-		String oldUid = uid;
-		uid = newUid;
-		boolean oldUidESet = uidESet;
-		uidESet = true;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__UID, oldUid, uid, !oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void unsetUid() {
-		String oldUid = uid;
-		boolean oldUidESet = uidESet;
-		uid = UID_EDEFAULT;
-		uidESet = false;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.UNSET, DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__UID, oldUid, UID_EDEFAULT, oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isSetUid() {
-		return uidESet;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid_generated() {
-		if (((this.getUid() == null) || this.getUid().isEmpty())) {
-			this.setUid(EcoreUtil.generateUUID().toString());
-		}
-		return this.getUid();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<PerformanceNetworkInterface> getEntities() {
-		if (entities == null) {
-			entities = new EObjectWithInverseResolvingEList<PerformanceNetworkInterface>(PerformanceNetworkInterface.class, this, DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__ENTITIES, DNIPackage.PERFORMANCE_NETWORK_INTERFACE__ENTITY_TYPE);
-		}
-		return entities;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__ENTITIES:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getEntities()).basicAdd(otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__ENTITIES:
-				return ((InternalEList<?>)getEntities()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__NAME:
-				return getName();
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__DESCRIPTION:
-				return getDescription();
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__UID:
-				return getUid();
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__UID_GENERATED:
-				return getUid_generated();
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__ENTITIES:
-				return getEntities();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__NAME:
-				setName((String)newValue);
-				return;
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__UID:
-				setUid((String)newValue);
-				return;
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__ENTITIES:
-				getEntities().clear();
-				getEntities().addAll((Collection<? extends PerformanceNetworkInterface>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__UID:
-				unsetUid();
-				return;
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__ENTITIES:
-				getEntities().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__UID:
-				return isSetUid();
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__UID_GENERATED:
-				return UID_GENERATED_EDEFAULT == null ? getUid_generated() != null : !UID_GENERATED_EDEFAULT.equals(getUid_generated());
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__ENTITIES:
-				return entities != null && !entities.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == Identifier.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__UID: return DNIPackage.IDENTIFIER__UID;
-				case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__UID_GENERATED: return DNIPackage.IDENTIFIER__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == Identifier.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.IDENTIFIER__UID: return DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__UID;
-				case DNIPackage.IDENTIFIER__UID_GENERATED: return DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(", uid: ");
-		if (uidESet) result.append(uid); else result.append("<unset>");
-		result.append(')');
-		return result.toString();
-	}
-
-} //NetworkInterfacePerformanceTypeImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkInterfaceTypeImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkInterfaceTypeImpl.java
deleted file mode 100644
index adf8d3e3..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkInterfaceTypeImpl.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.EObjectWithInverseResolvingEList;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Identifier;
-import tools.descartes.dni.dnimm3.NetworkInterface;
-import tools.descartes.dni.dnimm3.NetworkInterfaceType;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Network Interface Type</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInterfaceTypeImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInterfaceTypeImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInterfaceTypeImpl#getUid <em>Uid</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInterfaceTypeImpl#getUid_generated <em>Uid generated</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkInterfaceTypeImpl#getEntities <em>Entities</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class NetworkInterfaceTypeImpl extends MinimalEObjectImpl.Container implements NetworkInterfaceType {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The default value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected String uid = UID_EDEFAULT;
-
-	/**
-	 * This is true if the Uid attribute has been set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean uidESet;
-
-	/**
-	 * The default value of the '{@link #getUid_generated() <em>Uid generated</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid_generated()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_GENERATED_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getEntities() <em>Entities</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntities()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<NetworkInterface> entities;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NetworkInterfaceTypeImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.NETWORK_INTERFACE_TYPE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INTERFACE_TYPE__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIPackage.NETWORK_INTERFACE_TYPE__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid() {
-		return uid;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setUid(String newUid) {
-		String oldUid = uid;
-		uid = newUid;
-		boolean oldUidESet = uidESet;
-		uidESet = true;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_INTERFACE_TYPE__UID, oldUid, uid, !oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void unsetUid() {
-		String oldUid = uid;
-		boolean oldUidESet = uidESet;
-		uid = UID_EDEFAULT;
-		uidESet = false;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.UNSET, DNIPackage.NETWORK_INTERFACE_TYPE__UID, oldUid, UID_EDEFAULT, oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isSetUid() {
-		return uidESet;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid_generated() {
-		if (((this.getUid() == null) || this.getUid().isEmpty())) {
-			this.setUid(EcoreUtil.generateUUID().toString());
-		}
-		return this.getUid();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<NetworkInterface> getEntities() {
-		if (entities == null) {
-			entities = new EObjectWithInverseResolvingEList<NetworkInterface>(NetworkInterface.class, this, DNIPackage.NETWORK_INTERFACE_TYPE__ENTITIES, DNIPackage.NETWORK_INTERFACE__ENTITY_TYPE);
-		}
-		return entities;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INTERFACE_TYPE__ENTITIES:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getEntities()).basicAdd(otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INTERFACE_TYPE__ENTITIES:
-				return ((InternalEList<?>)getEntities()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INTERFACE_TYPE__NAME:
-				return getName();
-			case DNIPackage.NETWORK_INTERFACE_TYPE__DESCRIPTION:
-				return getDescription();
-			case DNIPackage.NETWORK_INTERFACE_TYPE__UID:
-				return getUid();
-			case DNIPackage.NETWORK_INTERFACE_TYPE__UID_GENERATED:
-				return getUid_generated();
-			case DNIPackage.NETWORK_INTERFACE_TYPE__ENTITIES:
-				return getEntities();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INTERFACE_TYPE__NAME:
-				setName((String)newValue);
-				return;
-			case DNIPackage.NETWORK_INTERFACE_TYPE__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIPackage.NETWORK_INTERFACE_TYPE__UID:
-				setUid((String)newValue);
-				return;
-			case DNIPackage.NETWORK_INTERFACE_TYPE__ENTITIES:
-				getEntities().clear();
-				getEntities().addAll((Collection<? extends NetworkInterface>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INTERFACE_TYPE__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIPackage.NETWORK_INTERFACE_TYPE__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIPackage.NETWORK_INTERFACE_TYPE__UID:
-				unsetUid();
-				return;
-			case DNIPackage.NETWORK_INTERFACE_TYPE__ENTITIES:
-				getEntities().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_INTERFACE_TYPE__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIPackage.NETWORK_INTERFACE_TYPE__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIPackage.NETWORK_INTERFACE_TYPE__UID:
-				return isSetUid();
-			case DNIPackage.NETWORK_INTERFACE_TYPE__UID_GENERATED:
-				return UID_GENERATED_EDEFAULT == null ? getUid_generated() != null : !UID_GENERATED_EDEFAULT.equals(getUid_generated());
-			case DNIPackage.NETWORK_INTERFACE_TYPE__ENTITIES:
-				return entities != null && !entities.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == Identifier.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.NETWORK_INTERFACE_TYPE__UID: return DNIPackage.IDENTIFIER__UID;
-				case DNIPackage.NETWORK_INTERFACE_TYPE__UID_GENERATED: return DNIPackage.IDENTIFIER__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == Identifier.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.IDENTIFIER__UID: return DNIPackage.NETWORK_INTERFACE_TYPE__UID;
-				case DNIPackage.IDENTIFIER__UID_GENERATED: return DNIPackage.NETWORK_INTERFACE_TYPE__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(", uid: ");
-		if (uidESet) result.append(uid); else result.append("<unset>");
-		result.append(')');
-		return result.toString();
-	}
-
-} //NetworkInterfaceTypeImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkProtocolImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkProtocolImpl.java
deleted file mode 100644
index 5624f807..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkProtocolImpl.java
+++ /dev/null
@@ -1,359 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.NamedElement;
-import tools.descartes.dni.dnimm3.NetworkProtocol;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Network Protocol</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkProtocolImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkProtocolImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkProtocolImpl#getMtu <em>Mtu</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkProtocolImpl#getHeadersLength <em>Headers Length</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class NetworkProtocolImpl extends IdentifierImpl implements NetworkProtocol {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The default value of the '{@link #getMtu() <em>Mtu</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMtu()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int MTU_EDEFAULT = 1500;
-
-	/**
-	 * The cached value of the '{@link #getMtu() <em>Mtu</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMtu()
-	 * @generated
-	 * @ordered
-	 */
-	protected int mtu = MTU_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getHeadersLength() <em>Headers Length</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getHeadersLength()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int HEADERS_LENGTH_EDEFAULT = 40;
-
-	/**
-	 * The cached value of the '{@link #getHeadersLength() <em>Headers Length</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getHeadersLength()
-	 * @generated
-	 * @ordered
-	 */
-	protected int headersLength = HEADERS_LENGTH_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NetworkProtocolImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.NETWORK_PROTOCOL;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_PROTOCOL__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIPackage.NETWORK_PROTOCOL__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getMtu() {
-		return mtu;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setMtu(int newMtu) {
-		int oldMtu = mtu;
-		mtu = newMtu;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_PROTOCOL__MTU, oldMtu, mtu));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getHeadersLength() {
-		return headersLength;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setHeadersLength(int newHeadersLength) {
-		int oldHeadersLength = headersLength;
-		headersLength = newHeadersLength;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NETWORK_PROTOCOL__HEADERS_LENGTH, oldHeadersLength, headersLength));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_PROTOCOL__NAME:
-				return getName();
-			case DNIPackage.NETWORK_PROTOCOL__DESCRIPTION:
-				return getDescription();
-			case DNIPackage.NETWORK_PROTOCOL__MTU:
-				return getMtu();
-			case DNIPackage.NETWORK_PROTOCOL__HEADERS_LENGTH:
-				return getHeadersLength();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_PROTOCOL__NAME:
-				setName((String)newValue);
-				return;
-			case DNIPackage.NETWORK_PROTOCOL__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIPackage.NETWORK_PROTOCOL__MTU:
-				setMtu((Integer)newValue);
-				return;
-			case DNIPackage.NETWORK_PROTOCOL__HEADERS_LENGTH:
-				setHeadersLength((Integer)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_PROTOCOL__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIPackage.NETWORK_PROTOCOL__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIPackage.NETWORK_PROTOCOL__MTU:
-				setMtu(MTU_EDEFAULT);
-				return;
-			case DNIPackage.NETWORK_PROTOCOL__HEADERS_LENGTH:
-				setHeadersLength(HEADERS_LENGTH_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_PROTOCOL__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIPackage.NETWORK_PROTOCOL__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIPackage.NETWORK_PROTOCOL__MTU:
-				return mtu != MTU_EDEFAULT;
-			case DNIPackage.NETWORK_PROTOCOL__HEADERS_LENGTH:
-				return headersLength != HEADERS_LENGTH_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.NETWORK_PROTOCOL__NAME: return DNIPackage.NAMED_ELEMENT__NAME;
-				case DNIPackage.NETWORK_PROTOCOL__DESCRIPTION: return DNIPackage.NAMED_ELEMENT__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.NAMED_ELEMENT__NAME: return DNIPackage.NETWORK_PROTOCOL__NAME;
-				case DNIPackage.NAMED_ELEMENT__DESCRIPTION: return DNIPackage.NETWORK_PROTOCOL__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(", mtu: ");
-		result.append(mtu);
-		result.append(", headersLength: ");
-		result.append(headersLength);
-		result.append(')');
-		return result.toString();
-	}
-
-} //NetworkProtocolImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkStructureImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkStructureImpl.java
deleted file mode 100644
index 14d302e7..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkStructureImpl.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Link;
-import tools.descartes.dni.dnimm3.NetworkStructure;
-import tools.descartes.dni.dnimm3.Node;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Network Structure</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkStructureImpl#getNodes <em>Nodes</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkStructureImpl#getLinks <em>Links</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class NetworkStructureImpl extends MinimalEObjectImpl.Container implements NetworkStructure {
-	/**
-	 * The cached value of the '{@link #getNodes() <em>Nodes</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getNodes()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Node> nodes;
-
-	/**
-	 * The cached value of the '{@link #getLinks() <em>Links</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getLinks()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Link> links;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NetworkStructureImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.NETWORK_STRUCTURE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<Node> getNodes() {
-		if (nodes == null) {
-			nodes = new EObjectContainmentEList<Node>(Node.class, this, DNIPackage.NETWORK_STRUCTURE__NODES);
-		}
-		return nodes;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<Link> getLinks() {
-		if (links == null) {
-			links = new EObjectContainmentEList<Link>(Link.class, this, DNIPackage.NETWORK_STRUCTURE__LINKS);
-		}
-		return links;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_STRUCTURE__NODES:
-				return ((InternalEList<?>)getNodes()).basicRemove(otherEnd, msgs);
-			case DNIPackage.NETWORK_STRUCTURE__LINKS:
-				return ((InternalEList<?>)getLinks()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_STRUCTURE__NODES:
-				return getNodes();
-			case DNIPackage.NETWORK_STRUCTURE__LINKS:
-				return getLinks();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_STRUCTURE__NODES:
-				getNodes().clear();
-				getNodes().addAll((Collection<? extends Node>)newValue);
-				return;
-			case DNIPackage.NETWORK_STRUCTURE__LINKS:
-				getLinks().clear();
-				getLinks().addAll((Collection<? extends Link>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_STRUCTURE__NODES:
-				getNodes().clear();
-				return;
-			case DNIPackage.NETWORK_STRUCTURE__LINKS:
-				getLinks().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_STRUCTURE__NODES:
-				return nodes != null && !nodes.isEmpty();
-			case DNIPackage.NETWORK_STRUCTURE__LINKS:
-				return links != null && !links.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //NetworkStructureImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkTrafficImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkTrafficImpl.java
deleted file mode 100644
index a250ec08..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NetworkTrafficImpl.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.CommunicatingApplication;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Flow;
-import tools.descartes.dni.dnimm3.NetworkTraffic;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Network Traffic</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkTrafficImpl#getFlows <em>Flows</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NetworkTrafficImpl#getSoftware <em>Software</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class NetworkTrafficImpl extends MinimalEObjectImpl.Container implements NetworkTraffic {
-	/**
-	 * The cached value of the '{@link #getFlows() <em>Flows</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getFlows()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Flow> flows;
-
-	/**
-	 * The cached value of the '{@link #getSoftware() <em>Software</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSoftware()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<CommunicatingApplication> software;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NetworkTrafficImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.NETWORK_TRAFFIC;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<Flow> getFlows() {
-		if (flows == null) {
-			flows = new EObjectContainmentEList<Flow>(Flow.class, this, DNIPackage.NETWORK_TRAFFIC__FLOWS);
-		}
-		return flows;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<CommunicatingApplication> getSoftware() {
-		if (software == null) {
-			software = new EObjectContainmentEList<CommunicatingApplication>(CommunicatingApplication.class, this, DNIPackage.NETWORK_TRAFFIC__SOFTWARE);
-		}
-		return software;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_TRAFFIC__FLOWS:
-				return ((InternalEList<?>)getFlows()).basicRemove(otherEnd, msgs);
-			case DNIPackage.NETWORK_TRAFFIC__SOFTWARE:
-				return ((InternalEList<?>)getSoftware()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_TRAFFIC__FLOWS:
-				return getFlows();
-			case DNIPackage.NETWORK_TRAFFIC__SOFTWARE:
-				return getSoftware();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_TRAFFIC__FLOWS:
-				getFlows().clear();
-				getFlows().addAll((Collection<? extends Flow>)newValue);
-				return;
-			case DNIPackage.NETWORK_TRAFFIC__SOFTWARE:
-				getSoftware().clear();
-				getSoftware().addAll((Collection<? extends CommunicatingApplication>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_TRAFFIC__FLOWS:
-				getFlows().clear();
-				return;
-			case DNIPackage.NETWORK_TRAFFIC__SOFTWARE:
-				getSoftware().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.NETWORK_TRAFFIC__FLOWS:
-				return flows != null && !flows.isEmpty();
-			case DNIPackage.NETWORK_TRAFFIC__SOFTWARE:
-				return software != null && !software.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //NetworkTrafficImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NodeImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NodeImpl.java
deleted file mode 100644
index 64733ff2..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NodeImpl.java
+++ /dev/null
@@ -1,874 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.util.EObjectContainmentWithInverseEList;
-import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.End;
-import tools.descartes.dni.dnimm3.IType;
-import tools.descartes.dni.dnimm3.Intermediate;
-import tools.descartes.dni.dnimm3.NamedElement;
-import tools.descartes.dni.dnimm3.NetworkInterface;
-import tools.descartes.dni.dnimm3.Node;
-import tools.descartes.dni.dnimm3.NodeType;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Node</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NodeImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NodeImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NodeImpl#getInterfaces <em>Interfaces</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NodeImpl#getSdntype <em>Sdntype</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NodeImpl#isIsPhysical <em>Is Physical</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NodeImpl#isIsPhysical_derived <em>Is Physical derived</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NodeImpl#getHosts <em>Hosts</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NodeImpl#getIsHostedOn <em>Is Hosted On</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NodeImpl#getEnd <em>End</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NodeImpl#getIntermediate <em>Intermediate</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NodeImpl#getEntityType <em>Entity Type</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class NodeImpl extends IdentifierImpl implements Node {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The cached value of the '{@link #getInterfaces() <em>Interfaces</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getInterfaces()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<NetworkInterface> interfaces;
-
-	/**
-	 * The cached value of the '{@link #getSdntype() <em>Sdntype</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSdntype()
-	 * @generated
-	 * @ordered
-	 */
-	protected IType sdntype;
-
-	/**
-	 * The default value of the '{@link #isIsPhysical() <em>Is Physical</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isIsPhysical()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final boolean IS_PHYSICAL_EDEFAULT = true;
-
-	/**
-	 * The cached value of the '{@link #isIsPhysical() <em>Is Physical</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isIsPhysical()
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean isPhysical = IS_PHYSICAL_EDEFAULT;
-
-	/**
-	 * This is true if the Is Physical attribute has been set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean isPhysicalESet;
-
-	/**
-	 * The default value of the '{@link #isIsPhysical_derived() <em>Is Physical derived</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isIsPhysical_derived()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final boolean IS_PHYSICAL_DERIVED_EDEFAULT = false;
-
-	/**
-	 * The cached value of the '{@link #getHosts() <em>Hosts</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getHosts()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Node> hosts;
-
-	/**
-	 * The cached value of the '{@link #getIsHostedOn() <em>Is Hosted On</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getIsHostedOn()
-	 * @generated
-	 * @ordered
-	 */
-	protected Node isHostedOn;
-
-	/**
-	 * The cached value of the '{@link #getEnd() <em>End</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEnd()
-	 * @generated
-	 * @ordered
-	 */
-	protected End end;
-
-	/**
-	 * The cached value of the '{@link #getIntermediate() <em>Intermediate</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getIntermediate()
-	 * @generated
-	 * @ordered
-	 */
-	protected Intermediate intermediate;
-
-	/**
-	 * The cached value of the '{@link #getEntityType() <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntityType()
-	 * @generated
-	 * @ordered
-	 */
-	protected NodeType entityType;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NodeImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.NODE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NODE__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIPackage.NODE__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<NetworkInterface> getInterfaces() {
-		if (interfaces == null) {
-			interfaces = new EObjectContainmentWithInverseEList<NetworkInterface>(NetworkInterface.class, this, DNIPackage.NODE__INTERFACES, DNIPackage.NETWORK_INTERFACE__NODE);
-		}
-		return interfaces;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IType getSdntype() {
-		return sdntype;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetSdntype(IType newSdntype, NotificationChain msgs) {
-		IType oldSdntype = sdntype;
-		sdntype = newSdntype;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.NODE__SDNTYPE, oldSdntype, newSdntype);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setSdntype(IType newSdntype) {
-		if (newSdntype != sdntype) {
-			NotificationChain msgs = null;
-			if (sdntype != null)
-				msgs = ((InternalEObject)sdntype).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.NODE__SDNTYPE, null, msgs);
-			if (newSdntype != null)
-				msgs = ((InternalEObject)newSdntype).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.NODE__SDNTYPE, null, msgs);
-			msgs = basicSetSdntype(newSdntype, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NODE__SDNTYPE, newSdntype, newSdntype));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isIsPhysical() {
-		return isPhysical;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setIsPhysical(boolean newIsPhysical) {
-		boolean oldIsPhysical = isPhysical;
-		isPhysical = newIsPhysical;
-		boolean oldIsPhysicalESet = isPhysicalESet;
-		isPhysicalESet = true;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NODE__IS_PHYSICAL, oldIsPhysical, isPhysical, !oldIsPhysicalESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void unsetIsPhysical() {
-		boolean oldIsPhysical = isPhysical;
-		boolean oldIsPhysicalESet = isPhysicalESet;
-		isPhysical = IS_PHYSICAL_EDEFAULT;
-		isPhysicalESet = false;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.UNSET, DNIPackage.NODE__IS_PHYSICAL, oldIsPhysical, IS_PHYSICAL_EDEFAULT, oldIsPhysicalESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isSetIsPhysical() {
-		return isPhysicalESet;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isIsPhysical_derived() {
-		Node _isHostedOn = this.getIsHostedOn();
-		boolean _tripleNotEquals = (_isHostedOn != null);
-		if (_tripleNotEquals) {
-			this.setIsPhysical(false);
-		}
-		Node _isHostedOn_1 = this.getIsHostedOn();
-		boolean _tripleEquals = (_isHostedOn_1 == null);
-		if (_tripleEquals) {
-			this.setIsPhysical(true);
-		}
-		this.setIsPhysical(true);
-		return this.isIsPhysical();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<Node> getHosts() {
-		if (hosts == null) {
-			hosts = new EObjectWithInverseResolvingEList<Node>(Node.class, this, DNIPackage.NODE__HOSTS, DNIPackage.NODE__IS_HOSTED_ON);
-		}
-		return hosts;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Node getIsHostedOn() {
-		if (isHostedOn != null && isHostedOn.eIsProxy()) {
-			InternalEObject oldIsHostedOn = (InternalEObject)isHostedOn;
-			isHostedOn = (Node)eResolveProxy(oldIsHostedOn);
-			if (isHostedOn != oldIsHostedOn) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.NODE__IS_HOSTED_ON, oldIsHostedOn, isHostedOn));
-			}
-		}
-		return isHostedOn;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Node basicGetIsHostedOn() {
-		return isHostedOn;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetIsHostedOn(Node newIsHostedOn, NotificationChain msgs) {
-		Node oldIsHostedOn = isHostedOn;
-		isHostedOn = newIsHostedOn;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.NODE__IS_HOSTED_ON, oldIsHostedOn, newIsHostedOn);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setIsHostedOn(Node newIsHostedOn) {
-		if (newIsHostedOn != isHostedOn) {
-			NotificationChain msgs = null;
-			if (isHostedOn != null)
-				msgs = ((InternalEObject)isHostedOn).eInverseRemove(this, DNIPackage.NODE__HOSTS, Node.class, msgs);
-			if (newIsHostedOn != null)
-				msgs = ((InternalEObject)newIsHostedOn).eInverseAdd(this, DNIPackage.NODE__HOSTS, Node.class, msgs);
-			msgs = basicSetIsHostedOn(newIsHostedOn, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NODE__IS_HOSTED_ON, newIsHostedOn, newIsHostedOn));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public End getEnd() {
-		return end;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetEnd(End newEnd, NotificationChain msgs) {
-		End oldEnd = end;
-		end = newEnd;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.NODE__END, oldEnd, newEnd);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEnd(End newEnd) {
-		if (newEnd != end) {
-			NotificationChain msgs = null;
-			if (end != null)
-				msgs = ((InternalEObject)end).eInverseRemove(this, DNIPackage.END__NODE, End.class, msgs);
-			if (newEnd != null)
-				msgs = ((InternalEObject)newEnd).eInverseAdd(this, DNIPackage.END__NODE, End.class, msgs);
-			msgs = basicSetEnd(newEnd, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NODE__END, newEnd, newEnd));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Intermediate getIntermediate() {
-		return intermediate;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetIntermediate(Intermediate newIntermediate, NotificationChain msgs) {
-		Intermediate oldIntermediate = intermediate;
-		intermediate = newIntermediate;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.NODE__INTERMEDIATE, oldIntermediate, newIntermediate);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setIntermediate(Intermediate newIntermediate) {
-		if (newIntermediate != intermediate) {
-			NotificationChain msgs = null;
-			if (intermediate != null)
-				msgs = ((InternalEObject)intermediate).eInverseRemove(this, DNIPackage.INTERMEDIATE__NODE, Intermediate.class, msgs);
-			if (newIntermediate != null)
-				msgs = ((InternalEObject)newIntermediate).eInverseAdd(this, DNIPackage.INTERMEDIATE__NODE, Intermediate.class, msgs);
-			msgs = basicSetIntermediate(newIntermediate, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NODE__INTERMEDIATE, newIntermediate, newIntermediate));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NodeType getEntityType() {
-		if (entityType != null && entityType.eIsProxy()) {
-			InternalEObject oldEntityType = (InternalEObject)entityType;
-			entityType = (NodeType)eResolveProxy(oldEntityType);
-			if (entityType != oldEntityType) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.NODE__ENTITY_TYPE, oldEntityType, entityType));
-			}
-		}
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NodeType basicGetEntityType() {
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetEntityType(NodeType newEntityType, NotificationChain msgs) {
-		NodeType oldEntityType = entityType;
-		entityType = newEntityType;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.NODE__ENTITY_TYPE, oldEntityType, newEntityType);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEntityType(NodeType newEntityType) {
-		if (newEntityType != entityType) {
-			NotificationChain msgs = null;
-			if (entityType != null)
-				msgs = ((InternalEObject)entityType).eInverseRemove(this, DNIPackage.NODE_TYPE__ENTITIES, NodeType.class, msgs);
-			if (newEntityType != null)
-				msgs = ((InternalEObject)newEntityType).eInverseAdd(this, DNIPackage.NODE_TYPE__ENTITIES, NodeType.class, msgs);
-			msgs = basicSetEntityType(newEntityType, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NODE__ENTITY_TYPE, newEntityType, newEntityType));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.NODE__INTERFACES:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getInterfaces()).basicAdd(otherEnd, msgs);
-			case DNIPackage.NODE__HOSTS:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getHosts()).basicAdd(otherEnd, msgs);
-			case DNIPackage.NODE__IS_HOSTED_ON:
-				if (isHostedOn != null)
-					msgs = ((InternalEObject)isHostedOn).eInverseRemove(this, DNIPackage.NODE__HOSTS, Node.class, msgs);
-				return basicSetIsHostedOn((Node)otherEnd, msgs);
-			case DNIPackage.NODE__END:
-				if (end != null)
-					msgs = ((InternalEObject)end).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.NODE__END, null, msgs);
-				return basicSetEnd((End)otherEnd, msgs);
-			case DNIPackage.NODE__INTERMEDIATE:
-				if (intermediate != null)
-					msgs = ((InternalEObject)intermediate).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.NODE__INTERMEDIATE, null, msgs);
-				return basicSetIntermediate((Intermediate)otherEnd, msgs);
-			case DNIPackage.NODE__ENTITY_TYPE:
-				if (entityType != null)
-					msgs = ((InternalEObject)entityType).eInverseRemove(this, DNIPackage.NODE_TYPE__ENTITIES, NodeType.class, msgs);
-				return basicSetEntityType((NodeType)otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.NODE__INTERFACES:
-				return ((InternalEList<?>)getInterfaces()).basicRemove(otherEnd, msgs);
-			case DNIPackage.NODE__SDNTYPE:
-				return basicSetSdntype(null, msgs);
-			case DNIPackage.NODE__HOSTS:
-				return ((InternalEList<?>)getHosts()).basicRemove(otherEnd, msgs);
-			case DNIPackage.NODE__IS_HOSTED_ON:
-				return basicSetIsHostedOn(null, msgs);
-			case DNIPackage.NODE__END:
-				return basicSetEnd(null, msgs);
-			case DNIPackage.NODE__INTERMEDIATE:
-				return basicSetIntermediate(null, msgs);
-			case DNIPackage.NODE__ENTITY_TYPE:
-				return basicSetEntityType(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.NODE__NAME:
-				return getName();
-			case DNIPackage.NODE__DESCRIPTION:
-				return getDescription();
-			case DNIPackage.NODE__INTERFACES:
-				return getInterfaces();
-			case DNIPackage.NODE__SDNTYPE:
-				return getSdntype();
-			case DNIPackage.NODE__IS_PHYSICAL:
-				return isIsPhysical();
-			case DNIPackage.NODE__IS_PHYSICAL_DERIVED:
-				return isIsPhysical_derived();
-			case DNIPackage.NODE__HOSTS:
-				return getHosts();
-			case DNIPackage.NODE__IS_HOSTED_ON:
-				if (resolve) return getIsHostedOn();
-				return basicGetIsHostedOn();
-			case DNIPackage.NODE__END:
-				return getEnd();
-			case DNIPackage.NODE__INTERMEDIATE:
-				return getIntermediate();
-			case DNIPackage.NODE__ENTITY_TYPE:
-				if (resolve) return getEntityType();
-				return basicGetEntityType();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.NODE__NAME:
-				setName((String)newValue);
-				return;
-			case DNIPackage.NODE__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIPackage.NODE__INTERFACES:
-				getInterfaces().clear();
-				getInterfaces().addAll((Collection<? extends NetworkInterface>)newValue);
-				return;
-			case DNIPackage.NODE__SDNTYPE:
-				setSdntype((IType)newValue);
-				return;
-			case DNIPackage.NODE__IS_PHYSICAL:
-				setIsPhysical((Boolean)newValue);
-				return;
-			case DNIPackage.NODE__HOSTS:
-				getHosts().clear();
-				getHosts().addAll((Collection<? extends Node>)newValue);
-				return;
-			case DNIPackage.NODE__IS_HOSTED_ON:
-				setIsHostedOn((Node)newValue);
-				return;
-			case DNIPackage.NODE__END:
-				setEnd((End)newValue);
-				return;
-			case DNIPackage.NODE__INTERMEDIATE:
-				setIntermediate((Intermediate)newValue);
-				return;
-			case DNIPackage.NODE__ENTITY_TYPE:
-				setEntityType((NodeType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.NODE__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIPackage.NODE__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIPackage.NODE__INTERFACES:
-				getInterfaces().clear();
-				return;
-			case DNIPackage.NODE__SDNTYPE:
-				setSdntype((IType)null);
-				return;
-			case DNIPackage.NODE__IS_PHYSICAL:
-				unsetIsPhysical();
-				return;
-			case DNIPackage.NODE__HOSTS:
-				getHosts().clear();
-				return;
-			case DNIPackage.NODE__IS_HOSTED_ON:
-				setIsHostedOn((Node)null);
-				return;
-			case DNIPackage.NODE__END:
-				setEnd((End)null);
-				return;
-			case DNIPackage.NODE__INTERMEDIATE:
-				setIntermediate((Intermediate)null);
-				return;
-			case DNIPackage.NODE__ENTITY_TYPE:
-				setEntityType((NodeType)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.NODE__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIPackage.NODE__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIPackage.NODE__INTERFACES:
-				return interfaces != null && !interfaces.isEmpty();
-			case DNIPackage.NODE__SDNTYPE:
-				return sdntype != null;
-			case DNIPackage.NODE__IS_PHYSICAL:
-				return isSetIsPhysical();
-			case DNIPackage.NODE__IS_PHYSICAL_DERIVED:
-				return isIsPhysical_derived() != IS_PHYSICAL_DERIVED_EDEFAULT;
-			case DNIPackage.NODE__HOSTS:
-				return hosts != null && !hosts.isEmpty();
-			case DNIPackage.NODE__IS_HOSTED_ON:
-				return isHostedOn != null;
-			case DNIPackage.NODE__END:
-				return end != null;
-			case DNIPackage.NODE__INTERMEDIATE:
-				return intermediate != null;
-			case DNIPackage.NODE__ENTITY_TYPE:
-				return entityType != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.NODE__NAME: return DNIPackage.NAMED_ELEMENT__NAME;
-				case DNIPackage.NODE__DESCRIPTION: return DNIPackage.NAMED_ELEMENT__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.NAMED_ELEMENT__NAME: return DNIPackage.NODE__NAME;
-				case DNIPackage.NAMED_ELEMENT__DESCRIPTION: return DNIPackage.NODE__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(", isPhysical: ");
-		if (isPhysicalESet) result.append(isPhysical); else result.append("<unset>");
-		result.append(')');
-		return result.toString();
-	}
-
-} //NodeImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NodeTypeImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NodeTypeImpl.java
deleted file mode 100644
index 09743720..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/NodeTypeImpl.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.EObjectWithInverseResolvingEList;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Identifier;
-import tools.descartes.dni.dnimm3.Node;
-import tools.descartes.dni.dnimm3.NodeType;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Node Type</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NodeTypeImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NodeTypeImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NodeTypeImpl#getUid <em>Uid</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NodeTypeImpl#getUid_generated <em>Uid generated</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.NodeTypeImpl#getEntities <em>Entities</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class NodeTypeImpl extends MinimalEObjectImpl.Container implements NodeType {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The default value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected String uid = UID_EDEFAULT;
-
-	/**
-	 * This is true if the Uid attribute has been set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean uidESet;
-
-	/**
-	 * The default value of the '{@link #getUid_generated() <em>Uid generated</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid_generated()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_GENERATED_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getEntities() <em>Entities</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntities()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Node> entities;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NodeTypeImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.NODE_TYPE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NODE_TYPE__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIPackage.NODE_TYPE__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid() {
-		return uid;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setUid(String newUid) {
-		String oldUid = uid;
-		uid = newUid;
-		boolean oldUidESet = uidESet;
-		uidESet = true;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.NODE_TYPE__UID, oldUid, uid, !oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void unsetUid() {
-		String oldUid = uid;
-		boolean oldUidESet = uidESet;
-		uid = UID_EDEFAULT;
-		uidESet = false;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.UNSET, DNIPackage.NODE_TYPE__UID, oldUid, UID_EDEFAULT, oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isSetUid() {
-		return uidESet;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid_generated() {
-		if (((this.getUid() == null) || this.getUid().isEmpty())) {
-			this.setUid(EcoreUtil.generateUUID().toString());
-		}
-		return this.getUid();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<Node> getEntities() {
-		if (entities == null) {
-			entities = new EObjectWithInverseResolvingEList<Node>(Node.class, this, DNIPackage.NODE_TYPE__ENTITIES, DNIPackage.NODE__ENTITY_TYPE);
-		}
-		return entities;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.NODE_TYPE__ENTITIES:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getEntities()).basicAdd(otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.NODE_TYPE__ENTITIES:
-				return ((InternalEList<?>)getEntities()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.NODE_TYPE__NAME:
-				return getName();
-			case DNIPackage.NODE_TYPE__DESCRIPTION:
-				return getDescription();
-			case DNIPackage.NODE_TYPE__UID:
-				return getUid();
-			case DNIPackage.NODE_TYPE__UID_GENERATED:
-				return getUid_generated();
-			case DNIPackage.NODE_TYPE__ENTITIES:
-				return getEntities();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.NODE_TYPE__NAME:
-				setName((String)newValue);
-				return;
-			case DNIPackage.NODE_TYPE__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIPackage.NODE_TYPE__UID:
-				setUid((String)newValue);
-				return;
-			case DNIPackage.NODE_TYPE__ENTITIES:
-				getEntities().clear();
-				getEntities().addAll((Collection<? extends Node>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.NODE_TYPE__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIPackage.NODE_TYPE__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIPackage.NODE_TYPE__UID:
-				unsetUid();
-				return;
-			case DNIPackage.NODE_TYPE__ENTITIES:
-				getEntities().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.NODE_TYPE__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIPackage.NODE_TYPE__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIPackage.NODE_TYPE__UID:
-				return isSetUid();
-			case DNIPackage.NODE_TYPE__UID_GENERATED:
-				return UID_GENERATED_EDEFAULT == null ? getUid_generated() != null : !UID_GENERATED_EDEFAULT.equals(getUid_generated());
-			case DNIPackage.NODE_TYPE__ENTITIES:
-				return entities != null && !entities.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == Identifier.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.NODE_TYPE__UID: return DNIPackage.IDENTIFIER__UID;
-				case DNIPackage.NODE_TYPE__UID_GENERATED: return DNIPackage.IDENTIFIER__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == Identifier.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.IDENTIFIER__UID: return DNIPackage.NODE_TYPE__UID;
-				case DNIPackage.IDENTIFIER__UID_GENERATED: return DNIPackage.NODE_TYPE__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(", uid: ");
-		if (uidESet) result.append(uid); else result.append("<unset>");
-		result.append(')');
-		return result.toString();
-	}
-
-} //NodeTypeImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/PerformanceLinkImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/PerformanceLinkImpl.java
deleted file mode 100644
index a64fd027..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/PerformanceLinkImpl.java
+++ /dev/null
@@ -1,343 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-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 tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Dependency;
-import tools.descartes.dni.dnimm3.LinkPerformanceType;
-import tools.descartes.dni.dnimm3.PerformanceLink;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Performance Link</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.PerformanceLinkImpl#getPropagationDelay <em>Propagation Delay</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.PerformanceLinkImpl#getMaxSupportedBandwidth <em>Max Supported Bandwidth</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.PerformanceLinkImpl#getEntityType <em>Entity Type</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class PerformanceLinkImpl extends MinimalEObjectImpl.Container implements PerformanceLink {
-	/**
-	 * The cached value of the '{@link #getPropagationDelay() <em>Propagation Delay</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPropagationDelay()
-	 * @generated
-	 * @ordered
-	 */
-	protected Dependency propagationDelay;
-
-	/**
-	 * The cached value of the '{@link #getMaxSupportedBandwidth() <em>Max Supported Bandwidth</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMaxSupportedBandwidth()
-	 * @generated
-	 * @ordered
-	 */
-	protected Dependency maxSupportedBandwidth;
-
-	/**
-	 * The cached value of the '{@link #getEntityType() <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntityType()
-	 * @generated
-	 * @ordered
-	 */
-	protected LinkPerformanceType entityType;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected PerformanceLinkImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.PERFORMANCE_LINK;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Dependency getPropagationDelay() {
-		return propagationDelay;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetPropagationDelay(Dependency newPropagationDelay, NotificationChain msgs) {
-		Dependency oldPropagationDelay = propagationDelay;
-		propagationDelay = newPropagationDelay;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.PERFORMANCE_LINK__PROPAGATION_DELAY, oldPropagationDelay, newPropagationDelay);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPropagationDelay(Dependency newPropagationDelay) {
-		if (newPropagationDelay != propagationDelay) {
-			NotificationChain msgs = null;
-			if (propagationDelay != null)
-				msgs = ((InternalEObject)propagationDelay).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.PERFORMANCE_LINK__PROPAGATION_DELAY, null, msgs);
-			if (newPropagationDelay != null)
-				msgs = ((InternalEObject)newPropagationDelay).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.PERFORMANCE_LINK__PROPAGATION_DELAY, null, msgs);
-			msgs = basicSetPropagationDelay(newPropagationDelay, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.PERFORMANCE_LINK__PROPAGATION_DELAY, newPropagationDelay, newPropagationDelay));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Dependency getMaxSupportedBandwidth() {
-		return maxSupportedBandwidth;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetMaxSupportedBandwidth(Dependency newMaxSupportedBandwidth, NotificationChain msgs) {
-		Dependency oldMaxSupportedBandwidth = maxSupportedBandwidth;
-		maxSupportedBandwidth = newMaxSupportedBandwidth;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.PERFORMANCE_LINK__MAX_SUPPORTED_BANDWIDTH, oldMaxSupportedBandwidth, newMaxSupportedBandwidth);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setMaxSupportedBandwidth(Dependency newMaxSupportedBandwidth) {
-		if (newMaxSupportedBandwidth != maxSupportedBandwidth) {
-			NotificationChain msgs = null;
-			if (maxSupportedBandwidth != null)
-				msgs = ((InternalEObject)maxSupportedBandwidth).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.PERFORMANCE_LINK__MAX_SUPPORTED_BANDWIDTH, null, msgs);
-			if (newMaxSupportedBandwidth != null)
-				msgs = ((InternalEObject)newMaxSupportedBandwidth).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.PERFORMANCE_LINK__MAX_SUPPORTED_BANDWIDTH, null, msgs);
-			msgs = basicSetMaxSupportedBandwidth(newMaxSupportedBandwidth, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.PERFORMANCE_LINK__MAX_SUPPORTED_BANDWIDTH, newMaxSupportedBandwidth, newMaxSupportedBandwidth));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LinkPerformanceType getEntityType() {
-		if (entityType != null && entityType.eIsProxy()) {
-			InternalEObject oldEntityType = (InternalEObject)entityType;
-			entityType = (LinkPerformanceType)eResolveProxy(oldEntityType);
-			if (entityType != oldEntityType) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.PERFORMANCE_LINK__ENTITY_TYPE, oldEntityType, entityType));
-			}
-		}
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LinkPerformanceType basicGetEntityType() {
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetEntityType(LinkPerformanceType newEntityType, NotificationChain msgs) {
-		LinkPerformanceType oldEntityType = entityType;
-		entityType = newEntityType;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.PERFORMANCE_LINK__ENTITY_TYPE, oldEntityType, newEntityType);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEntityType(LinkPerformanceType newEntityType) {
-		if (newEntityType != entityType) {
-			NotificationChain msgs = null;
-			if (entityType != null)
-				msgs = ((InternalEObject)entityType).eInverseRemove(this, DNIPackage.LINK_PERFORMANCE_TYPE__ENTITIES, LinkPerformanceType.class, msgs);
-			if (newEntityType != null)
-				msgs = ((InternalEObject)newEntityType).eInverseAdd(this, DNIPackage.LINK_PERFORMANCE_TYPE__ENTITIES, LinkPerformanceType.class, msgs);
-			msgs = basicSetEntityType(newEntityType, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.PERFORMANCE_LINK__ENTITY_TYPE, newEntityType, newEntityType));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.PERFORMANCE_LINK__ENTITY_TYPE:
-				if (entityType != null)
-					msgs = ((InternalEObject)entityType).eInverseRemove(this, DNIPackage.LINK_PERFORMANCE_TYPE__ENTITIES, LinkPerformanceType.class, msgs);
-				return basicSetEntityType((LinkPerformanceType)otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.PERFORMANCE_LINK__PROPAGATION_DELAY:
-				return basicSetPropagationDelay(null, msgs);
-			case DNIPackage.PERFORMANCE_LINK__MAX_SUPPORTED_BANDWIDTH:
-				return basicSetMaxSupportedBandwidth(null, msgs);
-			case DNIPackage.PERFORMANCE_LINK__ENTITY_TYPE:
-				return basicSetEntityType(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.PERFORMANCE_LINK__PROPAGATION_DELAY:
-				return getPropagationDelay();
-			case DNIPackage.PERFORMANCE_LINK__MAX_SUPPORTED_BANDWIDTH:
-				return getMaxSupportedBandwidth();
-			case DNIPackage.PERFORMANCE_LINK__ENTITY_TYPE:
-				if (resolve) return getEntityType();
-				return basicGetEntityType();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.PERFORMANCE_LINK__PROPAGATION_DELAY:
-				setPropagationDelay((Dependency)newValue);
-				return;
-			case DNIPackage.PERFORMANCE_LINK__MAX_SUPPORTED_BANDWIDTH:
-				setMaxSupportedBandwidth((Dependency)newValue);
-				return;
-			case DNIPackage.PERFORMANCE_LINK__ENTITY_TYPE:
-				setEntityType((LinkPerformanceType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.PERFORMANCE_LINK__PROPAGATION_DELAY:
-				setPropagationDelay((Dependency)null);
-				return;
-			case DNIPackage.PERFORMANCE_LINK__MAX_SUPPORTED_BANDWIDTH:
-				setMaxSupportedBandwidth((Dependency)null);
-				return;
-			case DNIPackage.PERFORMANCE_LINK__ENTITY_TYPE:
-				setEntityType((LinkPerformanceType)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.PERFORMANCE_LINK__PROPAGATION_DELAY:
-				return propagationDelay != null;
-			case DNIPackage.PERFORMANCE_LINK__MAX_SUPPORTED_BANDWIDTH:
-				return maxSupportedBandwidth != null;
-			case DNIPackage.PERFORMANCE_LINK__ENTITY_TYPE:
-				return entityType != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //PerformanceLinkImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/PerformanceNetworkInterfaceImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/PerformanceNetworkInterfaceImpl.java
deleted file mode 100644
index 305e2752..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/PerformanceNetworkInterfaceImpl.java
+++ /dev/null
@@ -1,466 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-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 tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Dependency;
-import tools.descartes.dni.dnimm3.NetworkInterfacePerformanceType;
-import tools.descartes.dni.dnimm3.PerformanceNetworkInterface;
-import tools.descartes.dni.dnimm3.Variable;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Performance Network Interface</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.PerformanceNetworkInterfaceImpl#isIsUp <em>Is Up</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.PerformanceNetworkInterfaceImpl#getMTU <em>MTU</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.PerformanceNetworkInterfaceImpl#getPacketProcessingTime <em>Packet Processing Time</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.PerformanceNetworkInterfaceImpl#getInterfaceThroughput <em>Interface Throughput</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.PerformanceNetworkInterfaceImpl#getEntityType <em>Entity Type</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class PerformanceNetworkInterfaceImpl extends MinimalEObjectImpl.Container implements PerformanceNetworkInterface {
-	/**
-	 * The default value of the '{@link #isIsUp() <em>Is Up</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isIsUp()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final boolean IS_UP_EDEFAULT = true;
-
-	/**
-	 * The cached value of the '{@link #isIsUp() <em>Is Up</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isIsUp()
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean isUp = IS_UP_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getMTU() <em>MTU</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMTU()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int MTU_EDEFAULT = 1500;
-
-	/**
-	 * The cached value of the '{@link #getMTU() <em>MTU</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMTU()
-	 * @generated
-	 * @ordered
-	 */
-	protected int mtu = MTU_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getPacketProcessingTime() <em>Packet Processing Time</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPacketProcessingTime()
-	 * @generated
-	 * @ordered
-	 */
-	protected Dependency packetProcessingTime;
-
-	/**
-	 * The cached value of the '{@link #getInterfaceThroughput() <em>Interface Throughput</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getInterfaceThroughput()
-	 * @generated
-	 * @ordered
-	 */
-	protected Variable interfaceThroughput;
-
-	/**
-	 * The cached value of the '{@link #getEntityType() <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntityType()
-	 * @generated
-	 * @ordered
-	 */
-	protected NetworkInterfacePerformanceType entityType;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected PerformanceNetworkInterfaceImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.PERFORMANCE_NETWORK_INTERFACE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isIsUp() {
-		return isUp;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setIsUp(boolean newIsUp) {
-		boolean oldIsUp = isUp;
-		isUp = newIsUp;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.PERFORMANCE_NETWORK_INTERFACE__IS_UP, oldIsUp, isUp));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getMTU() {
-		return mtu;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setMTU(int newMTU) {
-		int oldMTU = mtu;
-		mtu = newMTU;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.PERFORMANCE_NETWORK_INTERFACE__MTU, oldMTU, mtu));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Dependency getPacketProcessingTime() {
-		return packetProcessingTime;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetPacketProcessingTime(Dependency newPacketProcessingTime, NotificationChain msgs) {
-		Dependency oldPacketProcessingTime = packetProcessingTime;
-		packetProcessingTime = newPacketProcessingTime;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.PERFORMANCE_NETWORK_INTERFACE__PACKET_PROCESSING_TIME, oldPacketProcessingTime, newPacketProcessingTime);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPacketProcessingTime(Dependency newPacketProcessingTime) {
-		if (newPacketProcessingTime != packetProcessingTime) {
-			NotificationChain msgs = null;
-			if (packetProcessingTime != null)
-				msgs = ((InternalEObject)packetProcessingTime).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.PERFORMANCE_NETWORK_INTERFACE__PACKET_PROCESSING_TIME, null, msgs);
-			if (newPacketProcessingTime != null)
-				msgs = ((InternalEObject)newPacketProcessingTime).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.PERFORMANCE_NETWORK_INTERFACE__PACKET_PROCESSING_TIME, null, msgs);
-			msgs = basicSetPacketProcessingTime(newPacketProcessingTime, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.PERFORMANCE_NETWORK_INTERFACE__PACKET_PROCESSING_TIME, newPacketProcessingTime, newPacketProcessingTime));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Variable getInterfaceThroughput() {
-		return interfaceThroughput;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetInterfaceThroughput(Variable newInterfaceThroughput, NotificationChain msgs) {
-		Variable oldInterfaceThroughput = interfaceThroughput;
-		interfaceThroughput = newInterfaceThroughput;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.PERFORMANCE_NETWORK_INTERFACE__INTERFACE_THROUGHPUT, oldInterfaceThroughput, newInterfaceThroughput);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setInterfaceThroughput(Variable newInterfaceThroughput) {
-		if (newInterfaceThroughput != interfaceThroughput) {
-			NotificationChain msgs = null;
-			if (interfaceThroughput != null)
-				msgs = ((InternalEObject)interfaceThroughput).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.PERFORMANCE_NETWORK_INTERFACE__INTERFACE_THROUGHPUT, null, msgs);
-			if (newInterfaceThroughput != null)
-				msgs = ((InternalEObject)newInterfaceThroughput).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.PERFORMANCE_NETWORK_INTERFACE__INTERFACE_THROUGHPUT, null, msgs);
-			msgs = basicSetInterfaceThroughput(newInterfaceThroughput, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.PERFORMANCE_NETWORK_INTERFACE__INTERFACE_THROUGHPUT, newInterfaceThroughput, newInterfaceThroughput));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterfacePerformanceType getEntityType() {
-		if (entityType != null && entityType.eIsProxy()) {
-			InternalEObject oldEntityType = (InternalEObject)entityType;
-			entityType = (NetworkInterfacePerformanceType)eResolveProxy(oldEntityType);
-			if (entityType != oldEntityType) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.PERFORMANCE_NETWORK_INTERFACE__ENTITY_TYPE, oldEntityType, entityType));
-			}
-		}
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterfacePerformanceType basicGetEntityType() {
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetEntityType(NetworkInterfacePerformanceType newEntityType, NotificationChain msgs) {
-		NetworkInterfacePerformanceType oldEntityType = entityType;
-		entityType = newEntityType;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.PERFORMANCE_NETWORK_INTERFACE__ENTITY_TYPE, oldEntityType, newEntityType);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEntityType(NetworkInterfacePerformanceType newEntityType) {
-		if (newEntityType != entityType) {
-			NotificationChain msgs = null;
-			if (entityType != null)
-				msgs = ((InternalEObject)entityType).eInverseRemove(this, DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__ENTITIES, NetworkInterfacePerformanceType.class, msgs);
-			if (newEntityType != null)
-				msgs = ((InternalEObject)newEntityType).eInverseAdd(this, DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__ENTITIES, NetworkInterfacePerformanceType.class, msgs);
-			msgs = basicSetEntityType(newEntityType, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.PERFORMANCE_NETWORK_INTERFACE__ENTITY_TYPE, newEntityType, newEntityType));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__ENTITY_TYPE:
-				if (entityType != null)
-					msgs = ((InternalEObject)entityType).eInverseRemove(this, DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__ENTITIES, NetworkInterfacePerformanceType.class, msgs);
-				return basicSetEntityType((NetworkInterfacePerformanceType)otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__PACKET_PROCESSING_TIME:
-				return basicSetPacketProcessingTime(null, msgs);
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__INTERFACE_THROUGHPUT:
-				return basicSetInterfaceThroughput(null, msgs);
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__ENTITY_TYPE:
-				return basicSetEntityType(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__IS_UP:
-				return isIsUp();
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__MTU:
-				return getMTU();
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__PACKET_PROCESSING_TIME:
-				return getPacketProcessingTime();
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__INTERFACE_THROUGHPUT:
-				return getInterfaceThroughput();
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__ENTITY_TYPE:
-				if (resolve) return getEntityType();
-				return basicGetEntityType();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__IS_UP:
-				setIsUp((Boolean)newValue);
-				return;
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__MTU:
-				setMTU((Integer)newValue);
-				return;
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__PACKET_PROCESSING_TIME:
-				setPacketProcessingTime((Dependency)newValue);
-				return;
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__INTERFACE_THROUGHPUT:
-				setInterfaceThroughput((Variable)newValue);
-				return;
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__ENTITY_TYPE:
-				setEntityType((NetworkInterfacePerformanceType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__IS_UP:
-				setIsUp(IS_UP_EDEFAULT);
-				return;
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__MTU:
-				setMTU(MTU_EDEFAULT);
-				return;
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__PACKET_PROCESSING_TIME:
-				setPacketProcessingTime((Dependency)null);
-				return;
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__INTERFACE_THROUGHPUT:
-				setInterfaceThroughput((Variable)null);
-				return;
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__ENTITY_TYPE:
-				setEntityType((NetworkInterfacePerformanceType)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__IS_UP:
-				return isUp != IS_UP_EDEFAULT;
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__MTU:
-				return mtu != MTU_EDEFAULT;
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__PACKET_PROCESSING_TIME:
-				return packetProcessingTime != null;
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__INTERFACE_THROUGHPUT:
-				return interfaceThroughput != null;
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__ENTITY_TYPE:
-				return entityType != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (isUp: ");
-		result.append(isUp);
-		result.append(", MTU: ");
-		result.append(mtu);
-		result.append(')');
-		return result.toString();
-	}
-
-} //PerformanceNetworkInterfaceImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/PerformanceSdnNodeImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/PerformanceSdnNodeImpl.java
deleted file mode 100644
index f9e0a612..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/PerformanceSdnNodeImpl.java
+++ /dev/null
@@ -1,343 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-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 tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.IntermediatePerformance;
-import tools.descartes.dni.dnimm3.PerformanceSdnNode;
-import tools.descartes.dni.dnimm3.SdnNodePerformanceType;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Performance Sdn Node</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.PerformanceSdnNodeImpl#getSoftwareSwitchingPerformance <em>Software Switching Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.PerformanceSdnNodeImpl#getHardwareSwitchingPerformance <em>Hardware Switching Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.PerformanceSdnNodeImpl#getEntityType <em>Entity Type</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class PerformanceSdnNodeImpl extends MinimalEObjectImpl.Container implements PerformanceSdnNode {
-	/**
-	 * The cached value of the '{@link #getSoftwareSwitchingPerformance() <em>Software Switching Performance</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSoftwareSwitchingPerformance()
-	 * @generated
-	 * @ordered
-	 */
-	protected IntermediatePerformance softwareSwitchingPerformance;
-
-	/**
-	 * The cached value of the '{@link #getHardwareSwitchingPerformance() <em>Hardware Switching Performance</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getHardwareSwitchingPerformance()
-	 * @generated
-	 * @ordered
-	 */
-	protected IntermediatePerformance hardwareSwitchingPerformance;
-
-	/**
-	 * The cached value of the '{@link #getEntityType() <em>Entity Type</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntityType()
-	 * @generated
-	 * @ordered
-	 */
-	protected SdnNodePerformanceType entityType;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected PerformanceSdnNodeImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.PERFORMANCE_SDN_NODE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IntermediatePerformance getSoftwareSwitchingPerformance() {
-		return softwareSwitchingPerformance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetSoftwareSwitchingPerformance(IntermediatePerformance newSoftwareSwitchingPerformance, NotificationChain msgs) {
-		IntermediatePerformance oldSoftwareSwitchingPerformance = softwareSwitchingPerformance;
-		softwareSwitchingPerformance = newSoftwareSwitchingPerformance;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.PERFORMANCE_SDN_NODE__SOFTWARE_SWITCHING_PERFORMANCE, oldSoftwareSwitchingPerformance, newSoftwareSwitchingPerformance);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setSoftwareSwitchingPerformance(IntermediatePerformance newSoftwareSwitchingPerformance) {
-		if (newSoftwareSwitchingPerformance != softwareSwitchingPerformance) {
-			NotificationChain msgs = null;
-			if (softwareSwitchingPerformance != null)
-				msgs = ((InternalEObject)softwareSwitchingPerformance).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.PERFORMANCE_SDN_NODE__SOFTWARE_SWITCHING_PERFORMANCE, null, msgs);
-			if (newSoftwareSwitchingPerformance != null)
-				msgs = ((InternalEObject)newSoftwareSwitchingPerformance).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.PERFORMANCE_SDN_NODE__SOFTWARE_SWITCHING_PERFORMANCE, null, msgs);
-			msgs = basicSetSoftwareSwitchingPerformance(newSoftwareSwitchingPerformance, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.PERFORMANCE_SDN_NODE__SOFTWARE_SWITCHING_PERFORMANCE, newSoftwareSwitchingPerformance, newSoftwareSwitchingPerformance));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IntermediatePerformance getHardwareSwitchingPerformance() {
-		return hardwareSwitchingPerformance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetHardwareSwitchingPerformance(IntermediatePerformance newHardwareSwitchingPerformance, NotificationChain msgs) {
-		IntermediatePerformance oldHardwareSwitchingPerformance = hardwareSwitchingPerformance;
-		hardwareSwitchingPerformance = newHardwareSwitchingPerformance;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.PERFORMANCE_SDN_NODE__HARDWARE_SWITCHING_PERFORMANCE, oldHardwareSwitchingPerformance, newHardwareSwitchingPerformance);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setHardwareSwitchingPerformance(IntermediatePerformance newHardwareSwitchingPerformance) {
-		if (newHardwareSwitchingPerformance != hardwareSwitchingPerformance) {
-			NotificationChain msgs = null;
-			if (hardwareSwitchingPerformance != null)
-				msgs = ((InternalEObject)hardwareSwitchingPerformance).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.PERFORMANCE_SDN_NODE__HARDWARE_SWITCHING_PERFORMANCE, null, msgs);
-			if (newHardwareSwitchingPerformance != null)
-				msgs = ((InternalEObject)newHardwareSwitchingPerformance).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.PERFORMANCE_SDN_NODE__HARDWARE_SWITCHING_PERFORMANCE, null, msgs);
-			msgs = basicSetHardwareSwitchingPerformance(newHardwareSwitchingPerformance, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.PERFORMANCE_SDN_NODE__HARDWARE_SWITCHING_PERFORMANCE, newHardwareSwitchingPerformance, newHardwareSwitchingPerformance));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SdnNodePerformanceType getEntityType() {
-		if (entityType != null && entityType.eIsProxy()) {
-			InternalEObject oldEntityType = (InternalEObject)entityType;
-			entityType = (SdnNodePerformanceType)eResolveProxy(oldEntityType);
-			if (entityType != oldEntityType) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.PERFORMANCE_SDN_NODE__ENTITY_TYPE, oldEntityType, entityType));
-			}
-		}
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SdnNodePerformanceType basicGetEntityType() {
-		return entityType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetEntityType(SdnNodePerformanceType newEntityType, NotificationChain msgs) {
-		SdnNodePerformanceType oldEntityType = entityType;
-		entityType = newEntityType;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.PERFORMANCE_SDN_NODE__ENTITY_TYPE, oldEntityType, newEntityType);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEntityType(SdnNodePerformanceType newEntityType) {
-		if (newEntityType != entityType) {
-			NotificationChain msgs = null;
-			if (entityType != null)
-				msgs = ((InternalEObject)entityType).eInverseRemove(this, DNIPackage.SDN_NODE_PERFORMANCE_TYPE__ENTITIES, SdnNodePerformanceType.class, msgs);
-			if (newEntityType != null)
-				msgs = ((InternalEObject)newEntityType).eInverseAdd(this, DNIPackage.SDN_NODE_PERFORMANCE_TYPE__ENTITIES, SdnNodePerformanceType.class, msgs);
-			msgs = basicSetEntityType(newEntityType, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.PERFORMANCE_SDN_NODE__ENTITY_TYPE, newEntityType, newEntityType));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.PERFORMANCE_SDN_NODE__ENTITY_TYPE:
-				if (entityType != null)
-					msgs = ((InternalEObject)entityType).eInverseRemove(this, DNIPackage.SDN_NODE_PERFORMANCE_TYPE__ENTITIES, SdnNodePerformanceType.class, msgs);
-				return basicSetEntityType((SdnNodePerformanceType)otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.PERFORMANCE_SDN_NODE__SOFTWARE_SWITCHING_PERFORMANCE:
-				return basicSetSoftwareSwitchingPerformance(null, msgs);
-			case DNIPackage.PERFORMANCE_SDN_NODE__HARDWARE_SWITCHING_PERFORMANCE:
-				return basicSetHardwareSwitchingPerformance(null, msgs);
-			case DNIPackage.PERFORMANCE_SDN_NODE__ENTITY_TYPE:
-				return basicSetEntityType(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.PERFORMANCE_SDN_NODE__SOFTWARE_SWITCHING_PERFORMANCE:
-				return getSoftwareSwitchingPerformance();
-			case DNIPackage.PERFORMANCE_SDN_NODE__HARDWARE_SWITCHING_PERFORMANCE:
-				return getHardwareSwitchingPerformance();
-			case DNIPackage.PERFORMANCE_SDN_NODE__ENTITY_TYPE:
-				if (resolve) return getEntityType();
-				return basicGetEntityType();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.PERFORMANCE_SDN_NODE__SOFTWARE_SWITCHING_PERFORMANCE:
-				setSoftwareSwitchingPerformance((IntermediatePerformance)newValue);
-				return;
-			case DNIPackage.PERFORMANCE_SDN_NODE__HARDWARE_SWITCHING_PERFORMANCE:
-				setHardwareSwitchingPerformance((IntermediatePerformance)newValue);
-				return;
-			case DNIPackage.PERFORMANCE_SDN_NODE__ENTITY_TYPE:
-				setEntityType((SdnNodePerformanceType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.PERFORMANCE_SDN_NODE__SOFTWARE_SWITCHING_PERFORMANCE:
-				setSoftwareSwitchingPerformance((IntermediatePerformance)null);
-				return;
-			case DNIPackage.PERFORMANCE_SDN_NODE__HARDWARE_SWITCHING_PERFORMANCE:
-				setHardwareSwitchingPerformance((IntermediatePerformance)null);
-				return;
-			case DNIPackage.PERFORMANCE_SDN_NODE__ENTITY_TYPE:
-				setEntityType((SdnNodePerformanceType)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.PERFORMANCE_SDN_NODE__SOFTWARE_SWITCHING_PERFORMANCE:
-				return softwareSwitchingPerformance != null;
-			case DNIPackage.PERFORMANCE_SDN_NODE__HARDWARE_SWITCHING_PERFORMANCE:
-				return hardwareSwitchingPerformance != null;
-			case DNIPackage.PERFORMANCE_SDN_NODE__ENTITY_TYPE:
-				return entityType != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //PerformanceSdnNodeImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ProtocolLayerImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ProtocolLayerImpl.java
deleted file mode 100644
index 16c47b6f..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ProtocolLayerImpl.java
+++ /dev/null
@@ -1,514 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.NamedElement;
-import tools.descartes.dni.dnimm3.NetworkProtocol;
-import tools.descartes.dni.dnimm3.ProtocolLayer;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Protocol Layer</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.ProtocolLayerImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.ProtocolLayerImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.ProtocolLayerImpl#getProtocol <em>Protocol</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.ProtocolLayerImpl#getIsCarriedBy <em>Is Carried By</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.ProtocolLayerImpl#getCarries <em>Carries</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ProtocolLayerImpl extends IdentifierImpl implements ProtocolLayer {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The cached value of the '{@link #getProtocol() <em>Protocol</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProtocol()
-	 * @generated
-	 * @ordered
-	 */
-	protected NetworkProtocol protocol;
-
-	/**
-	 * The cached value of the '{@link #getIsCarriedBy() <em>Is Carried By</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getIsCarriedBy()
-	 * @generated
-	 * @ordered
-	 */
-	protected ProtocolLayer isCarriedBy;
-
-	/**
-	 * The cached value of the '{@link #getCarries() <em>Carries</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCarries()
-	 * @generated
-	 * @ordered
-	 */
-	protected ProtocolLayer carries;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ProtocolLayerImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.PROTOCOL_LAYER;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.PROTOCOL_LAYER__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIPackage.PROTOCOL_LAYER__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkProtocol getProtocol() {
-		if (protocol != null && protocol.eIsProxy()) {
-			InternalEObject oldProtocol = (InternalEObject)protocol;
-			protocol = (NetworkProtocol)eResolveProxy(oldProtocol);
-			if (protocol != oldProtocol) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.PROTOCOL_LAYER__PROTOCOL, oldProtocol, protocol));
-			}
-		}
-		return protocol;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkProtocol basicGetProtocol() {
-		return protocol;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setProtocol(NetworkProtocol newProtocol) {
-		NetworkProtocol oldProtocol = protocol;
-		protocol = newProtocol;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.PROTOCOL_LAYER__PROTOCOL, oldProtocol, protocol));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ProtocolLayer getIsCarriedBy() {
-		if (isCarriedBy != null && isCarriedBy.eIsProxy()) {
-			InternalEObject oldIsCarriedBy = (InternalEObject)isCarriedBy;
-			isCarriedBy = (ProtocolLayer)eResolveProxy(oldIsCarriedBy);
-			if (isCarriedBy != oldIsCarriedBy) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.PROTOCOL_LAYER__IS_CARRIED_BY, oldIsCarriedBy, isCarriedBy));
-			}
-		}
-		return isCarriedBy;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ProtocolLayer basicGetIsCarriedBy() {
-		return isCarriedBy;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetIsCarriedBy(ProtocolLayer newIsCarriedBy, NotificationChain msgs) {
-		ProtocolLayer oldIsCarriedBy = isCarriedBy;
-		isCarriedBy = newIsCarriedBy;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.PROTOCOL_LAYER__IS_CARRIED_BY, oldIsCarriedBy, newIsCarriedBy);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setIsCarriedBy(ProtocolLayer newIsCarriedBy) {
-		if (newIsCarriedBy != isCarriedBy) {
-			NotificationChain msgs = null;
-			if (isCarriedBy != null)
-				msgs = ((InternalEObject)isCarriedBy).eInverseRemove(this, DNIPackage.PROTOCOL_LAYER__CARRIES, ProtocolLayer.class, msgs);
-			if (newIsCarriedBy != null)
-				msgs = ((InternalEObject)newIsCarriedBy).eInverseAdd(this, DNIPackage.PROTOCOL_LAYER__CARRIES, ProtocolLayer.class, msgs);
-			msgs = basicSetIsCarriedBy(newIsCarriedBy, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.PROTOCOL_LAYER__IS_CARRIED_BY, newIsCarriedBy, newIsCarriedBy));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ProtocolLayer getCarries() {
-		if (carries != null && carries.eIsProxy()) {
-			InternalEObject oldCarries = (InternalEObject)carries;
-			carries = (ProtocolLayer)eResolveProxy(oldCarries);
-			if (carries != oldCarries) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.PROTOCOL_LAYER__CARRIES, oldCarries, carries));
-			}
-		}
-		return carries;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ProtocolLayer basicGetCarries() {
-		return carries;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetCarries(ProtocolLayer newCarries, NotificationChain msgs) {
-		ProtocolLayer oldCarries = carries;
-		carries = newCarries;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.PROTOCOL_LAYER__CARRIES, oldCarries, newCarries);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setCarries(ProtocolLayer newCarries) {
-		if (newCarries != carries) {
-			NotificationChain msgs = null;
-			if (carries != null)
-				msgs = ((InternalEObject)carries).eInverseRemove(this, DNIPackage.PROTOCOL_LAYER__IS_CARRIED_BY, ProtocolLayer.class, msgs);
-			if (newCarries != null)
-				msgs = ((InternalEObject)newCarries).eInverseAdd(this, DNIPackage.PROTOCOL_LAYER__IS_CARRIED_BY, ProtocolLayer.class, msgs);
-			msgs = basicSetCarries(newCarries, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.PROTOCOL_LAYER__CARRIES, newCarries, newCarries));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.PROTOCOL_LAYER__IS_CARRIED_BY:
-				if (isCarriedBy != null)
-					msgs = ((InternalEObject)isCarriedBy).eInverseRemove(this, DNIPackage.PROTOCOL_LAYER__CARRIES, ProtocolLayer.class, msgs);
-				return basicSetIsCarriedBy((ProtocolLayer)otherEnd, msgs);
-			case DNIPackage.PROTOCOL_LAYER__CARRIES:
-				if (carries != null)
-					msgs = ((InternalEObject)carries).eInverseRemove(this, DNIPackage.PROTOCOL_LAYER__IS_CARRIED_BY, ProtocolLayer.class, msgs);
-				return basicSetCarries((ProtocolLayer)otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.PROTOCOL_LAYER__IS_CARRIED_BY:
-				return basicSetIsCarriedBy(null, msgs);
-			case DNIPackage.PROTOCOL_LAYER__CARRIES:
-				return basicSetCarries(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.PROTOCOL_LAYER__NAME:
-				return getName();
-			case DNIPackage.PROTOCOL_LAYER__DESCRIPTION:
-				return getDescription();
-			case DNIPackage.PROTOCOL_LAYER__PROTOCOL:
-				if (resolve) return getProtocol();
-				return basicGetProtocol();
-			case DNIPackage.PROTOCOL_LAYER__IS_CARRIED_BY:
-				if (resolve) return getIsCarriedBy();
-				return basicGetIsCarriedBy();
-			case DNIPackage.PROTOCOL_LAYER__CARRIES:
-				if (resolve) return getCarries();
-				return basicGetCarries();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.PROTOCOL_LAYER__NAME:
-				setName((String)newValue);
-				return;
-			case DNIPackage.PROTOCOL_LAYER__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIPackage.PROTOCOL_LAYER__PROTOCOL:
-				setProtocol((NetworkProtocol)newValue);
-				return;
-			case DNIPackage.PROTOCOL_LAYER__IS_CARRIED_BY:
-				setIsCarriedBy((ProtocolLayer)newValue);
-				return;
-			case DNIPackage.PROTOCOL_LAYER__CARRIES:
-				setCarries((ProtocolLayer)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.PROTOCOL_LAYER__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIPackage.PROTOCOL_LAYER__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIPackage.PROTOCOL_LAYER__PROTOCOL:
-				setProtocol((NetworkProtocol)null);
-				return;
-			case DNIPackage.PROTOCOL_LAYER__IS_CARRIED_BY:
-				setIsCarriedBy((ProtocolLayer)null);
-				return;
-			case DNIPackage.PROTOCOL_LAYER__CARRIES:
-				setCarries((ProtocolLayer)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.PROTOCOL_LAYER__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIPackage.PROTOCOL_LAYER__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIPackage.PROTOCOL_LAYER__PROTOCOL:
-				return protocol != null;
-			case DNIPackage.PROTOCOL_LAYER__IS_CARRIED_BY:
-				return isCarriedBy != null;
-			case DNIPackage.PROTOCOL_LAYER__CARRIES:
-				return carries != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.PROTOCOL_LAYER__NAME: return DNIPackage.NAMED_ELEMENT__NAME;
-				case DNIPackage.PROTOCOL_LAYER__DESCRIPTION: return DNIPackage.NAMED_ELEMENT__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.NAMED_ELEMENT__NAME: return DNIPackage.PROTOCOL_LAYER__NAME;
-				case DNIPackage.NAMED_ELEMENT__DESCRIPTION: return DNIPackage.PROTOCOL_LAYER__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(')');
-		return result.toString();
-	}
-
-} //ProtocolLayerImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ProtocolStackImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ProtocolStackImpl.java
deleted file mode 100644
index 24216537..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ProtocolStackImpl.java
+++ /dev/null
@@ -1,311 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.NamedElement;
-import tools.descartes.dni.dnimm3.ProtocolLayer;
-import tools.descartes.dni.dnimm3.ProtocolStack;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Protocol Stack</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.ProtocolStackImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.ProtocolStackImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.ProtocolStackImpl#getLayers <em>Layers</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ProtocolStackImpl extends IdentifierImpl implements ProtocolStack {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The cached value of the '{@link #getLayers() <em>Layers</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getLayers()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<ProtocolLayer> layers;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ProtocolStackImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.PROTOCOL_STACK;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.PROTOCOL_STACK__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIPackage.PROTOCOL_STACK__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<ProtocolLayer> getLayers() {
-		if (layers == null) {
-			layers = new EObjectContainmentEList<ProtocolLayer>(ProtocolLayer.class, this, DNIPackage.PROTOCOL_STACK__LAYERS);
-		}
-		return layers;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.PROTOCOL_STACK__LAYERS:
-				return ((InternalEList<?>)getLayers()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.PROTOCOL_STACK__NAME:
-				return getName();
-			case DNIPackage.PROTOCOL_STACK__DESCRIPTION:
-				return getDescription();
-			case DNIPackage.PROTOCOL_STACK__LAYERS:
-				return getLayers();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.PROTOCOL_STACK__NAME:
-				setName((String)newValue);
-				return;
-			case DNIPackage.PROTOCOL_STACK__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIPackage.PROTOCOL_STACK__LAYERS:
-				getLayers().clear();
-				getLayers().addAll((Collection<? extends ProtocolLayer>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.PROTOCOL_STACK__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIPackage.PROTOCOL_STACK__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIPackage.PROTOCOL_STACK__LAYERS:
-				getLayers().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.PROTOCOL_STACK__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIPackage.PROTOCOL_STACK__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIPackage.PROTOCOL_STACK__LAYERS:
-				return layers != null && !layers.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.PROTOCOL_STACK__NAME: return DNIPackage.NAMED_ELEMENT__NAME;
-				case DNIPackage.PROTOCOL_STACK__DESCRIPTION: return DNIPackage.NAMED_ELEMENT__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.NAMED_ELEMENT__NAME: return DNIPackage.PROTOCOL_STACK__NAME;
-				case DNIPackage.NAMED_ELEMENT__DESCRIPTION: return DNIPackage.PROTOCOL_STACK__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(')');
-		return result.toString();
-	}
-
-} //ProtocolStackImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ProtocolsRepositoryImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ProtocolsRepositoryImpl.java
deleted file mode 100644
index daa61026..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/ProtocolsRepositoryImpl.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.NetworkProtocol;
-import tools.descartes.dni.dnimm3.ProtocolStack;
-import tools.descartes.dni.dnimm3.ProtocolsRepository;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Protocols Repository</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.ProtocolsRepositoryImpl#getStacks <em>Stacks</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.ProtocolsRepositoryImpl#getProtocols <em>Protocols</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ProtocolsRepositoryImpl extends MinimalEObjectImpl.Container implements ProtocolsRepository {
-	/**
-	 * The cached value of the '{@link #getStacks() <em>Stacks</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getStacks()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<ProtocolStack> stacks;
-
-	/**
-	 * The cached value of the '{@link #getProtocols() <em>Protocols</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProtocols()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<NetworkProtocol> protocols;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ProtocolsRepositoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.PROTOCOLS_REPOSITORY;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<ProtocolStack> getStacks() {
-		if (stacks == null) {
-			stacks = new EObjectContainmentEList<ProtocolStack>(ProtocolStack.class, this, DNIPackage.PROTOCOLS_REPOSITORY__STACKS);
-		}
-		return stacks;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<NetworkProtocol> getProtocols() {
-		if (protocols == null) {
-			protocols = new EObjectContainmentEList<NetworkProtocol>(NetworkProtocol.class, this, DNIPackage.PROTOCOLS_REPOSITORY__PROTOCOLS);
-		}
-		return protocols;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.PROTOCOLS_REPOSITORY__STACKS:
-				return ((InternalEList<?>)getStacks()).basicRemove(otherEnd, msgs);
-			case DNIPackage.PROTOCOLS_REPOSITORY__PROTOCOLS:
-				return ((InternalEList<?>)getProtocols()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.PROTOCOLS_REPOSITORY__STACKS:
-				return getStacks();
-			case DNIPackage.PROTOCOLS_REPOSITORY__PROTOCOLS:
-				return getProtocols();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.PROTOCOLS_REPOSITORY__STACKS:
-				getStacks().clear();
-				getStacks().addAll((Collection<? extends ProtocolStack>)newValue);
-				return;
-			case DNIPackage.PROTOCOLS_REPOSITORY__PROTOCOLS:
-				getProtocols().clear();
-				getProtocols().addAll((Collection<? extends NetworkProtocol>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.PROTOCOLS_REPOSITORY__STACKS:
-				getStacks().clear();
-				return;
-			case DNIPackage.PROTOCOLS_REPOSITORY__PROTOCOLS:
-				getProtocols().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.PROTOCOLS_REPOSITORY__STACKS:
-				return stacks != null && !stacks.isEmpty();
-			case DNIPackage.PROTOCOLS_REPOSITORY__PROTOCOLS:
-				return protocols != null && !protocols.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //ProtocolsRepositoryImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/RandomVariableImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/RandomVariableImpl.java
deleted file mode 100644
index 433480d1..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/RandomVariableImpl.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-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 tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.DNIUnit;
-import tools.descartes.dni.dnimm3.Function;
-import tools.descartes.dni.dnimm3.RandomVariable;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Random Variable</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.RandomVariableImpl#getUnit <em>Unit</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.RandomVariableImpl#getCdf <em>Cdf</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class RandomVariableImpl extends MinimalEObjectImpl.Container implements RandomVariable {
-	/**
-	 * The cached value of the '{@link #getUnit() <em>Unit</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUnit()
-	 * @generated
-	 * @ordered
-	 */
-	protected DNIUnit unit;
-
-	/**
-	 * The cached value of the '{@link #getCdf() <em>Cdf</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCdf()
-	 * @generated
-	 * @ordered
-	 */
-	protected Function cdf;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected RandomVariableImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.RANDOM_VARIABLE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DNIUnit getUnit() {
-		return unit;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetUnit(DNIUnit newUnit, NotificationChain msgs) {
-		DNIUnit oldUnit = unit;
-		unit = newUnit;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.RANDOM_VARIABLE__UNIT, oldUnit, newUnit);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setUnit(DNIUnit newUnit) {
-		if (newUnit != unit) {
-			NotificationChain msgs = null;
-			if (unit != null)
-				msgs = ((InternalEObject)unit).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.RANDOM_VARIABLE__UNIT, null, msgs);
-			if (newUnit != null)
-				msgs = ((InternalEObject)newUnit).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.RANDOM_VARIABLE__UNIT, null, msgs);
-			msgs = basicSetUnit(newUnit, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.RANDOM_VARIABLE__UNIT, newUnit, newUnit));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Function getCdf() {
-		return cdf;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetCdf(Function newCdf, NotificationChain msgs) {
-		Function oldCdf = cdf;
-		cdf = newCdf;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.RANDOM_VARIABLE__CDF, oldCdf, newCdf);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setCdf(Function newCdf) {
-		if (newCdf != cdf) {
-			NotificationChain msgs = null;
-			if (cdf != null)
-				msgs = ((InternalEObject)cdf).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.RANDOM_VARIABLE__CDF, null, msgs);
-			if (newCdf != null)
-				msgs = ((InternalEObject)newCdf).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.RANDOM_VARIABLE__CDF, null, msgs);
-			msgs = basicSetCdf(newCdf, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.RANDOM_VARIABLE__CDF, newCdf, newCdf));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.RANDOM_VARIABLE__UNIT:
-				return basicSetUnit(null, msgs);
-			case DNIPackage.RANDOM_VARIABLE__CDF:
-				return basicSetCdf(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.RANDOM_VARIABLE__UNIT:
-				return getUnit();
-			case DNIPackage.RANDOM_VARIABLE__CDF:
-				return getCdf();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.RANDOM_VARIABLE__UNIT:
-				setUnit((DNIUnit)newValue);
-				return;
-			case DNIPackage.RANDOM_VARIABLE__CDF:
-				setCdf((Function)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.RANDOM_VARIABLE__UNIT:
-				setUnit((DNIUnit)null);
-				return;
-			case DNIPackage.RANDOM_VARIABLE__CDF:
-				setCdf((Function)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.RANDOM_VARIABLE__UNIT:
-				return unit != null;
-			case DNIPackage.RANDOM_VARIABLE__CDF:
-				return cdf != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //RandomVariableImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/RouteImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/RouteImpl.java
deleted file mode 100644
index 56ef7694..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/RouteImpl.java
+++ /dev/null
@@ -1,453 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Hop;
-import tools.descartes.dni.dnimm3.NamedElement;
-import tools.descartes.dni.dnimm3.NetworkInterface;
-import tools.descartes.dni.dnimm3.Route;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Route</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.RouteImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.RouteImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.RouteImpl#getHops <em>Hops</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.RouteImpl#getStart <em>Start</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.RouteImpl#getEnd <em>End</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class RouteImpl extends IdentifierImpl implements Route {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The cached value of the '{@link #getHops() <em>Hops</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getHops()
-	 * @generated
-	 * @ordered
-	 */
-	protected Hop hops;
-
-	/**
-	 * The cached value of the '{@link #getStart() <em>Start</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getStart()
-	 * @generated
-	 * @ordered
-	 */
-	protected NetworkInterface start;
-
-	/**
-	 * The cached value of the '{@link #getEnd() <em>End</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEnd()
-	 * @generated
-	 * @ordered
-	 */
-	protected NetworkInterface end;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected RouteImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.ROUTE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.ROUTE__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIPackage.ROUTE__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Hop getHops() {
-		return hops;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetHops(Hop newHops, NotificationChain msgs) {
-		Hop oldHops = hops;
-		hops = newHops;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.ROUTE__HOPS, oldHops, newHops);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setHops(Hop newHops) {
-		if (newHops != hops) {
-			NotificationChain msgs = null;
-			if (hops != null)
-				msgs = ((InternalEObject)hops).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.ROUTE__HOPS, null, msgs);
-			if (newHops != null)
-				msgs = ((InternalEObject)newHops).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.ROUTE__HOPS, null, msgs);
-			msgs = basicSetHops(newHops, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.ROUTE__HOPS, newHops, newHops));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterface getStart() {
-		if (start != null && start.eIsProxy()) {
-			InternalEObject oldStart = (InternalEObject)start;
-			start = (NetworkInterface)eResolveProxy(oldStart);
-			if (start != oldStart) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.ROUTE__START, oldStart, start));
-			}
-		}
-		return start;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterface basicGetStart() {
-		return start;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setStart(NetworkInterface newStart) {
-		NetworkInterface oldStart = start;
-		start = newStart;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.ROUTE__START, oldStart, start));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterface getEnd() {
-		if (end != null && end.eIsProxy()) {
-			InternalEObject oldEnd = (InternalEObject)end;
-			end = (NetworkInterface)eResolveProxy(oldEnd);
-			if (end != oldEnd) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.ROUTE__END, oldEnd, end));
-			}
-		}
-		return end;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterface basicGetEnd() {
-		return end;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEnd(NetworkInterface newEnd) {
-		NetworkInterface oldEnd = end;
-		end = newEnd;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.ROUTE__END, oldEnd, end));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.ROUTE__HOPS:
-				return basicSetHops(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.ROUTE__NAME:
-				return getName();
-			case DNIPackage.ROUTE__DESCRIPTION:
-				return getDescription();
-			case DNIPackage.ROUTE__HOPS:
-				return getHops();
-			case DNIPackage.ROUTE__START:
-				if (resolve) return getStart();
-				return basicGetStart();
-			case DNIPackage.ROUTE__END:
-				if (resolve) return getEnd();
-				return basicGetEnd();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.ROUTE__NAME:
-				setName((String)newValue);
-				return;
-			case DNIPackage.ROUTE__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIPackage.ROUTE__HOPS:
-				setHops((Hop)newValue);
-				return;
-			case DNIPackage.ROUTE__START:
-				setStart((NetworkInterface)newValue);
-				return;
-			case DNIPackage.ROUTE__END:
-				setEnd((NetworkInterface)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.ROUTE__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIPackage.ROUTE__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIPackage.ROUTE__HOPS:
-				setHops((Hop)null);
-				return;
-			case DNIPackage.ROUTE__START:
-				setStart((NetworkInterface)null);
-				return;
-			case DNIPackage.ROUTE__END:
-				setEnd((NetworkInterface)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.ROUTE__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIPackage.ROUTE__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIPackage.ROUTE__HOPS:
-				return hops != null;
-			case DNIPackage.ROUTE__START:
-				return start != null;
-			case DNIPackage.ROUTE__END:
-				return end != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.ROUTE__NAME: return DNIPackage.NAMED_ELEMENT__NAME;
-				case DNIPackage.ROUTE__DESCRIPTION: return DNIPackage.NAMED_ELEMENT__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.NAMED_ELEMENT__NAME: return DNIPackage.ROUTE__NAME;
-				case DNIPackage.NAMED_ELEMENT__DESCRIPTION: return DNIPackage.ROUTE__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(')');
-		return result.toString();
-	}
-
-} //RouteImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/RoutesRepositoryImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/RoutesRepositoryImpl.java
deleted file mode 100644
index 6b68a11c..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/RoutesRepositoryImpl.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Direction;
-import tools.descartes.dni.dnimm3.FlowRoute;
-import tools.descartes.dni.dnimm3.Route;
-import tools.descartes.dni.dnimm3.RoutesRepository;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Routes Repository</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.RoutesRepositoryImpl#getRoutes <em>Routes</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.RoutesRepositoryImpl#getFlowRoutes <em>Flow Routes</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.RoutesRepositoryImpl#getDirections <em>Directions</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class RoutesRepositoryImpl extends MinimalEObjectImpl.Container implements RoutesRepository {
-	/**
-	 * The cached value of the '{@link #getRoutes() <em>Routes</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getRoutes()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Route> routes;
-
-	/**
-	 * The cached value of the '{@link #getFlowRoutes() <em>Flow Routes</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getFlowRoutes()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<FlowRoute> flowRoutes;
-
-	/**
-	 * The cached value of the '{@link #getDirections() <em>Directions</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDirections()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Direction> directions;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected RoutesRepositoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.ROUTES_REPOSITORY;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<Route> getRoutes() {
-		if (routes == null) {
-			routes = new EObjectContainmentEList<Route>(Route.class, this, DNIPackage.ROUTES_REPOSITORY__ROUTES);
-		}
-		return routes;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<FlowRoute> getFlowRoutes() {
-		if (flowRoutes == null) {
-			flowRoutes = new EObjectContainmentEList<FlowRoute>(FlowRoute.class, this, DNIPackage.ROUTES_REPOSITORY__FLOW_ROUTES);
-		}
-		return flowRoutes;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<Direction> getDirections() {
-		if (directions == null) {
-			directions = new EObjectContainmentEList<Direction>(Direction.class, this, DNIPackage.ROUTES_REPOSITORY__DIRECTIONS);
-		}
-		return directions;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.ROUTES_REPOSITORY__ROUTES:
-				return ((InternalEList<?>)getRoutes()).basicRemove(otherEnd, msgs);
-			case DNIPackage.ROUTES_REPOSITORY__FLOW_ROUTES:
-				return ((InternalEList<?>)getFlowRoutes()).basicRemove(otherEnd, msgs);
-			case DNIPackage.ROUTES_REPOSITORY__DIRECTIONS:
-				return ((InternalEList<?>)getDirections()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.ROUTES_REPOSITORY__ROUTES:
-				return getRoutes();
-			case DNIPackage.ROUTES_REPOSITORY__FLOW_ROUTES:
-				return getFlowRoutes();
-			case DNIPackage.ROUTES_REPOSITORY__DIRECTIONS:
-				return getDirections();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.ROUTES_REPOSITORY__ROUTES:
-				getRoutes().clear();
-				getRoutes().addAll((Collection<? extends Route>)newValue);
-				return;
-			case DNIPackage.ROUTES_REPOSITORY__FLOW_ROUTES:
-				getFlowRoutes().clear();
-				getFlowRoutes().addAll((Collection<? extends FlowRoute>)newValue);
-				return;
-			case DNIPackage.ROUTES_REPOSITORY__DIRECTIONS:
-				getDirections().clear();
-				getDirections().addAll((Collection<? extends Direction>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.ROUTES_REPOSITORY__ROUTES:
-				getRoutes().clear();
-				return;
-			case DNIPackage.ROUTES_REPOSITORY__FLOW_ROUTES:
-				getFlowRoutes().clear();
-				return;
-			case DNIPackage.ROUTES_REPOSITORY__DIRECTIONS:
-				getDirections().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.ROUTES_REPOSITORY__ROUTES:
-				return routes != null && !routes.isEmpty();
-			case DNIPackage.ROUTES_REPOSITORY__FLOW_ROUTES:
-				return flowRoutes != null && !flowRoutes.isEmpty();
-			case DNIPackage.ROUTES_REPOSITORY__DIRECTIONS:
-				return directions != null && !directions.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //RoutesRepositoryImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SDNImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SDNImpl.java
deleted file mode 100644
index 0a974040..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SDNImpl.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.EObjectWithInverseResolvingEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.CommunicatingApplication;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.PerformanceSdnNode;
-import tools.descartes.dni.dnimm3.SDN;
-import tools.descartes.dni.dnimm3.SdnController;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>SDN</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SDNImpl#getPerformance <em>Performance</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SDNImpl#getController <em>Controller</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SDNImpl#getOpenFlowEndPoint <em>Open Flow End Point</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class SDNImpl extends MinimalEObjectImpl.Container implements SDN {
-	/**
-	 * The cached value of the '{@link #getPerformance() <em>Performance</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPerformance()
-	 * @generated
-	 * @ordered
-	 */
-	protected PerformanceSdnNode performance;
-
-	/**
-	 * The cached value of the '{@link #getController() <em>Controller</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getController()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<SdnController> controller;
-
-	/**
-	 * The cached value of the '{@link #getOpenFlowEndPoint() <em>Open Flow End Point</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getOpenFlowEndPoint()
-	 * @generated
-	 * @ordered
-	 */
-	protected CommunicatingApplication openFlowEndPoint;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected SDNImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.SDN;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PerformanceSdnNode getPerformance() {
-		return performance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetPerformance(PerformanceSdnNode newPerformance, NotificationChain msgs) {
-		PerformanceSdnNode oldPerformance = performance;
-		performance = newPerformance;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.SDN__PERFORMANCE, oldPerformance, newPerformance);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPerformance(PerformanceSdnNode newPerformance) {
-		if (newPerformance != performance) {
-			NotificationChain msgs = null;
-			if (performance != null)
-				msgs = ((InternalEObject)performance).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.SDN__PERFORMANCE, null, msgs);
-			if (newPerformance != null)
-				msgs = ((InternalEObject)newPerformance).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.SDN__PERFORMANCE, null, msgs);
-			msgs = basicSetPerformance(newPerformance, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.SDN__PERFORMANCE, newPerformance, newPerformance));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<SdnController> getController() {
-		if (controller == null) {
-			controller = new EObjectWithInverseResolvingEList.ManyInverse<SdnController>(SdnController.class, this, DNIPackage.SDN__CONTROLLER, DNIPackage.SDN_CONTROLLER__NODES);
-		}
-		return controller;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public CommunicatingApplication getOpenFlowEndPoint() {
-		if (openFlowEndPoint != null && openFlowEndPoint.eIsProxy()) {
-			InternalEObject oldOpenFlowEndPoint = (InternalEObject)openFlowEndPoint;
-			openFlowEndPoint = (CommunicatingApplication)eResolveProxy(oldOpenFlowEndPoint);
-			if (openFlowEndPoint != oldOpenFlowEndPoint) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.SDN__OPEN_FLOW_END_POINT, oldOpenFlowEndPoint, openFlowEndPoint));
-			}
-		}
-		return openFlowEndPoint;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public CommunicatingApplication basicGetOpenFlowEndPoint() {
-		return openFlowEndPoint;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setOpenFlowEndPoint(CommunicatingApplication newOpenFlowEndPoint) {
-		CommunicatingApplication oldOpenFlowEndPoint = openFlowEndPoint;
-		openFlowEndPoint = newOpenFlowEndPoint;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.SDN__OPEN_FLOW_END_POINT, oldOpenFlowEndPoint, openFlowEndPoint));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.SDN__CONTROLLER:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getController()).basicAdd(otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.SDN__PERFORMANCE:
-				return basicSetPerformance(null, msgs);
-			case DNIPackage.SDN__CONTROLLER:
-				return ((InternalEList<?>)getController()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.SDN__PERFORMANCE:
-				return getPerformance();
-			case DNIPackage.SDN__CONTROLLER:
-				return getController();
-			case DNIPackage.SDN__OPEN_FLOW_END_POINT:
-				if (resolve) return getOpenFlowEndPoint();
-				return basicGetOpenFlowEndPoint();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.SDN__PERFORMANCE:
-				setPerformance((PerformanceSdnNode)newValue);
-				return;
-			case DNIPackage.SDN__CONTROLLER:
-				getController().clear();
-				getController().addAll((Collection<? extends SdnController>)newValue);
-				return;
-			case DNIPackage.SDN__OPEN_FLOW_END_POINT:
-				setOpenFlowEndPoint((CommunicatingApplication)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.SDN__PERFORMANCE:
-				setPerformance((PerformanceSdnNode)null);
-				return;
-			case DNIPackage.SDN__CONTROLLER:
-				getController().clear();
-				return;
-			case DNIPackage.SDN__OPEN_FLOW_END_POINT:
-				setOpenFlowEndPoint((CommunicatingApplication)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.SDN__PERFORMANCE:
-				return performance != null;
-			case DNIPackage.SDN__CONTROLLER:
-				return controller != null && !controller.isEmpty();
-			case DNIPackage.SDN__OPEN_FLOW_END_POINT:
-				return openFlowEndPoint != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //SDNImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SdnControlFlowImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SdnControlFlowImpl.java
deleted file mode 100644
index 04c6b59b..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SdnControlFlowImpl.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-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 tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Flow;
-import tools.descartes.dni.dnimm3.SdnControlFlow;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Sdn Control Flow</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SdnControlFlowImpl#getParentFlow <em>Parent Flow</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class SdnControlFlowImpl extends FlowImpl implements SdnControlFlow {
-	/**
-	 * The cached value of the '{@link #getParentFlow() <em>Parent Flow</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getParentFlow()
-	 * @generated
-	 * @ordered
-	 */
-	protected Flow parentFlow;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected SdnControlFlowImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.SDN_CONTROL_FLOW;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Flow getParentFlow() {
-		if (parentFlow != null && parentFlow.eIsProxy()) {
-			InternalEObject oldParentFlow = (InternalEObject)parentFlow;
-			parentFlow = (Flow)eResolveProxy(oldParentFlow);
-			if (parentFlow != oldParentFlow) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.SDN_CONTROL_FLOW__PARENT_FLOW, oldParentFlow, parentFlow));
-			}
-		}
-		return parentFlow;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Flow basicGetParentFlow() {
-		return parentFlow;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setParentFlow(Flow newParentFlow) {
-		Flow oldParentFlow = parentFlow;
-		parentFlow = newParentFlow;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.SDN_CONTROL_FLOW__PARENT_FLOW, oldParentFlow, parentFlow));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.SDN_CONTROL_FLOW__PARENT_FLOW:
-				if (resolve) return getParentFlow();
-				return basicGetParentFlow();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.SDN_CONTROL_FLOW__PARENT_FLOW:
-				setParentFlow((Flow)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.SDN_CONTROL_FLOW__PARENT_FLOW:
-				setParentFlow((Flow)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.SDN_CONTROL_FLOW__PARENT_FLOW:
-				return parentFlow != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //SdnControlFlowImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SdnControllerApplicationImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SdnControllerApplicationImpl.java
deleted file mode 100644
index bfb3b92f..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SdnControllerApplicationImpl.java
+++ /dev/null
@@ -1,341 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Dependency;
-import tools.descartes.dni.dnimm3.SdnController;
-import tools.descartes.dni.dnimm3.SdnControllerApplication;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Sdn Controller Application</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SdnControllerApplicationImpl#getBelongsTo <em>Belongs To</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SdnControllerApplicationImpl#isIsDefault <em>Is Default</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SdnControllerApplicationImpl#getResponseDelay <em>Response Delay</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class SdnControllerApplicationImpl extends CommunicatingApplicationImpl implements SdnControllerApplication {
-	/**
-	 * The default value of the '{@link #isIsDefault() <em>Is Default</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isIsDefault()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final boolean IS_DEFAULT_EDEFAULT = false;
-
-	/**
-	 * The cached value of the '{@link #isIsDefault() <em>Is Default</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isIsDefault()
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean isDefault = IS_DEFAULT_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getResponseDelay() <em>Response Delay</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getResponseDelay()
-	 * @generated
-	 * @ordered
-	 */
-	protected Dependency responseDelay;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected SdnControllerApplicationImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.SDN_CONTROLLER_APPLICATION;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SdnController getBelongsTo() {
-		if (eContainerFeatureID() != DNIPackage.SDN_CONTROLLER_APPLICATION__BELONGS_TO) return null;
-		return (SdnController)eContainer();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SdnController basicGetBelongsTo() {
-		if (eContainerFeatureID() != DNIPackage.SDN_CONTROLLER_APPLICATION__BELONGS_TO) return null;
-		return (SdnController)eInternalContainer();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetBelongsTo(SdnController newBelongsTo, NotificationChain msgs) {
-		msgs = eBasicSetContainer((InternalEObject)newBelongsTo, DNIPackage.SDN_CONTROLLER_APPLICATION__BELONGS_TO, msgs);
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBelongsTo(SdnController newBelongsTo) {
-		if (newBelongsTo != eInternalContainer() || (eContainerFeatureID() != DNIPackage.SDN_CONTROLLER_APPLICATION__BELONGS_TO && newBelongsTo != null)) {
-			if (EcoreUtil.isAncestor(this, newBelongsTo))
-				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
-			NotificationChain msgs = null;
-			if (eInternalContainer() != null)
-				msgs = eBasicRemoveFromContainer(msgs);
-			if (newBelongsTo != null)
-				msgs = ((InternalEObject)newBelongsTo).eInverseAdd(this, DNIPackage.SDN_CONTROLLER__APPLICATIONS, SdnController.class, msgs);
-			msgs = basicSetBelongsTo(newBelongsTo, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.SDN_CONTROLLER_APPLICATION__BELONGS_TO, newBelongsTo, newBelongsTo));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isIsDefault() {
-		return isDefault;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setIsDefault(boolean newIsDefault) {
-		boolean oldIsDefault = isDefault;
-		isDefault = newIsDefault;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.SDN_CONTROLLER_APPLICATION__IS_DEFAULT, oldIsDefault, isDefault));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Dependency getResponseDelay() {
-		return responseDelay;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetResponseDelay(Dependency newResponseDelay, NotificationChain msgs) {
-		Dependency oldResponseDelay = responseDelay;
-		responseDelay = newResponseDelay;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.SDN_CONTROLLER_APPLICATION__RESPONSE_DELAY, oldResponseDelay, newResponseDelay);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setResponseDelay(Dependency newResponseDelay) {
-		if (newResponseDelay != responseDelay) {
-			NotificationChain msgs = null;
-			if (responseDelay != null)
-				msgs = ((InternalEObject)responseDelay).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.SDN_CONTROLLER_APPLICATION__RESPONSE_DELAY, null, msgs);
-			if (newResponseDelay != null)
-				msgs = ((InternalEObject)newResponseDelay).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.SDN_CONTROLLER_APPLICATION__RESPONSE_DELAY, null, msgs);
-			msgs = basicSetResponseDelay(newResponseDelay, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.SDN_CONTROLLER_APPLICATION__RESPONSE_DELAY, newResponseDelay, newResponseDelay));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.SDN_CONTROLLER_APPLICATION__BELONGS_TO:
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetBelongsTo((SdnController)otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.SDN_CONTROLLER_APPLICATION__BELONGS_TO:
-				return basicSetBelongsTo(null, msgs);
-			case DNIPackage.SDN_CONTROLLER_APPLICATION__RESPONSE_DELAY:
-				return basicSetResponseDelay(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
-		switch (eContainerFeatureID()) {
-			case DNIPackage.SDN_CONTROLLER_APPLICATION__BELONGS_TO:
-				return eInternalContainer().eInverseRemove(this, DNIPackage.SDN_CONTROLLER__APPLICATIONS, SdnController.class, msgs);
-		}
-		return super.eBasicRemoveFromContainerFeature(msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.SDN_CONTROLLER_APPLICATION__BELONGS_TO:
-				if (resolve) return getBelongsTo();
-				return basicGetBelongsTo();
-			case DNIPackage.SDN_CONTROLLER_APPLICATION__IS_DEFAULT:
-				return isIsDefault();
-			case DNIPackage.SDN_CONTROLLER_APPLICATION__RESPONSE_DELAY:
-				return getResponseDelay();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.SDN_CONTROLLER_APPLICATION__BELONGS_TO:
-				setBelongsTo((SdnController)newValue);
-				return;
-			case DNIPackage.SDN_CONTROLLER_APPLICATION__IS_DEFAULT:
-				setIsDefault((Boolean)newValue);
-				return;
-			case DNIPackage.SDN_CONTROLLER_APPLICATION__RESPONSE_DELAY:
-				setResponseDelay((Dependency)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.SDN_CONTROLLER_APPLICATION__BELONGS_TO:
-				setBelongsTo((SdnController)null);
-				return;
-			case DNIPackage.SDN_CONTROLLER_APPLICATION__IS_DEFAULT:
-				setIsDefault(IS_DEFAULT_EDEFAULT);
-				return;
-			case DNIPackage.SDN_CONTROLLER_APPLICATION__RESPONSE_DELAY:
-				setResponseDelay((Dependency)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.SDN_CONTROLLER_APPLICATION__BELONGS_TO:
-				return basicGetBelongsTo() != null;
-			case DNIPackage.SDN_CONTROLLER_APPLICATION__IS_DEFAULT:
-				return isDefault != IS_DEFAULT_EDEFAULT;
-			case DNIPackage.SDN_CONTROLLER_APPLICATION__RESPONSE_DELAY:
-				return responseDelay != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (isDefault: ");
-		result.append(isDefault);
-		result.append(')');
-		return result.toString();
-	}
-
-} //SdnControllerApplicationImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SdnControllerImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SdnControllerImpl.java
deleted file mode 100644
index a4fcf4c0..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SdnControllerImpl.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.util.EObjectContainmentWithInverseEList;
-import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.SDN;
-import tools.descartes.dni.dnimm3.SdnController;
-import tools.descartes.dni.dnimm3.SdnControllerApplication;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Sdn Controller</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SdnControllerImpl#getApplications <em>Applications</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SdnControllerImpl#getNodes <em>Nodes</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class SdnControllerImpl extends CommunicatingApplicationImpl implements SdnController {
-	/**
-	 * The cached value of the '{@link #getApplications() <em>Applications</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getApplications()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<SdnControllerApplication> applications;
-
-	/**
-	 * The cached value of the '{@link #getNodes() <em>Nodes</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getNodes()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<SDN> nodes;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected SdnControllerImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.SDN_CONTROLLER;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<SdnControllerApplication> getApplications() {
-		if (applications == null) {
-			applications = new EObjectContainmentWithInverseEList<SdnControllerApplication>(SdnControllerApplication.class, this, DNIPackage.SDN_CONTROLLER__APPLICATIONS, DNIPackage.SDN_CONTROLLER_APPLICATION__BELONGS_TO);
-		}
-		return applications;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<SDN> getNodes() {
-		if (nodes == null) {
-			nodes = new EObjectWithInverseResolvingEList.ManyInverse<SDN>(SDN.class, this, DNIPackage.SDN_CONTROLLER__NODES, DNIPackage.SDN__CONTROLLER);
-		}
-		return nodes;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.SDN_CONTROLLER__APPLICATIONS:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getApplications()).basicAdd(otherEnd, msgs);
-			case DNIPackage.SDN_CONTROLLER__NODES:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getNodes()).basicAdd(otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.SDN_CONTROLLER__APPLICATIONS:
-				return ((InternalEList<?>)getApplications()).basicRemove(otherEnd, msgs);
-			case DNIPackage.SDN_CONTROLLER__NODES:
-				return ((InternalEList<?>)getNodes()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.SDN_CONTROLLER__APPLICATIONS:
-				return getApplications();
-			case DNIPackage.SDN_CONTROLLER__NODES:
-				return getNodes();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.SDN_CONTROLLER__APPLICATIONS:
-				getApplications().clear();
-				getApplications().addAll((Collection<? extends SdnControllerApplication>)newValue);
-				return;
-			case DNIPackage.SDN_CONTROLLER__NODES:
-				getNodes().clear();
-				getNodes().addAll((Collection<? extends SDN>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.SDN_CONTROLLER__APPLICATIONS:
-				getApplications().clear();
-				return;
-			case DNIPackage.SDN_CONTROLLER__NODES:
-				getNodes().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.SDN_CONTROLLER__APPLICATIONS:
-				return applications != null && !applications.isEmpty();
-			case DNIPackage.SDN_CONTROLLER__NODES:
-				return nodes != null && !nodes.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //SdnControllerImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SdnFlowRuleImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SdnFlowRuleImpl.java
deleted file mode 100644
index a60bacdb..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SdnFlowRuleImpl.java
+++ /dev/null
@@ -1,455 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-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 tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Flow;
-import tools.descartes.dni.dnimm3.Node;
-import tools.descartes.dni.dnimm3.SdnControllerApplication;
-import tools.descartes.dni.dnimm3.SdnFlowRule;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Sdn Flow Rule</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SdnFlowRuleImpl#getSdnSwitch <em>Sdn Switch</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SdnFlowRuleImpl#getFlow <em>Flow</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SdnFlowRuleImpl#getProbabilityHardware <em>Probability Hardware</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SdnFlowRuleImpl#getProbabilitySoftware <em>Probability Software</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SdnFlowRuleImpl#getProbabilityController <em>Probability Controller</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SdnFlowRuleImpl#getControllerApplication <em>Controller Application</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class SdnFlowRuleImpl extends MinimalEObjectImpl.Container implements SdnFlowRule {
-	/**
-	 * The cached value of the '{@link #getSdnSwitch() <em>Sdn Switch</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSdnSwitch()
-	 * @generated
-	 * @ordered
-	 */
-	protected Node sdnSwitch;
-
-	/**
-	 * The cached value of the '{@link #getFlow() <em>Flow</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getFlow()
-	 * @generated
-	 * @ordered
-	 */
-	protected Flow flow;
-
-	/**
-	 * The default value of the '{@link #getProbabilityHardware() <em>Probability Hardware</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProbabilityHardware()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final float PROBABILITY_HARDWARE_EDEFAULT = 1.0F;
-
-	/**
-	 * The cached value of the '{@link #getProbabilityHardware() <em>Probability Hardware</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProbabilityHardware()
-	 * @generated
-	 * @ordered
-	 */
-	protected float probabilityHardware = PROBABILITY_HARDWARE_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getProbabilitySoftware() <em>Probability Software</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProbabilitySoftware()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final float PROBABILITY_SOFTWARE_EDEFAULT = 0.0F;
-
-	/**
-	 * The cached value of the '{@link #getProbabilitySoftware() <em>Probability Software</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProbabilitySoftware()
-	 * @generated
-	 * @ordered
-	 */
-	protected float probabilitySoftware = PROBABILITY_SOFTWARE_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getProbabilityController() <em>Probability Controller</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProbabilityController()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final float PROBABILITY_CONTROLLER_EDEFAULT = 0.0F;
-
-	/**
-	 * The cached value of the '{@link #getProbabilityController() <em>Probability Controller</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProbabilityController()
-	 * @generated
-	 * @ordered
-	 */
-	protected float probabilityController = PROBABILITY_CONTROLLER_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getControllerApplication() <em>Controller Application</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getControllerApplication()
-	 * @generated
-	 * @ordered
-	 */
-	protected SdnControllerApplication controllerApplication;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected SdnFlowRuleImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.SDN_FLOW_RULE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Node getSdnSwitch() {
-		if (sdnSwitch != null && sdnSwitch.eIsProxy()) {
-			InternalEObject oldSdnSwitch = (InternalEObject)sdnSwitch;
-			sdnSwitch = (Node)eResolveProxy(oldSdnSwitch);
-			if (sdnSwitch != oldSdnSwitch) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.SDN_FLOW_RULE__SDN_SWITCH, oldSdnSwitch, sdnSwitch));
-			}
-		}
-		return sdnSwitch;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Node basicGetSdnSwitch() {
-		return sdnSwitch;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setSdnSwitch(Node newSdnSwitch) {
-		Node oldSdnSwitch = sdnSwitch;
-		sdnSwitch = newSdnSwitch;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.SDN_FLOW_RULE__SDN_SWITCH, oldSdnSwitch, sdnSwitch));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Flow getFlow() {
-		if (flow != null && flow.eIsProxy()) {
-			InternalEObject oldFlow = (InternalEObject)flow;
-			flow = (Flow)eResolveProxy(oldFlow);
-			if (flow != oldFlow) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.SDN_FLOW_RULE__FLOW, oldFlow, flow));
-			}
-		}
-		return flow;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Flow basicGetFlow() {
-		return flow;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setFlow(Flow newFlow) {
-		Flow oldFlow = flow;
-		flow = newFlow;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.SDN_FLOW_RULE__FLOW, oldFlow, flow));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public float getProbabilityHardware() {
-		return probabilityHardware;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setProbabilityHardware(float newProbabilityHardware) {
-		float oldProbabilityHardware = probabilityHardware;
-		probabilityHardware = newProbabilityHardware;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.SDN_FLOW_RULE__PROBABILITY_HARDWARE, oldProbabilityHardware, probabilityHardware));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public float getProbabilitySoftware() {
-		return probabilitySoftware;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setProbabilitySoftware(float newProbabilitySoftware) {
-		float oldProbabilitySoftware = probabilitySoftware;
-		probabilitySoftware = newProbabilitySoftware;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.SDN_FLOW_RULE__PROBABILITY_SOFTWARE, oldProbabilitySoftware, probabilitySoftware));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public float getProbabilityController() {
-		return probabilityController;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setProbabilityController(float newProbabilityController) {
-		float oldProbabilityController = probabilityController;
-		probabilityController = newProbabilityController;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.SDN_FLOW_RULE__PROBABILITY_CONTROLLER, oldProbabilityController, probabilityController));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SdnControllerApplication getControllerApplication() {
-		if (controllerApplication != null && controllerApplication.eIsProxy()) {
-			InternalEObject oldControllerApplication = (InternalEObject)controllerApplication;
-			controllerApplication = (SdnControllerApplication)eResolveProxy(oldControllerApplication);
-			if (controllerApplication != oldControllerApplication) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.SDN_FLOW_RULE__CONTROLLER_APPLICATION, oldControllerApplication, controllerApplication));
-			}
-		}
-		return controllerApplication;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SdnControllerApplication basicGetControllerApplication() {
-		return controllerApplication;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setControllerApplication(SdnControllerApplication newControllerApplication) {
-		SdnControllerApplication oldControllerApplication = controllerApplication;
-		controllerApplication = newControllerApplication;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.SDN_FLOW_RULE__CONTROLLER_APPLICATION, oldControllerApplication, controllerApplication));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.SDN_FLOW_RULE__SDN_SWITCH:
-				if (resolve) return getSdnSwitch();
-				return basicGetSdnSwitch();
-			case DNIPackage.SDN_FLOW_RULE__FLOW:
-				if (resolve) return getFlow();
-				return basicGetFlow();
-			case DNIPackage.SDN_FLOW_RULE__PROBABILITY_HARDWARE:
-				return getProbabilityHardware();
-			case DNIPackage.SDN_FLOW_RULE__PROBABILITY_SOFTWARE:
-				return getProbabilitySoftware();
-			case DNIPackage.SDN_FLOW_RULE__PROBABILITY_CONTROLLER:
-				return getProbabilityController();
-			case DNIPackage.SDN_FLOW_RULE__CONTROLLER_APPLICATION:
-				if (resolve) return getControllerApplication();
-				return basicGetControllerApplication();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.SDN_FLOW_RULE__SDN_SWITCH:
-				setSdnSwitch((Node)newValue);
-				return;
-			case DNIPackage.SDN_FLOW_RULE__FLOW:
-				setFlow((Flow)newValue);
-				return;
-			case DNIPackage.SDN_FLOW_RULE__PROBABILITY_HARDWARE:
-				setProbabilityHardware((Float)newValue);
-				return;
-			case DNIPackage.SDN_FLOW_RULE__PROBABILITY_SOFTWARE:
-				setProbabilitySoftware((Float)newValue);
-				return;
-			case DNIPackage.SDN_FLOW_RULE__PROBABILITY_CONTROLLER:
-				setProbabilityController((Float)newValue);
-				return;
-			case DNIPackage.SDN_FLOW_RULE__CONTROLLER_APPLICATION:
-				setControllerApplication((SdnControllerApplication)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.SDN_FLOW_RULE__SDN_SWITCH:
-				setSdnSwitch((Node)null);
-				return;
-			case DNIPackage.SDN_FLOW_RULE__FLOW:
-				setFlow((Flow)null);
-				return;
-			case DNIPackage.SDN_FLOW_RULE__PROBABILITY_HARDWARE:
-				setProbabilityHardware(PROBABILITY_HARDWARE_EDEFAULT);
-				return;
-			case DNIPackage.SDN_FLOW_RULE__PROBABILITY_SOFTWARE:
-				setProbabilitySoftware(PROBABILITY_SOFTWARE_EDEFAULT);
-				return;
-			case DNIPackage.SDN_FLOW_RULE__PROBABILITY_CONTROLLER:
-				setProbabilityController(PROBABILITY_CONTROLLER_EDEFAULT);
-				return;
-			case DNIPackage.SDN_FLOW_RULE__CONTROLLER_APPLICATION:
-				setControllerApplication((SdnControllerApplication)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.SDN_FLOW_RULE__SDN_SWITCH:
-				return sdnSwitch != null;
-			case DNIPackage.SDN_FLOW_RULE__FLOW:
-				return flow != null;
-			case DNIPackage.SDN_FLOW_RULE__PROBABILITY_HARDWARE:
-				return probabilityHardware != PROBABILITY_HARDWARE_EDEFAULT;
-			case DNIPackage.SDN_FLOW_RULE__PROBABILITY_SOFTWARE:
-				return probabilitySoftware != PROBABILITY_SOFTWARE_EDEFAULT;
-			case DNIPackage.SDN_FLOW_RULE__PROBABILITY_CONTROLLER:
-				return probabilityController != PROBABILITY_CONTROLLER_EDEFAULT;
-			case DNIPackage.SDN_FLOW_RULE__CONTROLLER_APPLICATION:
-				return controllerApplication != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (probabilityHardware: ");
-		result.append(probabilityHardware);
-		result.append(", probabilitySoftware: ");
-		result.append(probabilitySoftware);
-		result.append(", probabilityController: ");
-		result.append(probabilityController);
-		result.append(')');
-		return result.toString();
-	}
-
-} //SdnFlowRuleImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SdnNodePerformanceTypeImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SdnNodePerformanceTypeImpl.java
deleted file mode 100644
index 0d7df565..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SdnNodePerformanceTypeImpl.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.EObjectWithInverseResolvingEList;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Identifier;
-import tools.descartes.dni.dnimm3.PerformanceSdnNode;
-import tools.descartes.dni.dnimm3.SdnNodePerformanceType;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Sdn Node Performance Type</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SdnNodePerformanceTypeImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SdnNodePerformanceTypeImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SdnNodePerformanceTypeImpl#getUid <em>Uid</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SdnNodePerformanceTypeImpl#getUid_generated <em>Uid generated</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SdnNodePerformanceTypeImpl#getEntities <em>Entities</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class SdnNodePerformanceTypeImpl extends MinimalEObjectImpl.Container implements SdnNodePerformanceType {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The default value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getUid() <em>Uid</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid()
-	 * @generated
-	 * @ordered
-	 */
-	protected String uid = UID_EDEFAULT;
-
-	/**
-	 * This is true if the Uid attribute has been set.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean uidESet;
-
-	/**
-	 * The default value of the '{@link #getUid_generated() <em>Uid generated</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUid_generated()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String UID_GENERATED_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getEntities() <em>Entities</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEntities()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<PerformanceSdnNode> entities;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected SdnNodePerformanceTypeImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.SDN_NODE_PERFORMANCE_TYPE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.SDN_NODE_PERFORMANCE_TYPE__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIPackage.SDN_NODE_PERFORMANCE_TYPE__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid() {
-		return uid;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setUid(String newUid) {
-		String oldUid = uid;
-		uid = newUid;
-		boolean oldUidESet = uidESet;
-		uidESet = true;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.SDN_NODE_PERFORMANCE_TYPE__UID, oldUid, uid, !oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void unsetUid() {
-		String oldUid = uid;
-		boolean oldUidESet = uidESet;
-		uid = UID_EDEFAULT;
-		uidESet = false;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.UNSET, DNIPackage.SDN_NODE_PERFORMANCE_TYPE__UID, oldUid, UID_EDEFAULT, oldUidESet));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isSetUid() {
-		return uidESet;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getUid_generated() {
-		if (((this.getUid() == null) || this.getUid().isEmpty())) {
-			this.setUid(EcoreUtil.generateUUID().toString());
-		}
-		return this.getUid();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<PerformanceSdnNode> getEntities() {
-		if (entities == null) {
-			entities = new EObjectWithInverseResolvingEList<PerformanceSdnNode>(PerformanceSdnNode.class, this, DNIPackage.SDN_NODE_PERFORMANCE_TYPE__ENTITIES, DNIPackage.PERFORMANCE_SDN_NODE__ENTITY_TYPE);
-		}
-		return entities;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__ENTITIES:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getEntities()).basicAdd(otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__ENTITIES:
-				return ((InternalEList<?>)getEntities()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__NAME:
-				return getName();
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__DESCRIPTION:
-				return getDescription();
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__UID:
-				return getUid();
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__UID_GENERATED:
-				return getUid_generated();
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__ENTITIES:
-				return getEntities();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__NAME:
-				setName((String)newValue);
-				return;
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__UID:
-				setUid((String)newValue);
-				return;
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__ENTITIES:
-				getEntities().clear();
-				getEntities().addAll((Collection<? extends PerformanceSdnNode>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__UID:
-				unsetUid();
-				return;
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__ENTITIES:
-				getEntities().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__UID:
-				return isSetUid();
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__UID_GENERATED:
-				return UID_GENERATED_EDEFAULT == null ? getUid_generated() != null : !UID_GENERATED_EDEFAULT.equals(getUid_generated());
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__ENTITIES:
-				return entities != null && !entities.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == Identifier.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__UID: return DNIPackage.IDENTIFIER__UID;
-				case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__UID_GENERATED: return DNIPackage.IDENTIFIER__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == Identifier.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.IDENTIFIER__UID: return DNIPackage.SDN_NODE_PERFORMANCE_TYPE__UID;
-				case DNIPackage.IDENTIFIER__UID_GENERATED: return DNIPackage.SDN_NODE_PERFORMANCE_TYPE__UID_GENERATED;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(", uid: ");
-		if (uidESet) result.append(uid); else result.append("<unset>");
-		result.append(')');
-		return result.toString();
-	}
-
-} //SdnNodePerformanceTypeImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SequenceActionImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SequenceActionImpl.java
deleted file mode 100644
index 05d12dbe..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SequenceActionImpl.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.AbstractAction;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.SequenceAction;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Sequence Action</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SequenceActionImpl#getIntern <em>Intern</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class SequenceActionImpl extends MinimalEObjectImpl.Container implements SequenceAction {
-	/**
-	 * The cached value of the '{@link #getIntern() <em>Intern</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getIntern()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AbstractAction> intern;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected SequenceActionImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.SEQUENCE_ACTION;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<AbstractAction> getIntern() {
-		if (intern == null) {
-			intern = new EObjectContainmentEList<AbstractAction>(AbstractAction.class, this, DNIPackage.SEQUENCE_ACTION__INTERN);
-		}
-		return intern;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.SEQUENCE_ACTION__INTERN:
-				return ((InternalEList<?>)getIntern()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.SEQUENCE_ACTION__INTERN:
-				return getIntern();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.SEQUENCE_ACTION__INTERN:
-				getIntern().clear();
-				getIntern().addAll((Collection<? extends AbstractAction>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.SEQUENCE_ACTION__INTERN:
-				getIntern().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.SEQUENCE_ACTION__INTERN:
-				return intern != null && !intern.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //SequenceActionImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SpeedUnitImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SpeedUnitImpl.java
deleted file mode 100644
index 2994f220..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/SpeedUnitImpl.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Speed;
-import tools.descartes.dni.dnimm3.SpeedUnit;
-import tools.descartes.dni.dnimm3.UnitPrefix;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Speed Unit</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SpeedUnitImpl#getUnit <em>Unit</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.SpeedUnitImpl#getPrefix <em>Prefix</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class SpeedUnitImpl extends MinimalEObjectImpl.Container implements SpeedUnit {
-	/**
-	 * The default value of the '{@link #getUnit() <em>Unit</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUnit()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Speed UNIT_EDEFAULT = Speed.BYTES_PER_SEC;
-
-	/**
-	 * The cached value of the '{@link #getUnit() <em>Unit</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUnit()
-	 * @generated
-	 * @ordered
-	 */
-	protected Speed unit = UNIT_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getPrefix() <em>Prefix</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPrefix()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final UnitPrefix PREFIX_EDEFAULT = UnitPrefix.NONE;
-
-	/**
-	 * The cached value of the '{@link #getPrefix() <em>Prefix</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPrefix()
-	 * @generated
-	 * @ordered
-	 */
-	protected UnitPrefix prefix = PREFIX_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected SpeedUnitImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.SPEED_UNIT;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Speed getUnit() {
-		return unit;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setUnit(Speed newUnit) {
-		Speed oldUnit = unit;
-		unit = newUnit == null ? UNIT_EDEFAULT : newUnit;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.SPEED_UNIT__UNIT, oldUnit, unit));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public UnitPrefix getPrefix() {
-		return prefix;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPrefix(UnitPrefix newPrefix) {
-		UnitPrefix oldPrefix = prefix;
-		prefix = newPrefix == null ? PREFIX_EDEFAULT : newPrefix;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.SPEED_UNIT__PREFIX, oldPrefix, prefix));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.SPEED_UNIT__UNIT:
-				return getUnit();
-			case DNIPackage.SPEED_UNIT__PREFIX:
-				return getPrefix();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.SPEED_UNIT__UNIT:
-				setUnit((Speed)newValue);
-				return;
-			case DNIPackage.SPEED_UNIT__PREFIX:
-				setPrefix((UnitPrefix)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.SPEED_UNIT__UNIT:
-				setUnit(UNIT_EDEFAULT);
-				return;
-			case DNIPackage.SPEED_UNIT__PREFIX:
-				setPrefix(PREFIX_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.SPEED_UNIT__UNIT:
-				return unit != UNIT_EDEFAULT;
-			case DNIPackage.SPEED_UNIT__PREFIX:
-				return prefix != PREFIX_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (unit: ");
-		result.append(unit);
-		result.append(", prefix: ");
-		result.append(prefix);
-		result.append(')');
-		return result.toString();
-	}
-
-} //SpeedUnitImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/StartActionImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/StartActionImpl.java
deleted file mode 100644
index e3e6ce12..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/StartActionImpl.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.StartAction;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Start Action</b></em>'.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class StartActionImpl extends MinimalEObjectImpl.Container implements StartAction {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected StartActionImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.START_ACTION;
-	}
-
-} //StartActionImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/StopActionImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/StopActionImpl.java
deleted file mode 100644
index f9c8b6d5..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/StopActionImpl.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.StopAction;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Stop Action</b></em>'.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class StopActionImpl extends MinimalEObjectImpl.Container implements StopAction {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected StopActionImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.STOP_ACTION;
-	}
-
-} //StopActionImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/TimeUnitImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/TimeUnitImpl.java
deleted file mode 100644
index 55ea0a4f..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/TimeUnitImpl.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Time;
-import tools.descartes.dni.dnimm3.TimeUnit;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Time Unit</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.TimeUnitImpl#getUnit <em>Unit</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class TimeUnitImpl extends MinimalEObjectImpl.Container implements TimeUnit {
-	/**
-	 * The default value of the '{@link #getUnit() <em>Unit</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUnit()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Time UNIT_EDEFAULT = Time.SECONDS;
-
-	/**
-	 * The cached value of the '{@link #getUnit() <em>Unit</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getUnit()
-	 * @generated
-	 * @ordered
-	 */
-	protected Time unit = UNIT_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TimeUnitImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.TIME_UNIT;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Time getUnit() {
-		return unit;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setUnit(Time newUnit) {
-		Time oldUnit = unit;
-		unit = newUnit == null ? UNIT_EDEFAULT : newUnit;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.TIME_UNIT__UNIT, oldUnit, unit));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.TIME_UNIT__UNIT:
-				return getUnit();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.TIME_UNIT__UNIT:
-				setUnit((Time)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.TIME_UNIT__UNIT:
-				setUnit(UNIT_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.TIME_UNIT__UNIT:
-				return unit != UNIT_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (unit: ");
-		result.append(unit);
-		result.append(')');
-		return result.toString();
-	}
-
-} //TimeUnitImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/TrafficSourceImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/TrafficSourceImpl.java
deleted file mode 100644
index b3941d22..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/TrafficSourceImpl.java
+++ /dev/null
@@ -1,458 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import java.util.Collection;
-
-import java.util.List;
-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.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3.AddressableEntity;
-import tools.descartes.dni.dnimm3.CommunicatingApplication;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.EntityAddress;
-import tools.descartes.dni.dnimm3.NamedElement;
-import tools.descartes.dni.dnimm3.TrafficSource;
-import tools.descartes.dni.dnimm3.Workload;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Traffic Source</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.TrafficSourceImpl#getName <em>Name</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.TrafficSourceImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.TrafficSourceImpl#getAddresses <em>Addresses</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.TrafficSourceImpl#getWorkload <em>Workload</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.TrafficSourceImpl#getSoftwareComponent <em>Software Component</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class TrafficSourceImpl extends IdentifierImpl implements TrafficSource {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * 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;
-
-	/**
-	 * The cached value of the '{@link #getAddresses() <em>Addresses</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAddresses()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<EntityAddress> addresses;
-
-	/**
-	 * The cached value of the '{@link #getWorkload() <em>Workload</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getWorkload()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Workload> workload;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TrafficSourceImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.TRAFFIC_SOURCE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.TRAFFIC_SOURCE__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- 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, DNIPackage.TRAFFIC_SOURCE__DESCRIPTION, oldDescription, description));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<EntityAddress> getAddresses() {
-		if (addresses == null) {
-			addresses = new EObjectContainmentEList<EntityAddress>(EntityAddress.class, this, DNIPackage.TRAFFIC_SOURCE__ADDRESSES);
-		}
-		return addresses;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List<Workload> getWorkload() {
-		if (workload == null) {
-			workload = new EObjectContainmentEList<Workload>(Workload.class, this, DNIPackage.TRAFFIC_SOURCE__WORKLOAD);
-		}
-		return workload;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public CommunicatingApplication getSoftwareComponent() {
-		if (eContainerFeatureID() != DNIPackage.TRAFFIC_SOURCE__SOFTWARE_COMPONENT) return null;
-		return (CommunicatingApplication)eContainer();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public CommunicatingApplication basicGetSoftwareComponent() {
-		if (eContainerFeatureID() != DNIPackage.TRAFFIC_SOURCE__SOFTWARE_COMPONENT) return null;
-		return (CommunicatingApplication)eInternalContainer();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetSoftwareComponent(CommunicatingApplication newSoftwareComponent, NotificationChain msgs) {
-		msgs = eBasicSetContainer((InternalEObject)newSoftwareComponent, DNIPackage.TRAFFIC_SOURCE__SOFTWARE_COMPONENT, msgs);
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setSoftwareComponent(CommunicatingApplication newSoftwareComponent) {
-		if (newSoftwareComponent != eInternalContainer() || (eContainerFeatureID() != DNIPackage.TRAFFIC_SOURCE__SOFTWARE_COMPONENT && newSoftwareComponent != null)) {
-			if (EcoreUtil.isAncestor(this, newSoftwareComponent))
-				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
-			NotificationChain msgs = null;
-			if (eInternalContainer() != null)
-				msgs = eBasicRemoveFromContainer(msgs);
-			if (newSoftwareComponent != null)
-				msgs = ((InternalEObject)newSoftwareComponent).eInverseAdd(this, DNIPackage.COMMUNICATING_APPLICATION__TRAFFIC_SOURCES, CommunicatingApplication.class, msgs);
-			msgs = basicSetSoftwareComponent(newSoftwareComponent, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.TRAFFIC_SOURCE__SOFTWARE_COMPONENT, newSoftwareComponent, newSoftwareComponent));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.TRAFFIC_SOURCE__SOFTWARE_COMPONENT:
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetSoftwareComponent((CommunicatingApplication)otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.TRAFFIC_SOURCE__ADDRESSES:
-				return ((InternalEList<?>)getAddresses()).basicRemove(otherEnd, msgs);
-			case DNIPackage.TRAFFIC_SOURCE__WORKLOAD:
-				return ((InternalEList<?>)getWorkload()).basicRemove(otherEnd, msgs);
-			case DNIPackage.TRAFFIC_SOURCE__SOFTWARE_COMPONENT:
-				return basicSetSoftwareComponent(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
-		switch (eContainerFeatureID()) {
-			case DNIPackage.TRAFFIC_SOURCE__SOFTWARE_COMPONENT:
-				return eInternalContainer().eInverseRemove(this, DNIPackage.COMMUNICATING_APPLICATION__TRAFFIC_SOURCES, CommunicatingApplication.class, msgs);
-		}
-		return super.eBasicRemoveFromContainerFeature(msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.TRAFFIC_SOURCE__NAME:
-				return getName();
-			case DNIPackage.TRAFFIC_SOURCE__DESCRIPTION:
-				return getDescription();
-			case DNIPackage.TRAFFIC_SOURCE__ADDRESSES:
-				return getAddresses();
-			case DNIPackage.TRAFFIC_SOURCE__WORKLOAD:
-				return getWorkload();
-			case DNIPackage.TRAFFIC_SOURCE__SOFTWARE_COMPONENT:
-				if (resolve) return getSoftwareComponent();
-				return basicGetSoftwareComponent();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.TRAFFIC_SOURCE__NAME:
-				setName((String)newValue);
-				return;
-			case DNIPackage.TRAFFIC_SOURCE__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case DNIPackage.TRAFFIC_SOURCE__ADDRESSES:
-				getAddresses().clear();
-				getAddresses().addAll((Collection<? extends EntityAddress>)newValue);
-				return;
-			case DNIPackage.TRAFFIC_SOURCE__WORKLOAD:
-				getWorkload().clear();
-				getWorkload().addAll((Collection<? extends Workload>)newValue);
-				return;
-			case DNIPackage.TRAFFIC_SOURCE__SOFTWARE_COMPONENT:
-				setSoftwareComponent((CommunicatingApplication)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.TRAFFIC_SOURCE__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case DNIPackage.TRAFFIC_SOURCE__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case DNIPackage.TRAFFIC_SOURCE__ADDRESSES:
-				getAddresses().clear();
-				return;
-			case DNIPackage.TRAFFIC_SOURCE__WORKLOAD:
-				getWorkload().clear();
-				return;
-			case DNIPackage.TRAFFIC_SOURCE__SOFTWARE_COMPONENT:
-				setSoftwareComponent((CommunicatingApplication)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.TRAFFIC_SOURCE__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case DNIPackage.TRAFFIC_SOURCE__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case DNIPackage.TRAFFIC_SOURCE__ADDRESSES:
-				return addresses != null && !addresses.isEmpty();
-			case DNIPackage.TRAFFIC_SOURCE__WORKLOAD:
-				return workload != null && !workload.isEmpty();
-			case DNIPackage.TRAFFIC_SOURCE__SOFTWARE_COMPONENT:
-				return basicGetSoftwareComponent() != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.TRAFFIC_SOURCE__NAME: return DNIPackage.NAMED_ELEMENT__NAME;
-				case DNIPackage.TRAFFIC_SOURCE__DESCRIPTION: return DNIPackage.NAMED_ELEMENT__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		if (baseClass == AddressableEntity.class) {
-			switch (derivedFeatureID) {
-				case DNIPackage.TRAFFIC_SOURCE__ADDRESSES: return DNIPackage.ADDRESSABLE_ENTITY__ADDRESSES;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == NamedElement.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.NAMED_ELEMENT__NAME: return DNIPackage.TRAFFIC_SOURCE__NAME;
-				case DNIPackage.NAMED_ELEMENT__DESCRIPTION: return DNIPackage.TRAFFIC_SOURCE__DESCRIPTION;
-				default: return -1;
-			}
-		}
-		if (baseClass == AddressableEntity.class) {
-			switch (baseFeatureID) {
-				case DNIPackage.ADDRESSABLE_ENTITY__ADDRESSES: return DNIPackage.TRAFFIC_SOURCE__ADDRESSES;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", description: ");
-		result.append(description);
-		result.append(')');
-		return result.toString();
-	}
-
-} //TrafficSourceImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/TransmitActionImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/TransmitActionImpl.java
deleted file mode 100644
index 13334195..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/TransmitActionImpl.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-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 tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.FlowTraffic;
-import tools.descartes.dni.dnimm3.TransmitAction;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Transmit Action</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.TransmitActionImpl#getFlowTraffic <em>Flow Traffic</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class TransmitActionImpl extends MinimalEObjectImpl.Container implements TransmitAction {
-	/**
-	 * The cached value of the '{@link #getFlowTraffic() <em>Flow Traffic</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getFlowTraffic()
-	 * @generated
-	 * @ordered
-	 */
-	protected FlowTraffic flowTraffic;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TransmitActionImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.TRANSMIT_ACTION;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public FlowTraffic getFlowTraffic() {
-		if (flowTraffic != null && flowTraffic.eIsProxy()) {
-			InternalEObject oldFlowTraffic = (InternalEObject)flowTraffic;
-			flowTraffic = (FlowTraffic)eResolveProxy(oldFlowTraffic);
-			if (flowTraffic != oldFlowTraffic) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIPackage.TRANSMIT_ACTION__FLOW_TRAFFIC, oldFlowTraffic, flowTraffic));
-			}
-		}
-		return flowTraffic;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public FlowTraffic basicGetFlowTraffic() {
-		return flowTraffic;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setFlowTraffic(FlowTraffic newFlowTraffic) {
-		FlowTraffic oldFlowTraffic = flowTraffic;
-		flowTraffic = newFlowTraffic;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.TRANSMIT_ACTION__FLOW_TRAFFIC, oldFlowTraffic, flowTraffic));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.TRANSMIT_ACTION__FLOW_TRAFFIC:
-				if (resolve) return getFlowTraffic();
-				return basicGetFlowTraffic();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.TRANSMIT_ACTION__FLOW_TRAFFIC:
-				setFlowTraffic((FlowTraffic)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.TRANSMIT_ACTION__FLOW_TRAFFIC:
-				setFlowTraffic((FlowTraffic)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.TRANSMIT_ACTION__FLOW_TRAFFIC:
-				return flowTraffic != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //TransmitActionImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/WaitActionImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/WaitActionImpl.java
deleted file mode 100644
index 410f6552..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/WaitActionImpl.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-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 tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Dependency;
-import tools.descartes.dni.dnimm3.WaitAction;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Wait Action</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3.impl.WaitActionImpl#getWaitTime <em>Wait Time</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class WaitActionImpl extends MinimalEObjectImpl.Container implements WaitAction {
-	/**
-	 * The cached value of the '{@link #getWaitTime() <em>Wait Time</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getWaitTime()
-	 * @generated
-	 * @ordered
-	 */
-	protected Dependency waitTime;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected WaitActionImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIPackage.Literals.WAIT_ACTION;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Dependency getWaitTime() {
-		return waitTime;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetWaitTime(Dependency newWaitTime, NotificationChain msgs) {
-		Dependency oldWaitTime = waitTime;
-		waitTime = newWaitTime;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIPackage.WAIT_ACTION__WAIT_TIME, oldWaitTime, newWaitTime);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setWaitTime(Dependency newWaitTime) {
-		if (newWaitTime != waitTime) {
-			NotificationChain msgs = null;
-			if (waitTime != null)
-				msgs = ((InternalEObject)waitTime).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIPackage.WAIT_ACTION__WAIT_TIME, null, msgs);
-			if (newWaitTime != null)
-				msgs = ((InternalEObject)newWaitTime).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIPackage.WAIT_ACTION__WAIT_TIME, null, msgs);
-			msgs = basicSetWaitTime(newWaitTime, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIPackage.WAIT_ACTION__WAIT_TIME, newWaitTime, newWaitTime));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIPackage.WAIT_ACTION__WAIT_TIME:
-				return basicSetWaitTime(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIPackage.WAIT_ACTION__WAIT_TIME:
-				return getWaitTime();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIPackage.WAIT_ACTION__WAIT_TIME:
-				setWaitTime((Dependency)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIPackage.WAIT_ACTION__WAIT_TIME:
-				setWaitTime((Dependency)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIPackage.WAIT_ACTION__WAIT_TIME:
-				return waitTime != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //WaitActionImpl
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/presentation/DNIActionBarContributor.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/presentation/DNIActionBarContributor.java
deleted file mode 100644
index c29fde52..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/presentation/DNIActionBarContributor.java
+++ /dev/null
@@ -1,425 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.presentation;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.emf.common.ui.viewer.IViewerProvider;
-
-import org.eclipse.emf.edit.domain.EditingDomain;
-import org.eclipse.emf.edit.domain.IEditingDomainProvider;
-
-import org.eclipse.emf.edit.ui.action.ControlAction;
-import org.eclipse.emf.edit.ui.action.CreateChildAction;
-import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
-import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
-import org.eclipse.emf.edit.ui.action.LoadResourceAction;
-import org.eclipse.emf.edit.ui.action.ValidateAction;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IContributionManager;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.action.SubContributionItem;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PartInitException;
-
-import tools.descartes.dni.dnimm3.provider.Dnimm3EditPlugin;
-
-/**
- * This is the action bar contributor for the DNI model editor.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class DNIActionBarContributor
-	extends EditingDomainActionBarContributor
-	implements ISelectionChangedListener {
-	/**
-	 * This keeps track of the active editor.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IEditorPart activeEditorPart;
-
-	/**
-	 * This keeps track of the current selection provider.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ISelectionProvider selectionProvider;
-
-	/**
-	 * This action opens the Properties view.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IAction showPropertiesViewAction =
-		new Action(Dnimm3EditPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) {
-			@Override
-			public void run() {
-				try {
-					getPage().showView("org.eclipse.ui.views.PropertySheet");
-				}
-				catch (PartInitException exception) {
-					Dnimm3EditPlugin.INSTANCE.log(exception);
-				}
-			}
-		};
-
-	/**
-	 * This action refreshes the viewer of the current editor if the editor
-	 * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IAction refreshViewerAction =
-		new Action(Dnimm3EditPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) {
-			@Override
-			public boolean isEnabled() {
-				return activeEditorPart instanceof IViewerProvider;
-			}
-
-			@Override
-			public void run() {
-				if (activeEditorPart instanceof IViewerProvider) {
-					Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
-					if (viewer != null) {
-						viewer.refresh();
-					}
-				}
-			}
-		};
-
-	/**
-	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
-	 * generated for the current selection by the item provider.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection<IAction> createChildActions;
-
-	/**
-	 * This is the menu manager into which menu contribution items should be added for CreateChild actions.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IMenuManager createChildMenuManager;
-
-	/**
-	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
-	 * generated for the current selection by the item provider.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection<IAction> createSiblingActions;
-
-	/**
-	 * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IMenuManager createSiblingMenuManager;
-
-	/**
-	 * This creates an instance of the contributor.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DNIActionBarContributor() {
-		super(ADDITIONS_LAST_STYLE);
-		loadResourceAction = new LoadResourceAction();
-		validateAction = new ValidateAction();
-		controlAction = new ControlAction();
-	}
-
-	/**
-	 * This adds Separators for editor additions to the tool bar.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void contributeToToolBar(IToolBarManager toolBarManager) {
-		toolBarManager.add(new Separator("dni-settings"));
-		toolBarManager.add(new Separator("dni-additions"));
-	}
-
-	/**
-	 * This adds to the menu bar a menu and some separators for editor additions,
-	 * as well as the sub-menus for object creation items.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void contributeToMenu(IMenuManager menuManager) {
-		super.contributeToMenu(menuManager);
-
-		IMenuManager submenuManager = new MenuManager(Dnimm3EditPlugin.INSTANCE.getString("_UI_DNIEditor_menu"), "tools.descartes.dni.dnimm3MenuID");
-		menuManager.insertAfter("additions", submenuManager);
-		submenuManager.add(new Separator("settings"));
-		submenuManager.add(new Separator("actions"));
-		submenuManager.add(new Separator("additions"));
-		submenuManager.add(new Separator("additions-end"));
-
-		// Prepare for CreateChild item addition or removal.
-		//
-		createChildMenuManager = new MenuManager(Dnimm3EditPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
-		submenuManager.insertBefore("additions", createChildMenuManager);
-
-		// Prepare for CreateSibling item addition or removal.
-		//
-		createSiblingMenuManager = new MenuManager(Dnimm3EditPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
-		submenuManager.insertBefore("additions", createSiblingMenuManager);
-
-		// Force an update because Eclipse hides empty menus now.
-		//
-		submenuManager.addMenuListener
-			(new IMenuListener() {
-				 public void menuAboutToShow(IMenuManager menuManager) {
-					 menuManager.updateAll(true);
-				 }
-			 });
-
-		addGlobalActions(submenuManager);
-	}
-
-	/**
-	 * When the active editor changes, this remembers the change and registers with it as a selection provider.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void setActiveEditor(IEditorPart part) {
-		super.setActiveEditor(part);
-		activeEditorPart = part;
-
-		// Switch to the new selection provider.
-		//
-		if (selectionProvider != null) {
-			selectionProvider.removeSelectionChangedListener(this);
-		}
-		if (part == null) {
-			selectionProvider = null;
-		}
-		else {
-			selectionProvider = part.getSite().getSelectionProvider();
-			selectionProvider.addSelectionChangedListener(this);
-
-			// Fake a selection changed event to update the menus.
-			//
-			if (selectionProvider.getSelection() != null) {
-				selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
-			}
-		}
-	}
-
-	/**
-	 * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
-	 * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
-	 * that can be added to the selected object and updating the menus accordingly.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void selectionChanged(SelectionChangedEvent event) {
-		// Remove any menu items for old selection.
-		//
-		if (createChildMenuManager != null) {
-			depopulateManager(createChildMenuManager, createChildActions);
-		}
-		if (createSiblingMenuManager != null) {
-			depopulateManager(createSiblingMenuManager, createSiblingActions);
-		}
-
-		// Query the new selection for appropriate new child/sibling descriptors
-		//
-		Collection<?> newChildDescriptors = null;
-		Collection<?> newSiblingDescriptors = null;
-
-		ISelection selection = event.getSelection();
-		if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) {
-			Object object = ((IStructuredSelection)selection).getFirstElement();
-
-			EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
-
-			newChildDescriptors = domain.getNewChildDescriptors(object, null);
-			newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
-		}
-
-		// Generate actions for selection; populate and redraw the menus.
-		//
-		createChildActions = generateCreateChildActions(newChildDescriptors, selection);
-		createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
-
-		if (createChildMenuManager != null) {
-			populateManager(createChildMenuManager, createChildActions, null);
-			createChildMenuManager.update(true);
-		}
-		if (createSiblingMenuManager != null) {
-			populateManager(createSiblingMenuManager, createSiblingActions, null);
-			createSiblingMenuManager.update(true);
-		}
-	}
-
-	/**
-	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
-	 * and returns the collection of these actions.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) {
-		Collection<IAction> actions = new ArrayList<IAction>();
-		if (descriptors != null) {
-			for (Object descriptor : descriptors) {
-				actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
-			}
-		}
-		return actions;
-	}
-
-	/**
-	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
-	 * and returns the collection of these actions.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) {
-		Collection<IAction> actions = new ArrayList<IAction>();
-		if (descriptors != null) {
-			for (Object descriptor : descriptors) {
-				actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
-			}
-		}
-		return actions;
-	}
-
-	/**
-	 * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
-	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
-	 * by inserting them before the specified contribution item <code>contributionID</code>.
-	 * If <code>contributionID</code> is <code>null</code>, they are simply added.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID) {
-		if (actions != null) {
-			for (IAction action : actions) {
-				if (contributionID != null) {
-					manager.insertBefore(contributionID, action);
-				}
-				else {
-					manager.add(action);
-				}
-			}
-		}
-	}
-		
-	/**
-	 * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
-	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) {
-		if (actions != null) {
-			IContributionItem[] items = manager.getItems();
-			for (int i = 0; i < items.length; i++) {
-				// Look into SubContributionItems
-				//
-				IContributionItem contributionItem = items[i];
-				while (contributionItem instanceof SubContributionItem) {
-					contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
-				}
-
-				// Delete the ActionContributionItems with matching action.
-				//
-				if (contributionItem instanceof ActionContributionItem) {
-					IAction action = ((ActionContributionItem)contributionItem).getAction();
-					if (actions.contains(action)) {
-						manager.remove(contributionItem);
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * This populates the pop-up menu before it appears.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void menuAboutToShow(IMenuManager menuManager) {
-		super.menuAboutToShow(menuManager);
-		MenuManager submenuManager = null;
-
-		submenuManager = new MenuManager(Dnimm3EditPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
-		populateManager(submenuManager, createChildActions, null);
-		menuManager.insertBefore("edit", submenuManager);
-
-		submenuManager = new MenuManager(Dnimm3EditPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
-		populateManager(submenuManager, createSiblingActions, null);
-		menuManager.insertBefore("edit", submenuManager);
-	}
-
-	/**
-	 * This inserts global actions before the "additions-end" separator.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void addGlobalActions(IMenuManager menuManager) {
-		menuManager.insertAfter("additions-end", new Separator("ui-actions"));
-		menuManager.insertAfter("ui-actions", showPropertiesViewAction);
-
-		refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());		
-		menuManager.insertAfter("ui-actions", refreshViewerAction);
-
-		super.addGlobalActions(menuManager);
-	}
-
-	/**
-	 * This ensures that a delete action will clean up all references to deleted objects.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected boolean removeAllReferencesOnDelete() {
-		return true;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/presentation/DNIEditor.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/presentation/DNIEditor.java
deleted file mode 100644
index 0fb912ab..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/presentation/DNIEditor.java
+++ /dev/null
@@ -1,1822 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.presentation;
-
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.EventObject;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.ResourcesPlugin;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-
-import org.eclipse.jface.util.LocalSelectionTransfer;
-
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.swt.SWT;
-
-import org.eclipse.swt.custom.CTabFolder;
-
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.swt.dnd.Transfer;
-
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-
-import org.eclipse.swt.graphics.Point;
-
-import org.eclipse.swt.layout.FillLayout;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PartInitException;
-
-import org.eclipse.ui.dialogs.SaveAsDialog;
-
-import org.eclipse.ui.ide.IGotoMarker;
-
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.part.MultiPageEditorPart;
-
-import org.eclipse.ui.views.contentoutline.ContentOutline;
-import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.PropertySheet;
-import org.eclipse.ui.views.properties.PropertySheetPage;
-
-import org.eclipse.emf.common.command.BasicCommandStack;
-import org.eclipse.emf.common.command.Command;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.command.CommandStackListener;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.ui.MarkerHelper;
-import org.eclipse.emf.common.ui.ViewerPane;
-
-import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
-
-import org.eclipse.emf.common.ui.viewer.IViewerProvider;
-
-import org.eclipse.emf.common.util.BasicDiagnostic;
-import org.eclipse.emf.common.util.Diagnostic;
-import org.eclipse.emf.common.util.URI;
-
-
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-
-import org.eclipse.emf.ecore.util.EContentAdapter;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
-import org.eclipse.emf.edit.domain.EditingDomain;
-import org.eclipse.emf.edit.domain.IEditingDomainProvider;
-
-import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
-
-import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
-
-import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
-
-import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
-
-import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
-import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
-import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
-
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
-import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
-
-import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
-import org.eclipse.emf.edit.ui.util.EditUIUtil;
-
-import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
-
-import tools.descartes.dni.dnimm3.provider.DNIItemProviderAdapterFactory;
-
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-import tools.descartes.dni.dnimm3.provider.Dnimm3EditPlugin;
-
-
-/**
- * This is an example of a DNI model editor.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class DNIEditor
-	extends MultiPageEditorPart
-	implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker {
-	/**
-	 * This keeps track of the editing domain that is used to track all changes to the model.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdapterFactoryEditingDomain editingDomain;
-
-	/**
-	 * This is the one adapter factory used for providing views of the model.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ComposedAdapterFactory adapterFactory;
-
-	/**
-	 * This is the content outline page.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IContentOutlinePage contentOutlinePage;
-
-	/**
-	 * This is a kludge...
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IStatusLineManager contentOutlineStatusLineManager;
-
-	/**
-	 * This is the content outline page's viewer.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TreeViewer contentOutlineViewer;
-
-	/**
-	 * This is the property sheet page.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
-
-	/**
-	 * This is the viewer that shadows the selection in the content outline.
-	 * The parent relation must be correctly defined for this to work.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TreeViewer selectionViewer;
-
-	/**
-	 * This inverts the roll of parent and child in the content provider and show parents as a tree.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TreeViewer parentViewer;
-
-	/**
-	 * This shows how a tree view works.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TreeViewer treeViewer;
-
-	/**
-	 * This shows how a list view works.
-	 * A list viewer doesn't support icons.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ListViewer listViewer;
-
-	/**
-	 * This shows how a table view works.
-	 * A table can be used as a list with icons.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TableViewer tableViewer;
-
-	/**
-	 * This shows how a tree view with columns works.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TreeViewer treeViewerWithColumns;
-
-	/**
-	 * This keeps track of the active viewer pane, in the book.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ViewerPane currentViewerPane;
-
-	/**
-	 * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Viewer currentViewer;
-
-	/**
-	 * This listens to which ever viewer is active.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ISelectionChangedListener selectionChangedListener;
-
-	/**
-	 * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
-
-	/**
-	 * This keeps track of the selection of the editor as a whole.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ISelection editorSelection = StructuredSelection.EMPTY;
-
-	/**
-	 * The MarkerHelper is responsible for creating workspace resource markers presented
-	 * in Eclipse's Problems View.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected MarkerHelper markerHelper = new EditUIMarkerHelper();
-
-	/**
-	 * This listens for when the outline becomes active
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IPartListener partListener =
-		new IPartListener() {
-			public void partActivated(IWorkbenchPart p) {
-				if (p instanceof ContentOutline) {
-					if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) {
-						getActionBarContributor().setActiveEditor(DNIEditor.this);
-
-						setCurrentViewer(contentOutlineViewer);
-					}
-				}
-				else if (p instanceof PropertySheet) {
-					if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
-						getActionBarContributor().setActiveEditor(DNIEditor.this);
-						handleActivate();
-					}
-				}
-				else if (p == DNIEditor.this) {
-					handleActivate();
-				}
-			}
-			public void partBroughtToTop(IWorkbenchPart p) {
-				// Ignore.
-			}
-			public void partClosed(IWorkbenchPart p) {
-				// Ignore.
-			}
-			public void partDeactivated(IWorkbenchPart p) {
-				// Ignore.
-			}
-			public void partOpened(IWorkbenchPart p) {
-				// Ignore.
-			}
-		};
-
-	/**
-	 * Resources that have been removed since last activation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection<Resource> removedResources = new ArrayList<Resource>();
-
-	/**
-	 * Resources that have been changed since last activation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection<Resource> changedResources = new ArrayList<Resource>();
-
-	/**
-	 * Resources that have been saved.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection<Resource> savedResources = new ArrayList<Resource>();
-
-	/**
-	 * Map to store the diagnostic associated with a resource.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
-
-	/**
-	 * Controls whether the problem indication should be updated.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected boolean updateProblemIndication = true;
-
-	/**
-	 * Adapter used to update the problem indication when resources are demanded loaded.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EContentAdapter problemIndicationAdapter =
-		new EContentAdapter() {
-			protected boolean dispatching;
-
-			@Override
-			public void notifyChanged(Notification notification) {
-				if (notification.getNotifier() instanceof Resource) {
-					switch (notification.getFeatureID(Resource.class)) {
-						case Resource.RESOURCE__IS_LOADED:
-						case Resource.RESOURCE__ERRORS:
-						case Resource.RESOURCE__WARNINGS: {
-							Resource resource = (Resource)notification.getNotifier();
-							Diagnostic diagnostic = analyzeResourceProblems(resource, null);
-							if (diagnostic.getSeverity() != Diagnostic.OK) {
-								resourceToDiagnosticMap.put(resource, diagnostic);
-							}
-							else {
-								resourceToDiagnosticMap.remove(resource);
-							}
-							dispatchUpdateProblemIndication();
-							break;
-						}
-					}
-				}
-				else {
-					super.notifyChanged(notification);
-				}
-			}
-
-			protected void dispatchUpdateProblemIndication() {
-				if (updateProblemIndication && !dispatching) {
-					dispatching = true;
-					getSite().getShell().getDisplay().asyncExec
-						(new Runnable() {
-							 public void run() {
-								 dispatching = false;
-								 updateProblemIndication();
-							 }
-						 });
-				}
-			}
-
-			@Override
-			protected void setTarget(Resource target) {
-				basicSetTarget(target);
-			}
-
-			@Override
-			protected void unsetTarget(Resource target) {
-				basicUnsetTarget(target);
-				resourceToDiagnosticMap.remove(target);
-				dispatchUpdateProblemIndication();
-			}
-		};
-
-	/**
-	 * This listens for workspace changes.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IResourceChangeListener resourceChangeListener =
-		new IResourceChangeListener() {
-			public void resourceChanged(IResourceChangeEvent event) {
-				IResourceDelta delta = event.getDelta();
-				try {
-					class ResourceDeltaVisitor implements IResourceDeltaVisitor {
-						protected ResourceSet resourceSet = editingDomain.getResourceSet();
-						protected Collection<Resource> changedResources = new ArrayList<Resource>();
-						protected Collection<Resource> removedResources = new ArrayList<Resource>();
-
-						public boolean visit(IResourceDelta delta) {
-							if (delta.getResource().getType() == IResource.FILE) {
-								if (delta.getKind() == IResourceDelta.REMOVED ||
-								    delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) {
-									Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
-									if (resource != null) {
-										if (delta.getKind() == IResourceDelta.REMOVED) {
-											removedResources.add(resource);
-										}
-										else if (!savedResources.remove(resource)) {
-											changedResources.add(resource);
-										}
-									}
-								}
-								return false;
-							}
-
-							return true;
-						}
-
-						public Collection<Resource> getChangedResources() {
-							return changedResources;
-						}
-
-						public Collection<Resource> getRemovedResources() {
-							return removedResources;
-						}
-					}
-
-					final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
-					delta.accept(visitor);
-
-					if (!visitor.getRemovedResources().isEmpty()) {
-						getSite().getShell().getDisplay().asyncExec
-							(new Runnable() {
-								 public void run() {
-									 removedResources.addAll(visitor.getRemovedResources());
-									 if (!isDirty()) {
-										 getSite().getPage().closeEditor(DNIEditor.this, false);
-									 }
-								 }
-							 });
-					}
-
-					if (!visitor.getChangedResources().isEmpty()) {
-						getSite().getShell().getDisplay().asyncExec
-							(new Runnable() {
-								 public void run() {
-									 changedResources.addAll(visitor.getChangedResources());
-									 if (getSite().getPage().getActiveEditor() == DNIEditor.this) {
-										 handleActivate();
-									 }
-								 }
-							 });
-					}
-				}
-				catch (CoreException exception) {
-					Dnimm3EditPlugin.INSTANCE.log(exception);
-				}
-			}
-		};
-
-	/**
-	 * Handles activation of the editor or it's associated views.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void handleActivate() {
-		// Recompute the read only state.
-		//
-		if (editingDomain.getResourceToReadOnlyMap() != null) {
-		  editingDomain.getResourceToReadOnlyMap().clear();
-
-		  // Refresh any actions that may become enabled or disabled.
-		  //
-		  setSelection(getSelection());
-		}
-
-		if (!removedResources.isEmpty()) {
-			if (handleDirtyConflict()) {
-				getSite().getPage().closeEditor(DNIEditor.this, false);
-			}
-			else {
-				removedResources.clear();
-				changedResources.clear();
-				savedResources.clear();
-			}
-		}
-		else if (!changedResources.isEmpty()) {
-			changedResources.removeAll(savedResources);
-			handleChangedResources();
-			changedResources.clear();
-			savedResources.clear();
-		}
-	}
-
-	/**
-	 * Handles what to do with changed resources on activation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void handleChangedResources() {
-		if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) {
-			if (isDirty()) {
-				changedResources.addAll(editingDomain.getResourceSet().getResources());
-			}
-			editingDomain.getCommandStack().flush();
-
-			updateProblemIndication = false;
-			for (Resource resource : changedResources) {
-				if (resource.isLoaded()) {
-					resource.unload();
-					try {
-						resource.load(Collections.EMPTY_MAP);
-					}
-					catch (IOException exception) {
-						if (!resourceToDiagnosticMap.containsKey(resource)) {
-							resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
-						}
-					}
-				}
-			}
-
-			if (AdapterFactoryEditingDomain.isStale(editorSelection)) {
-				setSelection(StructuredSelection.EMPTY);
-			}
-
-			updateProblemIndication = true;
-			updateProblemIndication();
-		}
-	}
-
-	/**
-	 * Updates the problems indication with the information described in the specified diagnostic.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void updateProblemIndication() {
-		if (updateProblemIndication) {
-			BasicDiagnostic diagnostic =
-				new BasicDiagnostic
-					(Diagnostic.OK,
-					 "tools.descartes.dni.core",
-					 0,
-					 null,
-					 new Object [] { editingDomain.getResourceSet() });
-			for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) {
-				if (childDiagnostic.getSeverity() != Diagnostic.OK) {
-					diagnostic.add(childDiagnostic);
-				}
-			}
-
-			int lastEditorPage = getPageCount() - 1;
-			if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) {
-				((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
-				if (diagnostic.getSeverity() != Diagnostic.OK) {
-					setActivePage(lastEditorPage);
-				}
-			}
-			else if (diagnostic.getSeverity() != Diagnostic.OK) {
-				ProblemEditorPart problemEditorPart = new ProblemEditorPart();
-				problemEditorPart.setDiagnostic(diagnostic);
-				problemEditorPart.setMarkerHelper(markerHelper);
-				try {
-					addPage(++lastEditorPage, problemEditorPart, getEditorInput());
-					setPageText(lastEditorPage, problemEditorPart.getPartName());
-					setActivePage(lastEditorPage);
-					showTabs();
-				}
-				catch (PartInitException exception) {
-					Dnimm3EditPlugin.INSTANCE.log(exception);
-				}
-			}
-
-			if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
-				try {
-					markerHelper.updateMarkers(diagnostic);
-				}
-				catch (CoreException exception) {
-					Dnimm3EditPlugin.INSTANCE.log(exception);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Shows a dialog that asks if conflicting changes should be discarded.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected boolean handleDirtyConflict() {
-		return
-			MessageDialog.openQuestion
-				(getSite().getShell(),
-				 getString("_UI_FileConflict_label"),
-				 getString("_WARN_FileConflict"));
-	}
-
-	/**
-	 * This creates a model editor.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DNIEditor() {
-		super();
-		initializeEditingDomain();
-	}
-
-	/**
-	 * This sets up the editing domain for the model editor.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void initializeEditingDomain() {
-		// Create an adapter factory that yields item providers.
-		//
-		adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
-
-		adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
-		adapterFactory.addAdapterFactory(new DNIItemProviderAdapterFactory());
-		adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
-
-		// Create the command stack that will notify this editor as commands are executed.
-		//
-		BasicCommandStack commandStack = new BasicCommandStack();
-
-		// Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
-		//
-		commandStack.addCommandStackListener
-			(new CommandStackListener() {
-				 public void commandStackChanged(final EventObject event) {
-					 getContainer().getDisplay().asyncExec
-						 (new Runnable() {
-							  public void run() {
-								  firePropertyChange(IEditorPart.PROP_DIRTY);
-
-								  // Try to select the affected objects.
-								  //
-								  Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
-								  if (mostRecentCommand != null) {
-									  setSelectionToViewer(mostRecentCommand.getAffectedObjects());
-								  }
-								  for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
-									  PropertySheetPage propertySheetPage = i.next();
-									  if (propertySheetPage.getControl().isDisposed()) {
-										  i.remove();
-									  }
-									  else {
-										  propertySheetPage.refresh();
-									  }
-								  }
-							  }
-						  });
-				 }
-			 });
-
-		// Create the editing domain with a special command stack.
-		//
-		editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
-	}
-
-	/**
-	 * This is here for the listener to be able to call it.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-			@Override
-	protected void firePropertyChange(int action) {
-		super.firePropertyChange(action);
-	}
-
-	/**
-	 * This sets the selection into whichever viewer is active.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setSelectionToViewer(Collection<?> collection) {
-		final Collection<?> theSelection = collection;
-		// Make sure it's okay.
-		//
-		if (theSelection != null && !theSelection.isEmpty()) {
-			Runnable runnable =
-				new Runnable() {
-					public void run() {
-						// Try to select the items in the current content viewer of the editor.
-						//
-						if (currentViewer != null) {
-							currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
-						}
-					}
-				};
-			getSite().getShell().getDisplay().asyncExec(runnable);
-		}
-	}
-
-	/**
-	 * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
-	 * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
-	 * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EditingDomain getEditingDomain() {
-		return editingDomain;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider {
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) {
-			super(adapterFactory);
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		@Override
-		public Object [] getElements(Object object) {
-			Object parent = super.getParent(object);
-			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		@Override
-		public Object [] getChildren(Object object) {
-			Object parent = super.getParent(object);
-			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		@Override
-		public boolean hasChildren(Object object) {
-			Object parent = super.getParent(object);
-			return parent != null;
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		@Override
-		public Object getParent(Object object) {
-			return null;
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setCurrentViewerPane(ViewerPane viewerPane) {
-		if (currentViewerPane != viewerPane) {
-			if (currentViewerPane != null) {
-				currentViewerPane.showFocus(false);
-			}
-			currentViewerPane = viewerPane;
-		}
-		setCurrentViewer(currentViewerPane.getViewer());
-	}
-
-	/**
-	 * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
-	 * is the current one.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setCurrentViewer(Viewer viewer) {
-		// If it is changing...
-		//
-		if (currentViewer != viewer) {
-			if (selectionChangedListener == null) {
-				// Create the listener on demand.
-				//
-				selectionChangedListener =
-					new ISelectionChangedListener() {
-						// This just notifies those things that are affected by the section.
-						//
-						public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
-							setSelection(selectionChangedEvent.getSelection());
-						}
-					};
-			}
-
-			// Stop listening to the old one.
-			//
-			if (currentViewer != null) {
-				currentViewer.removeSelectionChangedListener(selectionChangedListener);
-			}
-
-			// Start listening to the new one.
-			//
-			if (viewer != null) {
-				viewer.addSelectionChangedListener(selectionChangedListener);
-			}
-
-			// Remember it.
-			//
-			currentViewer = viewer;
-
-			// Set the editors selection based on the current viewer's selection.
-			//
-			setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
-		}
-	}
-
-	/**
-	 * This returns the viewer as required by the {@link IViewerProvider} interface.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Viewer getViewer() {
-		return currentViewer;
-	}
-
-	/**
-	 * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void createContextMenuFor(StructuredViewer viewer) {
-		MenuManager contextMenu = new MenuManager("#PopUp");
-		contextMenu.add(new Separator("additions"));
-		contextMenu.setRemoveAllWhenShown(true);
-		contextMenu.addMenuListener(this);
-		Menu menu= contextMenu.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-		getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
-
-		int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
-		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
-		viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
-		viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
-	}
-
-	/**
-	 * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void createModel() {
-		URI resourceURI = EditUIUtil.getURI(getEditorInput(), editingDomain.getResourceSet().getURIConverter());
-		Exception exception = null;
-		Resource resource = null;
-		try {
-			// Load the resource through the editing domain.
-			//
-			resource = editingDomain.getResourceSet().getResource(resourceURI, true);
-		}
-		catch (Exception e) {
-			exception = e;
-			resource = editingDomain.getResourceSet().getResource(resourceURI, false);
-		}
-
-		Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
-		if (diagnostic.getSeverity() != Diagnostic.OK) {
-			resourceToDiagnosticMap.put(resource,  analyzeResourceProblems(resource, exception));
-		}
-		editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
-	}
-
-	/**
-	 * Returns a diagnostic describing the errors and warnings listed in the resource
-	 * and the specified exception (if any).
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
-		boolean hasErrors = !resource.getErrors().isEmpty();
-		if (hasErrors || !resource.getWarnings().isEmpty()) {
-			BasicDiagnostic basicDiagnostic =
-				new BasicDiagnostic
-					(hasErrors ? Diagnostic.ERROR : Diagnostic.WARNING,
-					 "tools.descartes.dni.core",
-					 0,
-					 getString("_UI_CreateModelError_message", resource.getURI()),
-					 new Object [] { exception == null ? (Object)resource : exception });
-			basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
-			return basicDiagnostic;
-		}
-		else if (exception != null) {
-			return
-				new BasicDiagnostic
-					(Diagnostic.ERROR,
-					 "tools.descartes.dni.core",
-					 0,
-					 getString("_UI_CreateModelError_message", resource.getURI()),
-					 new Object[] { exception });
-		}
-		else {
-			return Diagnostic.OK_INSTANCE;
-		}
-	}
-
-	/**
-	 * This is the method used by the framework to install your own controls.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void createPages() {
-		// Creates the model from the editor input
-		//
-		createModel();
-
-		// Only creates the other pages if there is something that can be edited
-		//
-		if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {
-			// Create a page for the selection tree view.
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), DNIEditor.this) {
-						@Override
-						public Viewer createViewer(Composite composite) {
-							Tree tree = new Tree(composite, SWT.MULTI);
-							TreeViewer newTreeViewer = new TreeViewer(tree);
-							return newTreeViewer;
-						}
-						@Override
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-
-				selectionViewer = (TreeViewer)viewerPane.getViewer();
-				selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-				selectionViewer.setUseHashlookup(true);
-
-				selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-				selectionViewer.setInput(editingDomain.getResourceSet());
-				selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
-				viewerPane.setTitle(editingDomain.getResourceSet());
-
-				new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
-
-				createContextMenuFor(selectionViewer);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_SelectionPage_label"));
-			}
-
-			// Create a page for the parent tree view.
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), DNIEditor.this) {
-						@Override
-						public Viewer createViewer(Composite composite) {
-							Tree tree = new Tree(composite, SWT.MULTI);
-							TreeViewer newTreeViewer = new TreeViewer(tree);
-							return newTreeViewer;
-						}
-						@Override
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-
-				parentViewer = (TreeViewer)viewerPane.getViewer();
-				parentViewer.setAutoExpandLevel(30);
-				parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
-				parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-
-				createContextMenuFor(parentViewer);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_ParentPage_label"));
-			}
-
-			// This is the page for the list viewer
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), DNIEditor.this) {
-						@Override
-						public Viewer createViewer(Composite composite) {
-							return new ListViewer(composite);
-						}
-						@Override
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-				listViewer = (ListViewer)viewerPane.getViewer();
-				listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-				listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-
-				createContextMenuFor(listViewer);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_ListPage_label"));
-			}
-
-			// This is the page for the tree viewer
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), DNIEditor.this) {
-						@Override
-						public Viewer createViewer(Composite composite) {
-							return new TreeViewer(composite);
-						}
-						@Override
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-				treeViewer = (TreeViewer)viewerPane.getViewer();
-				treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-				treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-
-				new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
-
-				createContextMenuFor(treeViewer);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_TreePage_label"));
-			}
-
-			// This is the page for the table viewer.
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), DNIEditor.this) {
-						@Override
-						public Viewer createViewer(Composite composite) {
-							return new TableViewer(composite);
-						}
-						@Override
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-				tableViewer = (TableViewer)viewerPane.getViewer();
-
-				Table table = tableViewer.getTable();
-				TableLayout layout = new TableLayout();
-				table.setLayout(layout);
-				table.setHeaderVisible(true);
-				table.setLinesVisible(true);
-
-				TableColumn objectColumn = new TableColumn(table, SWT.NONE);
-				layout.addColumnData(new ColumnWeightData(3, 100, true));
-				objectColumn.setText(getString("_UI_ObjectColumn_label"));
-				objectColumn.setResizable(true);
-
-				TableColumn selfColumn = new TableColumn(table, SWT.NONE);
-				layout.addColumnData(new ColumnWeightData(2, 100, true));
-				selfColumn.setText(getString("_UI_SelfColumn_label"));
-				selfColumn.setResizable(true);
-
-				tableViewer.setColumnProperties(new String [] {"a", "b"});
-				tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-				tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-
-				createContextMenuFor(tableViewer);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_TablePage_label"));
-			}
-
-			// This is the page for the table tree viewer.
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), DNIEditor.this) {
-						@Override
-						public Viewer createViewer(Composite composite) {
-							return new TreeViewer(composite);
-						}
-						@Override
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-
-				treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();
-
-				Tree tree = treeViewerWithColumns.getTree();
-				tree.setLayoutData(new FillLayout());
-				tree.setHeaderVisible(true);
-				tree.setLinesVisible(true);
-
-				TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
-				objectColumn.setText(getString("_UI_ObjectColumn_label"));
-				objectColumn.setResizable(true);
-				objectColumn.setWidth(250);
-
-				TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
-				selfColumn.setText(getString("_UI_SelfColumn_label"));
-				selfColumn.setResizable(true);
-				selfColumn.setWidth(200);
-
-				treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"});
-				treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-				treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-
-				createContextMenuFor(treeViewerWithColumns);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label"));
-			}
-
-			getSite().getShell().getDisplay().asyncExec
-				(new Runnable() {
-					 public void run() {
-						 setActivePage(0);
-					 }
-				 });
-		}
-
-		// Ensures that this editor will only display the page's tab
-		// area if there are more than one page
-		//
-		getContainer().addControlListener
-			(new ControlAdapter() {
-				boolean guard = false;
-				@Override
-				public void controlResized(ControlEvent event) {
-					if (!guard) {
-						guard = true;
-						hideTabs();
-						guard = false;
-					}
-				}
-			 });
-
-		getSite().getShell().getDisplay().asyncExec
-			(new Runnable() {
-				 public void run() {
-					 updateProblemIndication();
-				 }
-			 });
-	}
-
-	/**
-	 * If there is just one page in the multi-page editor part,
-	 * this hides the single tab at the bottom.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void hideTabs() {
-		if (getPageCount() <= 1) {
-			setPageText(0, "");
-			if (getContainer() instanceof CTabFolder) {
-				((CTabFolder)getContainer()).setTabHeight(1);
-				Point point = getContainer().getSize();
-				getContainer().setSize(point.x, point.y + 6);
-			}
-		}
-	}
-
-	/**
-	 * If there is more than one page in the multi-page editor part,
-	 * this shows the tabs at the bottom.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void showTabs() {
-		if (getPageCount() > 1) {
-			setPageText(0, getString("_UI_SelectionPage_label"));
-			if (getContainer() instanceof CTabFolder) {
-				((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
-				Point point = getContainer().getSize();
-				getContainer().setSize(point.x, point.y - 6);
-			}
-		}
-	}
-
-	/**
-	 * This is used to track the active viewer.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void pageChange(int pageIndex) {
-		super.pageChange(pageIndex);
-
-		if (contentOutlinePage != null) {
-			handleContentOutlineSelection(contentOutlinePage.getSelection());
-		}
-	}
-
-	/**
-	 * This is how the framework determines which interfaces we implement.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("rawtypes")
-	@Override
-	public Object getAdapter(Class key) {
-		if (key.equals(IContentOutlinePage.class)) {
-			return showOutlineView() ? getContentOutlinePage() : null;
-		}
-		else if (key.equals(IPropertySheetPage.class)) {
-			return getPropertySheetPage();
-		}
-		else if (key.equals(IGotoMarker.class)) {
-			return this;
-		}
-		else {
-			return super.getAdapter(key);
-		}
-	}
-
-	/**
-	 * This accesses a cached version of the content outliner.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IContentOutlinePage getContentOutlinePage() {
-		if (contentOutlinePage == null) {
-			// The content outline is just a tree.
-			//
-			class MyContentOutlinePage extends ContentOutlinePage {
-				@Override
-				public void createControl(Composite parent) {
-					super.createControl(parent);
-					contentOutlineViewer = getTreeViewer();
-					contentOutlineViewer.addSelectionChangedListener(this);
-
-					// Set up the tree viewer.
-					//
-					contentOutlineViewer.setUseHashlookup(true);
-					contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-					contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-					contentOutlineViewer.setInput(editingDomain.getResourceSet());
-
-					// Make sure our popups work.
-					//
-					createContextMenuFor(contentOutlineViewer);
-
-					if (!editingDomain.getResourceSet().getResources().isEmpty()) {
-					  // Select the root object in the view.
-					  //
-					  contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
-					}
-				}
-
-				@Override
-				public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
-					super.makeContributions(menuManager, toolBarManager, statusLineManager);
-					contentOutlineStatusLineManager = statusLineManager;
-				}
-
-				@Override
-				public void setActionBars(IActionBars actionBars) {
-					super.setActionBars(actionBars);
-					getActionBarContributor().shareGlobalActions(this, actionBars);
-				}
-			}
-
-			contentOutlinePage = new MyContentOutlinePage();
-
-			// Listen to selection so that we can handle it is a special way.
-			//
-			contentOutlinePage.addSelectionChangedListener
-				(new ISelectionChangedListener() {
-					 // This ensures that we handle selections correctly.
-					 //
-					 public void selectionChanged(SelectionChangedEvent event) {
-						 handleContentOutlineSelection(event.getSelection());
-					 }
-				 });
-		}
-
-		return contentOutlinePage;
-	}
-
-	/**
-	 * This accesses a cached version of the property sheet.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IPropertySheetPage getPropertySheetPage() {
-		PropertySheetPage propertySheetPage =
-			new ExtendedPropertySheetPage(editingDomain) {
-				@Override
-				public void setSelectionToViewer(List<?> selection) {
-					DNIEditor.this.setSelectionToViewer(selection);
-					DNIEditor.this.setFocus();
-				}
-
-				@Override
-				public void setActionBars(IActionBars actionBars) {
-					super.setActionBars(actionBars);
-					getActionBarContributor().shareGlobalActions(this, actionBars);
-				}
-			};
-		propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
-		propertySheetPages.add(propertySheetPage);
-
-		return propertySheetPage;
-	}
-
-	/**
-	 * This deals with how we want selection in the outliner to affect the other views.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void handleContentOutlineSelection(ISelection selection) {
-		if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
-			Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
-			if (selectedElements.hasNext()) {
-				// Get the first selected element.
-				//
-				Object selectedElement = selectedElements.next();
-
-				// If it's the selection viewer, then we want it to select the same selection as this selection.
-				//
-				if (currentViewerPane.getViewer() == selectionViewer) {
-					ArrayList<Object> selectionList = new ArrayList<Object>();
-					selectionList.add(selectedElement);
-					while (selectedElements.hasNext()) {
-						selectionList.add(selectedElements.next());
-					}
-
-					// Set the selection to the widget.
-					//
-					selectionViewer.setSelection(new StructuredSelection(selectionList));
-				}
-				else {
-					// Set the input to the widget.
-					//
-					if (currentViewerPane.getViewer().getInput() != selectedElement) {
-						currentViewerPane.getViewer().setInput(selectedElement);
-						currentViewerPane.setTitle(selectedElement);
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * This is for implementing {@link IEditorPart} and simply tests the command stack.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean isDirty() {
-		return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
-	}
-
-	/**
-	 * This is for implementing {@link IEditorPart} and simply saves the model file.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void doSave(IProgressMonitor progressMonitor) {
-		// Save only resources that have actually changed.
-		//
-		final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
-		saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
-		saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
-
-		// Do the work within an operation because this is a long running activity that modifies the workbench.
-		//
-		WorkspaceModifyOperation operation =
-			new WorkspaceModifyOperation() {
-				// This is the method that gets invoked when the operation runs.
-				//
-				@Override
-				public void execute(IProgressMonitor monitor) {
-					// Save the resources to the file system.
-					//
-					boolean first = true;
-					List<Resource> resources = editingDomain.getResourceSet().getResources();
-					for (int i = 0; i < resources.size(); ++i) {
-						Resource resource = resources.get(i);
-						if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
-							try {
-								long timeStamp = resource.getTimeStamp();
-								resource.save(saveOptions);
-								if (resource.getTimeStamp() != timeStamp) {
-									savedResources.add(resource);
-								}
-							}
-							catch (Exception exception) {
-								resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
-							}
-							first = false;
-						}
-					}
-				}
-			};
-
-		updateProblemIndication = false;
-		try {
-			// This runs the options, and shows progress.
-			//
-			new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
-
-			// Refresh the necessary state.
-			//
-			((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
-			firePropertyChange(IEditorPart.PROP_DIRTY);
-		}
-		catch (Exception exception) {
-			// Something went wrong that shouldn't.
-			//
-			Dnimm3EditPlugin.INSTANCE.log(exception);
-		}
-		updateProblemIndication = true;
-		updateProblemIndication();
-	}
-
-	/**
-	 * This returns whether something has been persisted to the URI of the specified resource.
-	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected boolean isPersisted(Resource resource) {
-		boolean result = false;
-		try {
-			InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
-			if (stream != null) {
-				result = true;
-				stream.close();
-			}
-		}
-		catch (IOException e) {
-			// Ignore
-		}
-		return result;
-	}
-
-	/**
-	 * This always returns true because it is not currently supported.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean isSaveAsAllowed() {
-		return true;
-	}
-
-	/**
-	 * This also changes the editor's input.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void doSaveAs() {
-		SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
-		saveAsDialog.open();
-		IPath path = saveAsDialog.getResult();
-		if (path != null) {
-			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
-			if (file != null) {
-				doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
-			}
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void doSaveAs(URI uri, IEditorInput editorInput) {
-		(editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
-		setInputWithNotify(editorInput);
-		setPartName(editorInput.getName());
-		IProgressMonitor progressMonitor =
-			getActionBars().getStatusLineManager() != null ?
-				getActionBars().getStatusLineManager().getProgressMonitor() :
-				new NullProgressMonitor();
-		doSave(progressMonitor);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void gotoMarker(IMarker marker) {
-		List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
-		if (!targetObjects.isEmpty()) {
-			setSelectionToViewer(targetObjects);
-		}
-	}
-
-	/**
-	 * This is called during startup.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void init(IEditorSite site, IEditorInput editorInput) {
-		setSite(site);
-		setInputWithNotify(editorInput);
-		setPartName(editorInput.getName());
-		site.setSelectionProvider(this);
-		site.getPage().addPartListener(partListener);
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void setFocus() {
-		if (currentViewerPane != null) {
-			currentViewerPane.setFocus();
-		}
-		else {
-			getControl(getActivePage()).setFocus();
-		}
-	}
-
-	/**
-	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void addSelectionChangedListener(ISelectionChangedListener listener) {
-		selectionChangedListeners.add(listener);
-	}
-
-	/**
-	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-		selectionChangedListeners.remove(listener);
-	}
-
-	/**
-	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ISelection getSelection() {
-		return editorSelection;
-	}
-
-	/**
-	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
-	 * Calling this result will notify the listeners.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setSelection(ISelection selection) {
-		editorSelection = selection;
-
-		for (ISelectionChangedListener listener : selectionChangedListeners) {
-			listener.selectionChanged(new SelectionChangedEvent(this, selection));
-		}
-		setStatusLineManager(selection);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setStatusLineManager(ISelection selection) {
-		IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
-			contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
-
-		if (statusLineManager != null) {
-			if (selection instanceof IStructuredSelection) {
-				Collection<?> collection = ((IStructuredSelection)selection).toList();
-				switch (collection.size()) {
-					case 0: {
-						statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
-						break;
-					}
-					case 1: {
-						String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
-						statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
-						break;
-					}
-					default: {
-						statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
-						break;
-					}
-				}
-			}
-			else {
-				statusLineManager.setMessage("");
-			}
-		}
-	}
-
-	/**
-	 * This looks up a string in the plugin's plugin.properties file.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static String getString(String key) {
-		return Dnimm3EditPlugin.INSTANCE.getString(key);
-	}
-
-	/**
-	 * This looks up a string in plugin.properties, making a substitution.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static String getString(String key, Object s1) {
-		return Dnimm3EditPlugin.INSTANCE.getString(key, new Object [] { s1 });
-	}
-
-	/**
-	 * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void menuAboutToShow(IMenuManager menuManager) {
-		((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EditingDomainActionBarContributor getActionBarContributor() {
-		return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IActionBars getActionBars() {
-		return getActionBarContributor().getActionBars();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdapterFactory getAdapterFactory() {
-		return adapterFactory;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void dispose() {
-		updateProblemIndication = false;
-
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
-
-		getSite().getPage().removePartListener(partListener);
-
-		adapterFactory.dispose();
-
-		if (getActionBarContributor().getActiveEditor() == this) {
-			getActionBarContributor().setActiveEditor(null);
-		}
-
-		for (PropertySheetPage propertySheetPage : propertySheetPages) {
-			propertySheetPage.dispose();
-		}
-
-		if (contentOutlinePage != null) {
-			contentOutlinePage.dispose();
-		}
-
-		super.dispose();
-	}
-
-	/**
-	 * Returns whether the outline view should be presented to the user.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected boolean showOutlineView() {
-		return true;
-	}
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/presentation/DNIModelWizard.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/presentation/DNIModelWizard.java
deleted file mode 100644
index 45e2c169..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/presentation/DNIModelWizard.java
+++ /dev/null
@@ -1,627 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.presentation;
-
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.MissingResourceException;
-import java.util.StringTokenizer;
-
-import org.eclipse.emf.common.CommonPlugin;
-
-import org.eclipse.emf.common.util.URI;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EClassifier;
-
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.emf.ecore.xmi.XMLResource;
-
-import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardPage;
-
-import org.eclipse.swt.SWT;
-
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.ModifyEvent;
-
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
-
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.part.ISetSelectionTarget;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.provider.Dnimm3EditPlugin;
-
-
-import org.eclipse.core.runtime.Path;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-
-
-/**
- * This is a simple wizard for creating a new model file.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class DNIModelWizard extends Wizard implements INewWizard {
-	/**
-	 * The supported extensions for created files.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List<String> FILE_EXTENSIONS =
-		Collections.unmodifiableList(Arrays.asList(Dnimm3EditPlugin.INSTANCE.getString("_UI_DNIEditorFilenameExtensions").split("\\s*,\\s*")));
-
-	/**
-	 * A formatted list of supported file extensions, suitable for display.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final String FORMATTED_FILE_EXTENSIONS =
-		Dnimm3EditPlugin.INSTANCE.getString("_UI_DNIEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
-
-	/**
-	 * This caches an instance of the model package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected DNIPackage dniPackage = DNIPackage.eINSTANCE;
-
-	/**
-	 * This caches an instance of the model factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected DNIFactory dniFactory = dniPackage.getDNIFactory();
-
-	/**
-	 * This is the file creation page.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected DNIModelWizardNewFileCreationPage newFileCreationPage;
-
-	/**
-	 * This is the initial object creation page.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected DNIModelWizardInitialObjectCreationPage initialObjectCreationPage;
-
-	/**
-	 * Remember the selection during initialization for populating the default container.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IStructuredSelection selection;
-
-	/**
-	 * Remember the workbench during initialization.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IWorkbench workbench;
-
-	/**
-	 * Caches the names of the types that can be created as the root object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected List<String> initialObjectNames;
-
-	/**
-	 * This just records the information.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void init(IWorkbench workbench, IStructuredSelection selection) {
-		this.workbench = workbench;
-		this.selection = selection;
-		setWindowTitle(Dnimm3EditPlugin.INSTANCE.getString("_UI_Wizard_label"));
-		setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(Dnimm3EditPlugin.INSTANCE.getImage("full/wizban/NewDNI")));
-	}
-
-	/**
-	 * Returns the names of the types that can be created as the root object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection<String> getInitialObjectNames() {
-		if (initialObjectNames == null) {
-			initialObjectNames = new ArrayList<String>();
-			for (EClassifier eClassifier : dniPackage.getEClassifiers()) {
-				if (eClassifier instanceof EClass) {
-					EClass eClass = (EClass)eClassifier;
-					if (!eClass.isAbstract()) {
-						initialObjectNames.add(eClass.getName());
-					}
-				}
-			}
-			Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
-		}
-		return initialObjectNames;
-	}
-
-	/**
-	 * Create a new model.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EObject createInitialModel() {
-		EClass eClass = (EClass)dniPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
-		EObject rootObject = dniFactory.create(eClass);
-		return rootObject;
-	}
-
-	/**
-	 * Do the work after everything is specified.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean performFinish() {
-		try {
-			// Remember the file.
-			//
-			final IFile modelFile = getModelFile();
-
-			// Do the work within an operation.
-			//
-			WorkspaceModifyOperation operation =
-				new WorkspaceModifyOperation() {
-					@Override
-					protected void execute(IProgressMonitor progressMonitor) {
-						try {
-							// Create a resource set
-							//
-							ResourceSet resourceSet = new ResourceSetImpl();
-
-							// Get the URI of the model file.
-							//
-							URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
-
-							// Create a resource for this file.
-							//
-							Resource resource = resourceSet.createResource(fileURI);
-
-							// Add the initial model object to the contents.
-							//
-							EObject rootObject = createInitialModel();
-							if (rootObject != null) {
-								resource.getContents().add(rootObject);
-							}
-
-							// Save the contents of the resource to the file system.
-							//
-							Map<Object, Object> options = new HashMap<Object, Object>();
-							options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
-							resource.save(options);
-						}
-						catch (Exception exception) {
-							Dnimm3EditPlugin.INSTANCE.log(exception);
-						}
-						finally {
-							progressMonitor.done();
-						}
-					}
-				};
-
-			getContainer().run(false, false, operation);
-
-			// Select the new file resource in the current view.
-			//
-			IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-			IWorkbenchPage page = workbenchWindow.getActivePage();
-			final IWorkbenchPart activePart = page.getActivePart();
-			if (activePart instanceof ISetSelectionTarget) {
-				final ISelection targetSelection = new StructuredSelection(modelFile);
-				getShell().getDisplay().asyncExec
-					(new Runnable() {
-						 public void run() {
-							 ((ISetSelectionTarget)activePart).selectReveal(targetSelection);
-						 }
-					 });
-			}
-
-			// Open an editor on the new file.
-			//
-			try {
-				page.openEditor
-					(new FileEditorInput(modelFile),
-					 workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());					 	 
-			}
-			catch (PartInitException exception) {
-				MessageDialog.openError(workbenchWindow.getShell(), Dnimm3EditPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());
-				return false;
-			}
-
-			return true;
-		}
-		catch (Exception exception) {
-			Dnimm3EditPlugin.INSTANCE.log(exception);
-			return false;
-		}
-	}
-
-	/**
-	 * This is the one page of the wizard.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public class DNIModelWizardNewFileCreationPage extends WizardNewFileCreationPage {
-		/**
-		 * Pass in the selection.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public DNIModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) {
-			super(pageId, selection);
-		}
-
-		/**
-		 * The framework calls this to see if the file is correct.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		@Override
-		protected boolean validatePage() {
-			if (super.validatePage()) {
-				String extension = new Path(getFileName()).getFileExtension();
-				if (extension == null || !FILE_EXTENSIONS.contains(extension)) {
-					String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";
-					setErrorMessage(Dnimm3EditPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));
-					return false;
-				}
-				return true;
-			}
-			return false;
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public IFile getModelFile() {
-			return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
-		}
-	}
-
-	/**
-	 * This is the page where the type of object to create is selected.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public class DNIModelWizardInitialObjectCreationPage extends WizardPage {
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		protected Combo initialObjectField;
-
-		/**
-		 * @generated
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 */
-		protected List<String> encodings;
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		protected Combo encodingField;
-
-		/**
-		 * Pass in the selection.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public DNIModelWizardInitialObjectCreationPage(String pageId) {
-			super(pageId);
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public void createControl(Composite parent) {
-			Composite composite = new Composite(parent, SWT.NONE); {
-				GridLayout layout = new GridLayout();
-				layout.numColumns = 1;
-				layout.verticalSpacing = 12;
-				composite.setLayout(layout);
-
-				GridData data = new GridData();
-				data.verticalAlignment = GridData.FILL;
-				data.grabExcessVerticalSpace = true;
-				data.horizontalAlignment = GridData.FILL;
-				composite.setLayoutData(data);
-			}
-
-			Label containerLabel = new Label(composite, SWT.LEFT);
-			{
-				containerLabel.setText(Dnimm3EditPlugin.INSTANCE.getString("_UI_ModelObject"));
-
-				GridData data = new GridData();
-				data.horizontalAlignment = GridData.FILL;
-				containerLabel.setLayoutData(data);
-			}
-
-			initialObjectField = new Combo(composite, SWT.BORDER);
-			{
-				GridData data = new GridData();
-				data.horizontalAlignment = GridData.FILL;
-				data.grabExcessHorizontalSpace = true;
-				initialObjectField.setLayoutData(data);
-			}
-
-			for (String objectName : getInitialObjectNames()) {
-				initialObjectField.add(getLabel(objectName));
-			}
-
-			if (initialObjectField.getItemCount() == 1) {
-				initialObjectField.select(0);
-			}
-			initialObjectField.addModifyListener(validator);
-
-			Label encodingLabel = new Label(composite, SWT.LEFT);
-			{
-				encodingLabel.setText(Dnimm3EditPlugin.INSTANCE.getString("_UI_XMLEncoding"));
-
-				GridData data = new GridData();
-				data.horizontalAlignment = GridData.FILL;
-				encodingLabel.setLayoutData(data);
-			}
-			encodingField = new Combo(composite, SWT.BORDER);
-			{
-				GridData data = new GridData();
-				data.horizontalAlignment = GridData.FILL;
-				data.grabExcessHorizontalSpace = true;
-				encodingField.setLayoutData(data);
-			}
-
-			for (String encoding : getEncodings()) {
-				encodingField.add(encoding);
-			}
-
-			encodingField.select(0);
-			encodingField.addModifyListener(validator);
-
-			setPageComplete(validatePage());
-			setControl(composite);
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		protected ModifyListener validator =
-			new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					setPageComplete(validatePage());
-				}
-			};
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		protected boolean validatePage() {
-			return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		@Override
-		public void setVisible(boolean visible) {
-			super.setVisible(visible);
-			if (visible) {
-				if (initialObjectField.getItemCount() == 1) {
-					initialObjectField.clearSelection();
-					encodingField.setFocus();
-				}
-				else {
-					encodingField.clearSelection();
-					initialObjectField.setFocus();
-				}
-			}
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public String getInitialObjectName() {
-			String label = initialObjectField.getText();
-
-			for (String name : getInitialObjectNames()) {
-				if (getLabel(name).equals(label)) {
-					return name;
-				}
-			}
-			return null;
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public String getEncoding() {
-			return encodingField.getText();
-		}
-
-		/**
-		 * Returns the label for the specified type name.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		protected String getLabel(String typeName) {
-			try {
-				return Dnimm3EditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
-			}
-			catch(MissingResourceException mre) {
-				Dnimm3EditPlugin.INSTANCE.log(mre);
-			}
-			return typeName;
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		protected Collection<String> getEncodings() {
-			if (encodings == null) {
-				encodings = new ArrayList<String>();
-				for (StringTokenizer stringTokenizer = new StringTokenizer(Dnimm3EditPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) {
-					encodings.add(stringTokenizer.nextToken());
-				}
-			}
-			return encodings;
-		}
-	}
-
-	/**
-	 * The framework calls this to create the contents of the wizard.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-		@Override
-	public void addPages() {
-		// Create a page, set the title, and the initial model file name.
-		//
-		newFileCreationPage = new DNIModelWizardNewFileCreationPage("Whatever", selection);
-		newFileCreationPage.setTitle(Dnimm3EditPlugin.INSTANCE.getString("_UI_DNIModelWizard_label"));
-		newFileCreationPage.setDescription(Dnimm3EditPlugin.INSTANCE.getString("_UI_DNIModelWizard_description"));
-		newFileCreationPage.setFileName(Dnimm3EditPlugin.INSTANCE.getString("_UI_DNIEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0));
-		addPage(newFileCreationPage);
-
-		// Try and get the resource selection to determine a current directory for the file dialog.
-		//
-		if (selection != null && !selection.isEmpty()) {
-			// Get the resource...
-			//
-			Object selectedElement = selection.iterator().next();
-			if (selectedElement instanceof IResource) {
-				// Get the resource parent, if its a file.
-				//
-				IResource selectedResource = (IResource)selectedElement;
-				if (selectedResource.getType() == IResource.FILE) {
-					selectedResource = selectedResource.getParent();
-				}
-
-				// This gives us a directory...
-				//
-				if (selectedResource instanceof IFolder || selectedResource instanceof IProject) {
-					// Set this for the container.
-					//
-					newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
-
-					// Make up a unique new name here.
-					//
-					String defaultModelBaseFilename = Dnimm3EditPlugin.INSTANCE.getString("_UI_DNIEditorFilenameDefaultBase");
-					String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
-					String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension;
-					for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) {
-						modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension;
-					}
-					newFileCreationPage.setFileName(modelFilename);
-				}
-			}
-		}
-		initialObjectCreationPage = new DNIModelWizardInitialObjectCreationPage("Whatever2");
-		initialObjectCreationPage.setTitle(Dnimm3EditPlugin.INSTANCE.getString("_UI_DNIModelWizard_label"));
-		initialObjectCreationPage.setDescription(Dnimm3EditPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description"));
-		addPage(initialObjectCreationPage);
-	}
-
-	/**
-	 * Get the file from the page.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IFile getModelFile() {
-		return newFileCreationPage.getModelFile();
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/BranchActionItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/BranchActionItemProvider.java
deleted file mode 100644
index 6db1df32..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/BranchActionItemProvider.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.BranchAction;
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.BranchAction} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class BranchActionItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public BranchActionItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.BRANCH_ACTION__INTERN);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns BranchAction.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/BranchAction"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_BranchAction_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(BranchAction.class)) {
-			case DNIPackage.BRANCH_ACTION__INTERN:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.BRANCH_ACTION__INTERN,
-				 DNIFactory.eINSTANCE.createBranchAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.BRANCH_ACTION__INTERN,
-				 DNIFactory.eINSTANCE.createLoopAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.BRANCH_ACTION__INTERN,
-				 DNIFactory.eINSTANCE.createSequenceAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.BRANCH_ACTION__INTERN,
-				 DNIFactory.eINSTANCE.createStartAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.BRANCH_ACTION__INTERN,
-				 DNIFactory.eINSTANCE.createStopAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.BRANCH_ACTION__INTERN,
-				 DNIFactory.eINSTANCE.createTransmitAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.BRANCH_ACTION__INTERN,
-				 DNIFactory.eINSTANCE.createWaitAction()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/CommonItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/CommonItemProvider.java
deleted file mode 100644
index acb0e3c3..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/CommonItemProvider.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.Common} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class CommonItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public CommonItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This returns Common.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/Common"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_Common_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/CommunicatingApplicationItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/CommunicatingApplicationItemProvider.java
deleted file mode 100644
index a8a1102b..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/CommunicatingApplicationItemProvider.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.CommunicatingApplication;
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.CommunicatingApplication} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class CommunicatingApplicationItemProvider extends IdentifierItemProvider {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public CommunicatingApplicationItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addDeployedOnPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Deployed On feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDeployedOnPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_CommunicatingApplication_deployedOn_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_CommunicatingApplication_deployedOn_feature", "_UI_CommunicatingApplication_type"),
-				 DNIPackage.Literals.COMMUNICATING_APPLICATION__DEPLOYED_ON,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.COMMUNICATING_APPLICATION__TRAFFIC_SOURCES);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns CommunicatingApplication.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/CommunicatingApplication"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((CommunicatingApplication)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_CommunicatingApplication_type") :
-			getString("_UI_CommunicatingApplication_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(CommunicatingApplication.class)) {
-			case DNIPackage.COMMUNICATING_APPLICATION__NAME:
-			case DNIPackage.COMMUNICATING_APPLICATION__DESCRIPTION:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case DNIPackage.COMMUNICATING_APPLICATION__TRAFFIC_SOURCES:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.COMMUNICATING_APPLICATION__TRAFFIC_SOURCES,
-				 DNIFactory.eINSTANCE.createTrafficSource()));
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ConstantDoubleVariableItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ConstantDoubleVariableItemProvider.java
deleted file mode 100644
index 34722535..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ConstantDoubleVariableItemProvider.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.ConstantDoubleVariable;
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.ConstantDoubleVariable} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class ConstantDoubleVariableItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ConstantDoubleVariableItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addValuePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Value feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addValuePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_ConstantDoubleVariable_value_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_ConstantDoubleVariable_value_feature", "_UI_ConstantDoubleVariable_type"),
-				 DNIPackage.Literals.CONSTANT_DOUBLE_VARIABLE__VALUE,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.REAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.DEPENDENCY__UNIT);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns ConstantDoubleVariable.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/ConstantDoubleVariable"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		ConstantDoubleVariable constantDoubleVariable = (ConstantDoubleVariable)object;
-		return getString("_UI_ConstantDoubleVariable_type") + " " + constantDoubleVariable.getValue();
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(ConstantDoubleVariable.class)) {
-			case DNIPackage.CONSTANT_DOUBLE_VARIABLE__VALUE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case DNIPackage.CONSTANT_DOUBLE_VARIABLE__UNIT:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.DEPENDENCY__UNIT,
-				 DNIFactory.eINSTANCE.createSpeedUnit()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.DEPENDENCY__UNIT,
-				 DNIFactory.eINSTANCE.createDataUnit()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.DEPENDENCY__UNIT,
-				 DNIFactory.eINSTANCE.createTimeUnit()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ConstantLongVariableItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ConstantLongVariableItemProvider.java
deleted file mode 100644
index 41370ed0..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ConstantLongVariableItemProvider.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.ConstantLongVariable;
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.ConstantLongVariable} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class ConstantLongVariableItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ConstantLongVariableItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addValuePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Value feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addValuePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_ConstantLongVariable_value_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_ConstantLongVariable_value_feature", "_UI_ConstantLongVariable_type"),
-				 DNIPackage.Literals.CONSTANT_LONG_VARIABLE__VALUE,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.DEPENDENCY__UNIT);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns ConstantLongVariable.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/ConstantLongVariable"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		ConstantLongVariable constantLongVariable = (ConstantLongVariable)object;
-		return getString("_UI_ConstantLongVariable_type") + " " + constantLongVariable.getValue();
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(ConstantLongVariable.class)) {
-			case DNIPackage.CONSTANT_LONG_VARIABLE__VALUE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case DNIPackage.CONSTANT_LONG_VARIABLE__UNIT:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.DEPENDENCY__UNIT,
-				 DNIFactory.eINSTANCE.createSpeedUnit()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.DEPENDENCY__UNIT,
-				 DNIFactory.eINSTANCE.createDataUnit()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.DEPENDENCY__UNIT,
-				 DNIFactory.eINSTANCE.createTimeUnit()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/DNIItemProviderAdapterFactory.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/DNIItemProviderAdapterFactory.java
deleted file mode 100644
index 2bd49159..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/DNIItemProviderAdapterFactory.java
+++ /dev/null
@@ -1,1615 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.Notifier;
-
-import org.eclipse.emf.edit.provider.ChangeNotifier;
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.IChangeNotifier;
-import org.eclipse.emf.edit.provider.IDisposable;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.INotifyChangedListener;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-
-import tools.descartes.dni.dnimm3.util.DNIAdapterFactory;
-
-/**
- * This is the factory that is used to provide the interfaces needed to support Viewers.
- * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
- * The adapters also support Eclipse property sheets.
- * Note that most of the adapters are shared among multiple instances.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class DNIItemProviderAdapterFactory extends DNIAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
-	/**
-	 * This keeps track of the root adapter factory that delegates to this adapter factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ComposedAdapterFactory parentAdapterFactory;
-
-	/**
-	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IChangeNotifier changeNotifier = new ChangeNotifier();
-
-	/**
-	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection<Object> supportedTypes = new ArrayList<Object>();
-
-	/**
-	 * This constructs an instance.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DNIItemProviderAdapterFactory() {
-		supportedTypes.add(IEditingDomainItemProvider.class);
-		supportedTypes.add(IStructuredItemContentProvider.class);
-		supportedTypes.add(ITreeItemContentProvider.class);
-		supportedTypes.add(IItemLabelProvider.class);
-		supportedTypes.add(IItemPropertySource.class);
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.NetworkInfrastructure} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NetworkInfrastructureItemProvider networkInfrastructureItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.NetworkInfrastructure}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createNetworkInfrastructureAdapter() {
-		if (networkInfrastructureItemProvider == null) {
-			networkInfrastructureItemProvider = new NetworkInfrastructureItemProvider(this);
-		}
-
-		return networkInfrastructureItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.NetworkStructure} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NetworkStructureItemProvider networkStructureItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.NetworkStructure}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createNetworkStructureAdapter() {
-		if (networkStructureItemProvider == null) {
-			networkStructureItemProvider = new NetworkStructureItemProvider(this);
-		}
-
-		return networkStructureItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.Node} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NodeItemProvider nodeItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.Node}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createNodeAdapter() {
-		if (nodeItemProvider == null) {
-			nodeItemProvider = new NodeItemProvider(this);
-		}
-
-		return nodeItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.End} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EndItemProvider endItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.End}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createEndAdapter() {
-		if (endItemProvider == null) {
-			endItemProvider = new EndItemProvider(this);
-		}
-
-		return endItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.Intermediate} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IntermediateItemProvider intermediateItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.Intermediate}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createIntermediateAdapter() {
-		if (intermediateItemProvider == null) {
-			intermediateItemProvider = new IntermediateItemProvider(this);
-		}
-
-		return intermediateItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.Link} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected LinkItemProvider linkItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.Link}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createLinkAdapter() {
-		if (linkItemProvider == null) {
-			linkItemProvider = new LinkItemProvider(this);
-		}
-
-		return linkItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.NetworkInterface} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NetworkInterfaceItemProvider networkInterfaceItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.NetworkInterface}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createNetworkInterfaceAdapter() {
-		if (networkInterfaceItemProvider == null) {
-			networkInterfaceItemProvider = new NetworkInterfaceItemProvider(this);
-		}
-
-		return networkInterfaceItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.NetworkTraffic} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NetworkTrafficItemProvider networkTrafficItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.NetworkTraffic}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createNetworkTrafficAdapter() {
-		if (networkTrafficItemProvider == null) {
-			networkTrafficItemProvider = new NetworkTrafficItemProvider(this);
-		}
-
-		return networkTrafficItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.Flow} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected FlowItemProvider flowItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.Flow}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createFlowAdapter() {
-		if (flowItemProvider == null) {
-			flowItemProvider = new FlowItemProvider(this);
-		}
-
-		return flowItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.SdnControlFlow} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected SdnControlFlowItemProvider sdnControlFlowItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.SdnControlFlow}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createSdnControlFlowAdapter() {
-		if (sdnControlFlowItemProvider == null) {
-			sdnControlFlowItemProvider = new SdnControlFlowItemProvider(this);
-		}
-
-		return sdnControlFlowItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.GenericFlowTraffic} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected GenericFlowTrafficItemProvider genericFlowTrafficItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.GenericFlowTraffic}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createGenericFlowTrafficAdapter() {
-		if (genericFlowTrafficItemProvider == null) {
-			genericFlowTrafficItemProvider = new GenericFlowTrafficItemProvider(this);
-		}
-
-		return genericFlowTrafficItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.CommunicatingApplication} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected CommunicatingApplicationItemProvider communicatingApplicationItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.CommunicatingApplication}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createCommunicatingApplicationAdapter() {
-		if (communicatingApplicationItemProvider == null) {
-			communicatingApplicationItemProvider = new CommunicatingApplicationItemProvider(this);
-		}
-
-		return communicatingApplicationItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.TrafficSource} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TrafficSourceItemProvider trafficSourceItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.TrafficSource}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createTrafficSourceAdapter() {
-		if (trafficSourceItemProvider == null) {
-			trafficSourceItemProvider = new TrafficSourceItemProvider(this);
-		}
-
-		return trafficSourceItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.NetworkConfiguration} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NetworkConfigurationItemProvider networkConfigurationItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.NetworkConfiguration}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createNetworkConfigurationAdapter() {
-		if (networkConfigurationItemProvider == null) {
-			networkConfigurationItemProvider = new NetworkConfigurationItemProvider(this);
-		}
-
-		return networkConfigurationItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.ProtocolsRepository} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ProtocolsRepositoryItemProvider protocolsRepositoryItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.ProtocolsRepository}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createProtocolsRepositoryAdapter() {
-		if (protocolsRepositoryItemProvider == null) {
-			protocolsRepositoryItemProvider = new ProtocolsRepositoryItemProvider(this);
-		}
-
-		return protocolsRepositoryItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.ProtocolStack} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ProtocolStackItemProvider protocolStackItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.ProtocolStack}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createProtocolStackAdapter() {
-		if (protocolStackItemProvider == null) {
-			protocolStackItemProvider = new ProtocolStackItemProvider(this);
-		}
-
-		return protocolStackItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.ProtocolLayer} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ProtocolLayerItemProvider protocolLayerItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.ProtocolLayer}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createProtocolLayerAdapter() {
-		if (protocolLayerItemProvider == null) {
-			protocolLayerItemProvider = new ProtocolLayerItemProvider(this);
-		}
-
-		return protocolLayerItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.NetworkProtocol} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NetworkProtocolItemProvider networkProtocolItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.NetworkProtocol}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createNetworkProtocolAdapter() {
-		if (networkProtocolItemProvider == null) {
-			networkProtocolItemProvider = new NetworkProtocolItemProvider(this);
-		}
-
-		return networkProtocolItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.RoutesRepository} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected RoutesRepositoryItemProvider routesRepositoryItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.RoutesRepository}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createRoutesRepositoryAdapter() {
-		if (routesRepositoryItemProvider == null) {
-			routesRepositoryItemProvider = new RoutesRepositoryItemProvider(this);
-		}
-
-		return routesRepositoryItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.Direction} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected DirectionItemProvider directionItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.Direction}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createDirectionAdapter() {
-		if (directionItemProvider == null) {
-			directionItemProvider = new DirectionItemProvider(this);
-		}
-
-		return directionItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.FlowRoute} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected FlowRouteItemProvider flowRouteItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.FlowRoute}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createFlowRouteAdapter() {
-		if (flowRouteItemProvider == null) {
-			flowRouteItemProvider = new FlowRouteItemProvider(this);
-		}
-
-		return flowRouteItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.Route} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected RouteItemProvider routeItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.Route}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createRouteAdapter() {
-		if (routeItemProvider == null) {
-			routeItemProvider = new RouteItemProvider(this);
-		}
-
-		return routeItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.Hop} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected HopItemProvider hopItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.Hop}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createHopAdapter() {
-		if (hopItemProvider == null) {
-			hopItemProvider = new HopItemProvider(this);
-		}
-
-		return hopItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.EntityAddress} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EntityAddressItemProvider entityAddressItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.EntityAddress}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createEntityAddressAdapter() {
-		if (entityAddressItemProvider == null) {
-			entityAddressItemProvider = new EntityAddressItemProvider(this);
-		}
-
-		return entityAddressItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.GenericWorkload} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected GenericWorkloadItemProvider genericWorkloadItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.GenericWorkload}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createGenericWorkloadAdapter() {
-		if (genericWorkloadItemProvider == null) {
-			genericWorkloadItemProvider = new GenericWorkloadItemProvider(this);
-		}
-
-		return genericWorkloadItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.BranchAction} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected BranchActionItemProvider branchActionItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.BranchAction}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createBranchActionAdapter() {
-		if (branchActionItemProvider == null) {
-			branchActionItemProvider = new BranchActionItemProvider(this);
-		}
-
-		return branchActionItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.LoopAction} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected LoopActionItemProvider loopActionItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.LoopAction}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createLoopActionAdapter() {
-		if (loopActionItemProvider == null) {
-			loopActionItemProvider = new LoopActionItemProvider(this);
-		}
-
-		return loopActionItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.SequenceAction} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected SequenceActionItemProvider sequenceActionItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.SequenceAction}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createSequenceActionAdapter() {
-		if (sequenceActionItemProvider == null) {
-			sequenceActionItemProvider = new SequenceActionItemProvider(this);
-		}
-
-		return sequenceActionItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.StartAction} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected StartActionItemProvider startActionItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.StartAction}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createStartActionAdapter() {
-		if (startActionItemProvider == null) {
-			startActionItemProvider = new StartActionItemProvider(this);
-		}
-
-		return startActionItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.StopAction} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected StopActionItemProvider stopActionItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.StopAction}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createStopActionAdapter() {
-		if (stopActionItemProvider == null) {
-			stopActionItemProvider = new StopActionItemProvider(this);
-		}
-
-		return stopActionItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.TransmitAction} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TransmitActionItemProvider transmitActionItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.TransmitAction}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createTransmitActionAdapter() {
-		if (transmitActionItemProvider == null) {
-			transmitActionItemProvider = new TransmitActionItemProvider(this);
-		}
-
-		return transmitActionItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.WaitAction} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected WaitActionItemProvider waitActionItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.WaitAction}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createWaitActionAdapter() {
-		if (waitActionItemProvider == null) {
-			waitActionItemProvider = new WaitActionItemProvider(this);
-		}
-
-		return waitActionItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.PerformanceLink} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected PerformanceLinkItemProvider performanceLinkItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.PerformanceLink}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createPerformanceLinkAdapter() {
-		if (performanceLinkItemProvider == null) {
-			performanceLinkItemProvider = new PerformanceLinkItemProvider(this);
-		}
-
-		return performanceLinkItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected PerformanceNetworkInterfaceItemProvider performanceNetworkInterfaceItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createPerformanceNetworkInterfaceAdapter() {
-		if (performanceNetworkInterfaceItemProvider == null) {
-			performanceNetworkInterfaceItemProvider = new PerformanceNetworkInterfaceItemProvider(this);
-		}
-
-		return performanceNetworkInterfaceItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.SdnFlowRule} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected SdnFlowRuleItemProvider sdnFlowRuleItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.SdnFlowRule}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createSdnFlowRuleAdapter() {
-		if (sdnFlowRuleItemProvider == null) {
-			sdnFlowRuleItemProvider = new SdnFlowRuleItemProvider(this);
-		}
-
-		return sdnFlowRuleItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.SdnController} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected SdnControllerItemProvider sdnControllerItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.SdnController}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createSdnControllerAdapter() {
-		if (sdnControllerItemProvider == null) {
-			sdnControllerItemProvider = new SdnControllerItemProvider(this);
-		}
-
-		return sdnControllerItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.SdnControllerApplication} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected SdnControllerApplicationItemProvider sdnControllerApplicationItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.SdnControllerApplication}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createSdnControllerApplicationAdapter() {
-		if (sdnControllerApplicationItemProvider == null) {
-			sdnControllerApplicationItemProvider = new SdnControllerApplicationItemProvider(this);
-		}
-
-		return sdnControllerApplicationItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.Common} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected CommonItemProvider commonItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.Common}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createCommonAdapter() {
-		if (commonItemProvider == null) {
-			commonItemProvider = new CommonItemProvider(this);
-		}
-
-		return commonItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.SDN} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected SDNItemProvider sdnItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.SDN}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createSDNAdapter() {
-		if (sdnItemProvider == null) {
-			sdnItemProvider = new SDNItemProvider(this);
-		}
-
-		return sdnItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.IntermediatePerformance} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IntermediatePerformanceItemProvider intermediatePerformanceItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.IntermediatePerformance}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createIntermediatePerformanceAdapter() {
-		if (intermediatePerformanceItemProvider == null) {
-			intermediatePerformanceItemProvider = new IntermediatePerformanceItemProvider(this);
-		}
-
-		return intermediatePerformanceItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.EndPerformance} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EndPerformanceItemProvider endPerformanceItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.EndPerformance}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createEndPerformanceAdapter() {
-		if (endPerformanceItemProvider == null) {
-			endPerformanceItemProvider = new EndPerformanceItemProvider(this);
-		}
-
-		return endPerformanceItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.PerformanceSdnNode} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected PerformanceSdnNodeItemProvider performanceSdnNodeItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.PerformanceSdnNode}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createPerformanceSdnNodeAdapter() {
-		if (performanceSdnNodeItemProvider == null) {
-			performanceSdnNodeItemProvider = new PerformanceSdnNodeItemProvider(this);
-		}
-
-		return performanceSdnNodeItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.SpeedUnit} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected SpeedUnitItemProvider speedUnitItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.SpeedUnit}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createSpeedUnitAdapter() {
-		if (speedUnitItemProvider == null) {
-			speedUnitItemProvider = new SpeedUnitItemProvider(this);
-		}
-
-		return speedUnitItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.DataUnit} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected DataUnitItemProvider dataUnitItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.DataUnit}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createDataUnitAdapter() {
-		if (dataUnitItemProvider == null) {
-			dataUnitItemProvider = new DataUnitItemProvider(this);
-		}
-
-		return dataUnitItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.TimeUnit} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TimeUnitItemProvider timeUnitItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.TimeUnit}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createTimeUnitAdapter() {
-		if (timeUnitItemProvider == null) {
-			timeUnitItemProvider = new TimeUnitItemProvider(this);
-		}
-
-		return timeUnitItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.ConstantDoubleVariable} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ConstantDoubleVariableItemProvider constantDoubleVariableItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.ConstantDoubleVariable}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createConstantDoubleVariableAdapter() {
-		if (constantDoubleVariableItemProvider == null) {
-			constantDoubleVariableItemProvider = new ConstantDoubleVariableItemProvider(this);
-		}
-
-		return constantDoubleVariableItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.ConstantLongVariable} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ConstantLongVariableItemProvider constantLongVariableItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.ConstantLongVariable}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createConstantLongVariableAdapter() {
-		if (constantLongVariableItemProvider == null) {
-			constantLongVariableItemProvider = new ConstantLongVariableItemProvider(this);
-		}
-
-		return constantLongVariableItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.RandomVariable} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected RandomVariableItemProvider randomVariableItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.RandomVariable}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createRandomVariableAdapter() {
-		if (randomVariableItemProvider == null) {
-			randomVariableItemProvider = new RandomVariableItemProvider(this);
-		}
-
-		return randomVariableItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.FloatCoordinate} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected FloatCoordinateItemProvider floatCoordinateItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.FloatCoordinate}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createFloatCoordinateAdapter() {
-		if (floatCoordinateItemProvider == null) {
-			floatCoordinateItemProvider = new FloatCoordinateItemProvider(this);
-		}
-
-		return floatCoordinateItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.DiscreteFunction} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected DiscreteFunctionItemProvider discreteFunctionItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.DiscreteFunction}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createDiscreteFunctionAdapter() {
-		if (discreteFunctionItemProvider == null) {
-			discreteFunctionItemProvider = new DiscreteFunctionItemProvider(this);
-		}
-
-		return discreteFunctionItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.ExponentialFunction} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ExponentialFunctionItemProvider exponentialFunctionItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.ExponentialFunction}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createExponentialFunctionAdapter() {
-		if (exponentialFunctionItemProvider == null) {
-			exponentialFunctionItemProvider = new ExponentialFunctionItemProvider(this);
-		}
-
-		return exponentialFunctionItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.EntityTypes} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EntityTypesItemProvider entityTypesItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.EntityTypes}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createEntityTypesAdapter() {
-		if (entityTypesItemProvider == null) {
-			entityTypesItemProvider = new EntityTypesItemProvider(this);
-		}
-
-		return entityTypesItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.NodeType} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NodeTypeItemProvider nodeTypeItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.NodeType}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createNodeTypeAdapter() {
-		if (nodeTypeItemProvider == null) {
-			nodeTypeItemProvider = new NodeTypeItemProvider(this);
-		}
-
-		return nodeTypeItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.EndPerformanceType} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EndPerformanceTypeItemProvider endPerformanceTypeItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.EndPerformanceType}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createEndPerformanceTypeAdapter() {
-		if (endPerformanceTypeItemProvider == null) {
-			endPerformanceTypeItemProvider = new EndPerformanceTypeItemProvider(this);
-		}
-
-		return endPerformanceTypeItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.IntermediatePerformanceType} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IntermediatePerformanceTypeItemProvider intermediatePerformanceTypeItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.IntermediatePerformanceType}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createIntermediatePerformanceTypeAdapter() {
-		if (intermediatePerformanceTypeItemProvider == null) {
-			intermediatePerformanceTypeItemProvider = new IntermediatePerformanceTypeItemProvider(this);
-		}
-
-		return intermediatePerformanceTypeItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.SdnNodePerformanceType} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected SdnNodePerformanceTypeItemProvider sdnNodePerformanceTypeItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.SdnNodePerformanceType}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createSdnNodePerformanceTypeAdapter() {
-		if (sdnNodePerformanceTypeItemProvider == null) {
-			sdnNodePerformanceTypeItemProvider = new SdnNodePerformanceTypeItemProvider(this);
-		}
-
-		return sdnNodePerformanceTypeItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.NetworkInterfaceType} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NetworkInterfaceTypeItemProvider networkInterfaceTypeItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.NetworkInterfaceType}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createNetworkInterfaceTypeAdapter() {
-		if (networkInterfaceTypeItemProvider == null) {
-			networkInterfaceTypeItemProvider = new NetworkInterfaceTypeItemProvider(this);
-		}
-
-		return networkInterfaceTypeItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.NetworkInterfacePerformanceType} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NetworkInterfacePerformanceTypeItemProvider networkInterfacePerformanceTypeItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.NetworkInterfacePerformanceType}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createNetworkInterfacePerformanceTypeAdapter() {
-		if (networkInterfacePerformanceTypeItemProvider == null) {
-			networkInterfacePerformanceTypeItemProvider = new NetworkInterfacePerformanceTypeItemProvider(this);
-		}
-
-		return networkInterfacePerformanceTypeItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.LinkType} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected LinkTypeItemProvider linkTypeItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.LinkType}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createLinkTypeAdapter() {
-		if (linkTypeItemProvider == null) {
-			linkTypeItemProvider = new LinkTypeItemProvider(this);
-		}
-
-		return linkTypeItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3.LinkPerformanceType} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected LinkPerformanceTypeItemProvider linkPerformanceTypeItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3.LinkPerformanceType}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createLinkPerformanceTypeAdapter() {
-		if (linkPerformanceTypeItemProvider == null) {
-			linkPerformanceTypeItemProvider = new LinkPerformanceTypeItemProvider(this);
-		}
-
-		return linkPerformanceTypeItemProvider;
-	}
-
-	/**
-	 * This returns the root adapter factory that contains this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ComposeableAdapterFactory getRootAdapterFactory() {
-		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
-	}
-
-	/**
-	 * This sets the composed adapter factory that contains this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
-		this.parentAdapterFactory = parentAdapterFactory;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean isFactoryForType(Object type) {
-		return supportedTypes.contains(type) || super.isFactoryForType(type);
-	}
-
-	/**
-	 * This implementation substitutes the factory itself as the key for the adapter.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter adapt(Notifier notifier, Object type) {
-		return super.adapt(notifier, this);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object adapt(Object object, Object type) {
-		if (isFactoryForType(type)) {
-			Object adapter = super.adapt(object, type);
-			if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
-				return adapter;
-			}
-		}
-
-		return null;
-	}
-
-	/**
-	 * This adds a listener.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void addListener(INotifyChangedListener notifyChangedListener) {
-		changeNotifier.addListener(notifyChangedListener);
-	}
-
-	/**
-	 * This removes a listener.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void removeListener(INotifyChangedListener notifyChangedListener) {
-		changeNotifier.removeListener(notifyChangedListener);
-	}
-
-	/**
-	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void fireNotifyChanged(Notification notification) {
-		changeNotifier.fireNotifyChanged(notification);
-
-		if (parentAdapterFactory != null) {
-			parentAdapterFactory.fireNotifyChanged(notification);
-		}
-	}
-
-	/**
-	 * This disposes all of the item providers created by this factory. 
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void dispose() {
-		if (networkInfrastructureItemProvider != null) networkInfrastructureItemProvider.dispose();
-		if (networkStructureItemProvider != null) networkStructureItemProvider.dispose();
-		if (nodeItemProvider != null) nodeItemProvider.dispose();
-		if (endItemProvider != null) endItemProvider.dispose();
-		if (intermediateItemProvider != null) intermediateItemProvider.dispose();
-		if (linkItemProvider != null) linkItemProvider.dispose();
-		if (networkInterfaceItemProvider != null) networkInterfaceItemProvider.dispose();
-		if (networkTrafficItemProvider != null) networkTrafficItemProvider.dispose();
-		if (flowItemProvider != null) flowItemProvider.dispose();
-		if (sdnControlFlowItemProvider != null) sdnControlFlowItemProvider.dispose();
-		if (genericFlowTrafficItemProvider != null) genericFlowTrafficItemProvider.dispose();
-		if (communicatingApplicationItemProvider != null) communicatingApplicationItemProvider.dispose();
-		if (trafficSourceItemProvider != null) trafficSourceItemProvider.dispose();
-		if (networkConfigurationItemProvider != null) networkConfigurationItemProvider.dispose();
-		if (protocolsRepositoryItemProvider != null) protocolsRepositoryItemProvider.dispose();
-		if (protocolStackItemProvider != null) protocolStackItemProvider.dispose();
-		if (protocolLayerItemProvider != null) protocolLayerItemProvider.dispose();
-		if (networkProtocolItemProvider != null) networkProtocolItemProvider.dispose();
-		if (routesRepositoryItemProvider != null) routesRepositoryItemProvider.dispose();
-		if (directionItemProvider != null) directionItemProvider.dispose();
-		if (flowRouteItemProvider != null) flowRouteItemProvider.dispose();
-		if (routeItemProvider != null) routeItemProvider.dispose();
-		if (hopItemProvider != null) hopItemProvider.dispose();
-		if (entityAddressItemProvider != null) entityAddressItemProvider.dispose();
-		if (genericWorkloadItemProvider != null) genericWorkloadItemProvider.dispose();
-		if (branchActionItemProvider != null) branchActionItemProvider.dispose();
-		if (loopActionItemProvider != null) loopActionItemProvider.dispose();
-		if (sequenceActionItemProvider != null) sequenceActionItemProvider.dispose();
-		if (startActionItemProvider != null) startActionItemProvider.dispose();
-		if (stopActionItemProvider != null) stopActionItemProvider.dispose();
-		if (transmitActionItemProvider != null) transmitActionItemProvider.dispose();
-		if (waitActionItemProvider != null) waitActionItemProvider.dispose();
-		if (performanceLinkItemProvider != null) performanceLinkItemProvider.dispose();
-		if (performanceNetworkInterfaceItemProvider != null) performanceNetworkInterfaceItemProvider.dispose();
-		if (sdnFlowRuleItemProvider != null) sdnFlowRuleItemProvider.dispose();
-		if (sdnControllerItemProvider != null) sdnControllerItemProvider.dispose();
-		if (sdnControllerApplicationItemProvider != null) sdnControllerApplicationItemProvider.dispose();
-		if (commonItemProvider != null) commonItemProvider.dispose();
-		if (sdnItemProvider != null) sdnItemProvider.dispose();
-		if (intermediatePerformanceItemProvider != null) intermediatePerformanceItemProvider.dispose();
-		if (endPerformanceItemProvider != null) endPerformanceItemProvider.dispose();
-		if (performanceSdnNodeItemProvider != null) performanceSdnNodeItemProvider.dispose();
-		if (speedUnitItemProvider != null) speedUnitItemProvider.dispose();
-		if (dataUnitItemProvider != null) dataUnitItemProvider.dispose();
-		if (timeUnitItemProvider != null) timeUnitItemProvider.dispose();
-		if (constantDoubleVariableItemProvider != null) constantDoubleVariableItemProvider.dispose();
-		if (constantLongVariableItemProvider != null) constantLongVariableItemProvider.dispose();
-		if (randomVariableItemProvider != null) randomVariableItemProvider.dispose();
-		if (floatCoordinateItemProvider != null) floatCoordinateItemProvider.dispose();
-		if (discreteFunctionItemProvider != null) discreteFunctionItemProvider.dispose();
-		if (exponentialFunctionItemProvider != null) exponentialFunctionItemProvider.dispose();
-		if (entityTypesItemProvider != null) entityTypesItemProvider.dispose();
-		if (nodeTypeItemProvider != null) nodeTypeItemProvider.dispose();
-		if (endPerformanceTypeItemProvider != null) endPerformanceTypeItemProvider.dispose();
-		if (intermediatePerformanceTypeItemProvider != null) intermediatePerformanceTypeItemProvider.dispose();
-		if (sdnNodePerformanceTypeItemProvider != null) sdnNodePerformanceTypeItemProvider.dispose();
-		if (networkInterfaceTypeItemProvider != null) networkInterfaceTypeItemProvider.dispose();
-		if (networkInterfacePerformanceTypeItemProvider != null) networkInterfacePerformanceTypeItemProvider.dispose();
-		if (linkTypeItemProvider != null) linkTypeItemProvider.dispose();
-		if (linkPerformanceTypeItemProvider != null) linkPerformanceTypeItemProvider.dispose();
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/DataUnitItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/DataUnitItemProvider.java
deleted file mode 100644
index c70a8cc3..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/DataUnitItemProvider.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.DataUnit;
-import tools.descartes.dni.dnimm3.UnitPrefix;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.DataUnit} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class DataUnitItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DataUnitItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addPrefixPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Prefix feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addPrefixPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_DataUnit_prefix_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_DataUnit_prefix_feature", "_UI_DataUnit_type"),
-				 DNIPackage.Literals.DATA_UNIT__PREFIX,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns DataUnit.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/DataUnit"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		UnitPrefix labelValue = ((DataUnit)object).getPrefix();
-		String label = labelValue == null ? null : labelValue.toString();
-		return label == null || label.length() == 0 ?
-			getString("_UI_DataUnit_type") :
-			getString("_UI_DataUnit_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(DataUnit.class)) {
-			case DNIPackage.DATA_UNIT__PREFIX:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/DirectionItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/DirectionItemProvider.java
deleted file mode 100644
index 9ff7ded6..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/DirectionItemProvider.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Direction;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.Direction} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class DirectionItemProvider extends IdentifierItemProvider {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DirectionItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addOnNodePropertyDescriptor(object);
-			addFlowPropertyDescriptor(object);
-			addViaPropertyDescriptor(object);
-			addDefaultPropertyDescriptor(object);
-			addProbabilityPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the On Node feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addOnNodePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Direction_onNode_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Direction_onNode_feature", "_UI_Direction_type"),
-				 DNIPackage.Literals.DIRECTION__ON_NODE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Flow feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addFlowPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Direction_flow_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Direction_flow_feature", "_UI_Direction_type"),
-				 DNIPackage.Literals.DIRECTION__FLOW,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Via feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addViaPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Direction_via_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Direction_via_feature", "_UI_Direction_type"),
-				 DNIPackage.Literals.DIRECTION__VIA,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Default feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDefaultPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Direction_default_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Direction_default_feature", "_UI_Direction_type"),
-				 DNIPackage.Literals.DIRECTION__DEFAULT,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Probability feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addProbabilityPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Direction_probability_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Direction_probability_feature", "_UI_Direction_type"),
-				 DNIPackage.Literals.DIRECTION__PROBABILITY,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.REAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns Direction.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/Direction"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((Direction)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_Direction_type") :
-			getString("_UI_Direction_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(Direction.class)) {
-			case DNIPackage.DIRECTION__NAME:
-			case DNIPackage.DIRECTION__DESCRIPTION:
-			case DNIPackage.DIRECTION__DEFAULT:
-			case DNIPackage.DIRECTION__PROBABILITY:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/DiscreteFunctionItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/DiscreteFunctionItemProvider.java
deleted file mode 100644
index 4c3e0b15..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/DiscreteFunctionItemProvider.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.DiscreteFunction;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.DiscreteFunction} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class DiscreteFunctionItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DiscreteFunctionItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.DEPENDENCY__UNIT);
-			childrenFeatures.add(DNIPackage.Literals.DISCRETE_FUNCTION__VALS);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns DiscreteFunction.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/DiscreteFunction"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_DiscreteFunction_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(DiscreteFunction.class)) {
-			case DNIPackage.DISCRETE_FUNCTION__UNIT:
-			case DNIPackage.DISCRETE_FUNCTION__VALS:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.DEPENDENCY__UNIT,
-				 DNIFactory.eINSTANCE.createSpeedUnit()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.DEPENDENCY__UNIT,
-				 DNIFactory.eINSTANCE.createDataUnit()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.DEPENDENCY__UNIT,
-				 DNIFactory.eINSTANCE.createTimeUnit()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.DISCRETE_FUNCTION__VALS,
-				 DNIFactory.eINSTANCE.createFloatCoordinate()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/Dnimm3EditPlugin.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/Dnimm3EditPlugin.java
deleted file mode 100644
index ffe8942d..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/Dnimm3EditPlugin.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-import org.eclipse.emf.common.EMFPlugin;
-
-import org.eclipse.emf.common.ui.EclipseUIPlugin;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-/**
- * This is the central singleton for the Dnimm3 editor plugin.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public final class Dnimm3EditPlugin extends EMFPlugin {
-	/**
-	 * Keep track of the singleton.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final Dnimm3EditPlugin INSTANCE = new Dnimm3EditPlugin();
-	
-	/**
-	 * Keep track of the singleton.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static Implementation plugin;
-
-	/**
-	 * Create the instance.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Dnimm3EditPlugin() {
-		super
-			(new ResourceLocator [] {
-			});
-	}
-
-	/**
-	 * Returns the singleton instance of the Eclipse plugin.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the singleton instance.
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getPluginResourceLocator() {
-		return plugin;
-	}
-	
-	/**
-	 * Returns the singleton instance of the Eclipse plugin.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the singleton instance.
-	 * @generated
-	 */
-	public static Implementation getPlugin() {
-		return plugin;
-	}
-	
-	/**
-	 * The actual implementation of the Eclipse <b>Plugin</b>.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static class Implementation extends EclipseUIPlugin {
-		/**
-		 * Creates an instance.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public Implementation() {
-			super();
-	
-			// Remember the static instance.
-			//
-			plugin = this;
-		}
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/EndItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/EndItemProvider.java
deleted file mode 100644
index 914ef43a..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/EndItemProvider.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.End;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.End} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class EndItemProvider extends IdentifierItemProvider {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EndItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addSoftwarePropertyDescriptor(object);
-			addNodePropertyDescriptor(object);
-			addNamePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Software feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addSoftwarePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_End_software_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_End_software_feature", "_UI_End_type"),
-				 DNIPackage.Literals.END__SOFTWARE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Node feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNodePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_End_node_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_End_node_feature", "_UI_End_type"),
-				 DNIPackage.Literals.END__NODE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_End_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_End_name_feature", "_UI_End_type"),
-				 DNIPackage.Literals.END__NAME,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.END__PERFORMANCE);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns End.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/End"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((End)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_End_type") :
-			getString("_UI_End_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(End.class)) {
-			case DNIPackage.END__NAME:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case DNIPackage.END__PERFORMANCE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.END__PERFORMANCE,
-				 DNIFactory.eINSTANCE.createEndPerformance()));
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/EndPerformanceItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/EndPerformanceItemProvider.java
deleted file mode 100644
index c699b303..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/EndPerformanceItemProvider.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.EndPerformance;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.EndPerformance} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class EndPerformanceItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EndPerformanceItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addEntityTypePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Entity Type feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntityTypePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_EndPerformance_entityType_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_EndPerformance_entityType_feature", "_UI_EndPerformance_type"),
-				 DNIPackage.Literals.END_PERFORMANCE__ENTITY_TYPE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.END_PERFORMANCE__SOFTWARE_LAYERS_DELAY);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns EndPerformance.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/EndPerformance"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_EndPerformance_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(EndPerformance.class)) {
-			case DNIPackage.END_PERFORMANCE__SOFTWARE_LAYERS_DELAY:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.END_PERFORMANCE__SOFTWARE_LAYERS_DELAY,
-				 DNIFactory.eINSTANCE.createConstantDoubleVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.END_PERFORMANCE__SOFTWARE_LAYERS_DELAY,
-				 DNIFactory.eINSTANCE.createConstantLongVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.END_PERFORMANCE__SOFTWARE_LAYERS_DELAY,
-				 DNIFactory.eINSTANCE.createRandomVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.END_PERFORMANCE__SOFTWARE_LAYERS_DELAY,
-				 DNIFactory.eINSTANCE.createDiscreteFunction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.END_PERFORMANCE__SOFTWARE_LAYERS_DELAY,
-				 DNIFactory.eINSTANCE.createExponentialFunction()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/EndPerformanceTypeItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/EndPerformanceTypeItemProvider.java
deleted file mode 100644
index 1cd8017a..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/EndPerformanceTypeItemProvider.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.EndPerformanceType;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.EndPerformanceType} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class EndPerformanceTypeItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EndPerformanceTypeItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addUidPropertyDescriptor(object);
-			addUid_generatedPropertyDescriptor(object);
-			addEntitiesPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUidPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid generated feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUid_generatedPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_generated_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_generated_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID_GENERATED,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Entities feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntitiesPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_EndPerformanceType_entities_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_EndPerformanceType_entities_feature", "_UI_EndPerformanceType_type"),
-				 DNIPackage.Literals.END_PERFORMANCE_TYPE__ENTITIES,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns EndPerformanceType.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/EndPerformanceType"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((EndPerformanceType)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_EndPerformanceType_type") :
-			getString("_UI_EndPerformanceType_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(EndPerformanceType.class)) {
-			case DNIPackage.END_PERFORMANCE_TYPE__NAME:
-			case DNIPackage.END_PERFORMANCE_TYPE__DESCRIPTION:
-			case DNIPackage.END_PERFORMANCE_TYPE__UID:
-			case DNIPackage.END_PERFORMANCE_TYPE__UID_GENERATED:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/EntityAddressItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/EntityAddressItemProvider.java
deleted file mode 100644
index b6d18f58..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/EntityAddressItemProvider.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.EntityAddress;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.EntityAddress} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class EntityAddressItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EntityAddressItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addAddressPropertyDescriptor(object);
-			addAddressGivenByPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Address feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addAddressPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_EntityAddress_address_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_EntityAddress_address_feature", "_UI_EntityAddress_type"),
-				 DNIPackage.Literals.ENTITY_ADDRESS__ADDRESS,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Address Given By feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addAddressGivenByPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_EntityAddress_addressGivenBy_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_EntityAddress_addressGivenBy_feature", "_UI_EntityAddress_type"),
-				 DNIPackage.Literals.ENTITY_ADDRESS__ADDRESS_GIVEN_BY,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns EntityAddress.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/EntityAddress"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((EntityAddress)object).getAddress();
-		return label == null || label.length() == 0 ?
-			getString("_UI_EntityAddress_type") :
-			getString("_UI_EntityAddress_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(EntityAddress.class)) {
-			case DNIPackage.ENTITY_ADDRESS__ADDRESS:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/EntityTypesItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/EntityTypesItemProvider.java
deleted file mode 100644
index 15096cc1..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/EntityTypesItemProvider.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.EntityTypes;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.EntityTypes} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class EntityTypesItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EntityTypesItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.ENTITY_TYPES__TYPES);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns EntityTypes.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/EntityTypes"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_EntityTypes_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(EntityTypes.class)) {
-			case DNIPackage.ENTITY_TYPES__TYPES:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.ENTITY_TYPES__TYPES,
-				 DNIFactory.eINSTANCE.createNodeType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.ENTITY_TYPES__TYPES,
-				 DNIFactory.eINSTANCE.createEndPerformanceType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.ENTITY_TYPES__TYPES,
-				 DNIFactory.eINSTANCE.createIntermediatePerformanceType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.ENTITY_TYPES__TYPES,
-				 DNIFactory.eINSTANCE.createSdnNodePerformanceType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.ENTITY_TYPES__TYPES,
-				 DNIFactory.eINSTANCE.createNetworkInterfaceType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.ENTITY_TYPES__TYPES,
-				 DNIFactory.eINSTANCE.createNetworkInterfacePerformanceType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.ENTITY_TYPES__TYPES,
-				 DNIFactory.eINSTANCE.createLinkType()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.ENTITY_TYPES__TYPES,
-				 DNIFactory.eINSTANCE.createLinkPerformanceType()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ExponentialFunctionItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ExponentialFunctionItemProvider.java
deleted file mode 100644
index c5f511f4..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ExponentialFunctionItemProvider.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.ExponentialFunction;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.ExponentialFunction} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class ExponentialFunctionItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ExponentialFunctionItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addLambdaPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Lambda feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addLambdaPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_ExponentialFunction_lambda_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_ExponentialFunction_lambda_feature", "_UI_ExponentialFunction_type"),
-				 DNIPackage.Literals.EXPONENTIAL_FUNCTION__LAMBDA,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.REAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.DEPENDENCY__UNIT);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns ExponentialFunction.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/ExponentialFunction"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		ExponentialFunction exponentialFunction = (ExponentialFunction)object;
-		return getString("_UI_ExponentialFunction_type") + " " + exponentialFunction.getLambda();
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(ExponentialFunction.class)) {
-			case DNIPackage.EXPONENTIAL_FUNCTION__LAMBDA:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case DNIPackage.EXPONENTIAL_FUNCTION__UNIT:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.DEPENDENCY__UNIT,
-				 DNIFactory.eINSTANCE.createSpeedUnit()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.DEPENDENCY__UNIT,
-				 DNIFactory.eINSTANCE.createDataUnit()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.DEPENDENCY__UNIT,
-				 DNIFactory.eINSTANCE.createTimeUnit()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/FloatCoordinateItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/FloatCoordinateItemProvider.java
deleted file mode 100644
index 5ab7297d..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/FloatCoordinateItemProvider.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.FloatCoordinate;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.FloatCoordinate} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class FloatCoordinateItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public FloatCoordinateItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addXPropertyDescriptor(object);
-			addYPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the X feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addXPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_FloatCoordinate_x_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_FloatCoordinate_x_feature", "_UI_FloatCoordinate_type"),
-				 DNIPackage.Literals.FLOAT_COORDINATE__X,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.REAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Y feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addYPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_FloatCoordinate_y_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_FloatCoordinate_y_feature", "_UI_FloatCoordinate_type"),
-				 DNIPackage.Literals.FLOAT_COORDINATE__Y,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.REAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns FloatCoordinate.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/FloatCoordinate"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		FloatCoordinate floatCoordinate = (FloatCoordinate)object;
-		return getString("_UI_FloatCoordinate_type") + " " + floatCoordinate.getX();
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(FloatCoordinate.class)) {
-			case DNIPackage.FLOAT_COORDINATE__X:
-			case DNIPackage.FLOAT_COORDINATE__Y:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/FlowItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/FlowItemProvider.java
deleted file mode 100644
index 9239b47c..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/FlowItemProvider.java
+++ /dev/null
@@ -1,250 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Flow;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.Flow} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class FlowItemProvider extends IdentifierItemProvider {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public FlowItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addSourceSoftwarePropertyDescriptor(object);
-			addDestinationSoftwarePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Source Software feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addSourceSoftwarePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Flow_sourceSoftware_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Flow_sourceSoftware_feature", "_UI_Flow_type"),
-				 DNIPackage.Literals.FLOW__SOURCE_SOFTWARE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Destination Software feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDestinationSoftwarePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Flow_destinationSoftware_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Flow_destinationSoftware_feature", "_UI_Flow_type"),
-				 DNIPackage.Literals.FLOW__DESTINATION_SOFTWARE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.FLOW__GENERATED_TRAFFIC);
-			childrenFeatures.add(DNIPackage.Literals.FLOW__DESTINATION_ADDRESSES);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns Flow.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/Flow"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((Flow)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_Flow_type") :
-			getString("_UI_Flow_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(Flow.class)) {
-			case DNIPackage.FLOW__NAME:
-			case DNIPackage.FLOW__DESCRIPTION:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case DNIPackage.FLOW__GENERATED_TRAFFIC:
-			case DNIPackage.FLOW__DESTINATION_ADDRESSES:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.FLOW__GENERATED_TRAFFIC,
-				 DNIFactory.eINSTANCE.createGenericFlowTraffic()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.FLOW__DESTINATION_ADDRESSES,
-				 DNIFactory.eINSTANCE.createEntityAddress()));
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/FlowRouteItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/FlowRouteItemProvider.java
deleted file mode 100644
index 5d5c48d9..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/FlowRouteItemProvider.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.FlowRoute;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.FlowRoute} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class FlowRouteItemProvider extends IdentifierItemProvider {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public FlowRouteItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addFlowPropertyDescriptor(object);
-			addStartPropertyDescriptor(object);
-			addEndPropertyDescriptor(object);
-			addProbabilityPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Flow feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addFlowPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_FlowRoute_flow_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_FlowRoute_flow_feature", "_UI_FlowRoute_type"),
-				 DNIPackage.Literals.FLOW_ROUTE__FLOW,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Start feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addStartPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_FlowRoute_start_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_FlowRoute_start_feature", "_UI_FlowRoute_type"),
-				 DNIPackage.Literals.FLOW_ROUTE__START,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the End feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEndPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_FlowRoute_end_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_FlowRoute_end_feature", "_UI_FlowRoute_type"),
-				 DNIPackage.Literals.FLOW_ROUTE__END,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Probability feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addProbabilityPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_FlowRoute_probability_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_FlowRoute_probability_feature", "_UI_FlowRoute_type"),
-				 DNIPackage.Literals.FLOW_ROUTE__PROBABILITY,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.REAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.FLOW_ROUTE__HOPS);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns FlowRoute.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/FlowRoute"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((FlowRoute)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_FlowRoute_type") :
-			getString("_UI_FlowRoute_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(FlowRoute.class)) {
-			case DNIPackage.FLOW_ROUTE__NAME:
-			case DNIPackage.FLOW_ROUTE__DESCRIPTION:
-			case DNIPackage.FLOW_ROUTE__PROBABILITY:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case DNIPackage.FLOW_ROUTE__HOPS:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.FLOW_ROUTE__HOPS,
-				 DNIFactory.eINSTANCE.createHop()));
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/FlowTrafficItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/FlowTrafficItemProvider.java
deleted file mode 100644
index c3403475..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/FlowTrafficItemProvider.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.FlowTraffic;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.FlowTraffic} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class FlowTrafficItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public FlowTrafficItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addFlowPropertyDescriptor(object);
-			addNamePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Flow feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addFlowPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_FlowTraffic_flow_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_FlowTraffic_flow_feature", "_UI_FlowTraffic_type"),
-				 DNIPackage.Literals.FLOW_TRAFFIC__FLOW,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_FlowTraffic_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_FlowTraffic_name_feature", "_UI_FlowTraffic_type"),
-				 DNIPackage.Literals.FLOW_TRAFFIC__NAME,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((FlowTraffic)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_FlowTraffic_type") :
-			getString("_UI_FlowTraffic_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(FlowTraffic.class)) {
-			case DNIPackage.FLOW_TRAFFIC__NAME:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/GenericFlowTrafficItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/GenericFlowTrafficItemProvider.java
deleted file mode 100644
index 4bc51693..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/GenericFlowTrafficItemProvider.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.GenericFlowTraffic;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.GenericFlowTraffic} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class GenericFlowTrafficItemProvider extends FlowTrafficItemProvider {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public GenericFlowTrafficItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.GENERIC_FLOW_TRAFFIC__DATA_SIZE);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns GenericFlowTraffic.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/GenericFlowTraffic"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((GenericFlowTraffic)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_GenericFlowTraffic_type") :
-			getString("_UI_GenericFlowTraffic_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(GenericFlowTraffic.class)) {
-			case DNIPackage.GENERIC_FLOW_TRAFFIC__DATA_SIZE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.GENERIC_FLOW_TRAFFIC__DATA_SIZE,
-				 DNIFactory.eINSTANCE.createConstantDoubleVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.GENERIC_FLOW_TRAFFIC__DATA_SIZE,
-				 DNIFactory.eINSTANCE.createConstantLongVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.GENERIC_FLOW_TRAFFIC__DATA_SIZE,
-				 DNIFactory.eINSTANCE.createRandomVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.GENERIC_FLOW_TRAFFIC__DATA_SIZE,
-				 DNIFactory.eINSTANCE.createDiscreteFunction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.GENERIC_FLOW_TRAFFIC__DATA_SIZE,
-				 DNIFactory.eINSTANCE.createExponentialFunction()));
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/GenericWorkloadItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/GenericWorkloadItemProvider.java
deleted file mode 100644
index 9b73ef32..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/GenericWorkloadItemProvider.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.GenericWorkload;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.GenericWorkload} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class GenericWorkloadItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public GenericWorkloadItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.GENERIC_WORKLOAD__ACTIONS);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns GenericWorkload.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/GenericWorkload"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_GenericWorkload_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(GenericWorkload.class)) {
-			case DNIPackage.GENERIC_WORKLOAD__ACTIONS:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.GENERIC_WORKLOAD__ACTIONS,
-				 DNIFactory.eINSTANCE.createBranchAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.GENERIC_WORKLOAD__ACTIONS,
-				 DNIFactory.eINSTANCE.createLoopAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.GENERIC_WORKLOAD__ACTIONS,
-				 DNIFactory.eINSTANCE.createSequenceAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.GENERIC_WORKLOAD__ACTIONS,
-				 DNIFactory.eINSTANCE.createStartAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.GENERIC_WORKLOAD__ACTIONS,
-				 DNIFactory.eINSTANCE.createStopAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.GENERIC_WORKLOAD__ACTIONS,
-				 DNIFactory.eINSTANCE.createTransmitAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.GENERIC_WORKLOAD__ACTIONS,
-				 DNIFactory.eINSTANCE.createWaitAction()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/HopItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/HopItemProvider.java
deleted file mode 100644
index 9657afda..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/HopItemProvider.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Hop;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.Hop} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class HopItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public HopItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addInterfacerefPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Interfaceref feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addInterfacerefPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Hop_interfaceref_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Hop_interfaceref_feature", "_UI_Hop_type"),
-				 DNIPackage.Literals.HOP__INTERFACEREF,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.HOP__NEXT_HOP);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns Hop.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/Hop"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_Hop_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(Hop.class)) {
-			case DNIPackage.HOP__NEXT_HOP:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.HOP__NEXT_HOP,
-				 DNIFactory.eINSTANCE.createHop()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/IdentifierItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/IdentifierItemProvider.java
deleted file mode 100644
index 976d65ec..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/IdentifierItemProvider.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Identifier;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.Identifier} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class IdentifierItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IdentifierItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addUidPropertyDescriptor(object);
-			addUid_generatedPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUidPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid generated feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUid_generatedPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_generated_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_generated_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID_GENERATED,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((Identifier)object).getUid();
-		return label == null || label.length() == 0 ?
-			getString("_UI_Identifier_type") :
-			getString("_UI_Identifier_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(Identifier.class)) {
-			case DNIPackage.IDENTIFIER__UID:
-			case DNIPackage.IDENTIFIER__UID_GENERATED:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/IntermediateItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/IntermediateItemProvider.java
deleted file mode 100644
index 820de6dd..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/IntermediateItemProvider.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Intermediate;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.Intermediate} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class IntermediateItemProvider extends IdentifierItemProvider {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IntermediateItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNodePropertyDescriptor(object);
-			addNamePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Node feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNodePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Intermediate_node_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Intermediate_node_feature", "_UI_Intermediate_type"),
-				 DNIPackage.Literals.INTERMEDIATE__NODE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Intermediate_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Intermediate_name_feature", "_UI_Intermediate_type"),
-				 DNIPackage.Literals.INTERMEDIATE__NAME,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.INTERMEDIATE__PERFORMANCE);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns Intermediate.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/Intermediate"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((Intermediate)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_Intermediate_type") :
-			getString("_UI_Intermediate_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(Intermediate.class)) {
-			case DNIPackage.INTERMEDIATE__NAME:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case DNIPackage.INTERMEDIATE__PERFORMANCE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.INTERMEDIATE__PERFORMANCE,
-				 DNIFactory.eINSTANCE.createIntermediatePerformance()));
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/IntermediatePerformanceItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/IntermediatePerformanceItemProvider.java
deleted file mode 100644
index eca30900..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/IntermediatePerformanceItemProvider.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.IntermediatePerformance;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.IntermediatePerformance} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class IntermediatePerformanceItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IntermediatePerformanceItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addEntityTypePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Entity Type feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntityTypePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_IntermediatePerformance_entityType_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_IntermediatePerformance_entityType_feature", "_UI_IntermediatePerformance_type"),
-				 DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__ENTITY_TYPE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY);
-			childrenFeatures.add(DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS);
-			childrenFeatures.add(DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns IntermediatePerformance.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/IntermediatePerformance"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_IntermediatePerformance_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(IntermediatePerformance.class)) {
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY:
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS:
-			case DNIPackage.INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY,
-				 DNIFactory.eINSTANCE.createConstantDoubleVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY,
-				 DNIFactory.eINSTANCE.createConstantLongVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY,
-				 DNIFactory.eINSTANCE.createRandomVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY,
-				 DNIFactory.eINSTANCE.createDiscreteFunction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY,
-				 DNIFactory.eINSTANCE.createExponentialFunction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS,
-				 DNIFactory.eINSTANCE.createConstantDoubleVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS,
-				 DNIFactory.eINSTANCE.createConstantLongVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS,
-				 DNIFactory.eINSTANCE.createRandomVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS,
-				 DNIFactory.eINSTANCE.createDiscreteFunction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS,
-				 DNIFactory.eINSTANCE.createExponentialFunction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS,
-				 DNIFactory.eINSTANCE.createConstantDoubleVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS,
-				 DNIFactory.eINSTANCE.createConstantLongVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS,
-				 DNIFactory.eINSTANCE.createRandomVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS,
-				 DNIFactory.eINSTANCE.createDiscreteFunction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS,
-				 DNIFactory.eINSTANCE.createExponentialFunction()));
-	}
-
-	/**
-	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
-		Object childFeature = feature;
-		Object childObject = child;
-
-		boolean qualify =
-			childFeature == DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__FORWARDING_LATENCY ||
-			childFeature == DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__FORWARDING_BANDWIDTH_BPS ||
-			childFeature == DNIPackage.Literals.INTERMEDIATE_PERFORMANCE__SWITCHING_CAPACITY_PPS;
-
-		if (qualify) {
-			return getString
-				("_UI_CreateChild_text2",
-				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
-		}
-		return super.getCreateChildText(owner, feature, child, selection);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/IntermediatePerformanceTypeItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/IntermediatePerformanceTypeItemProvider.java
deleted file mode 100644
index 625c646b..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/IntermediatePerformanceTypeItemProvider.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.IntermediatePerformanceType;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.IntermediatePerformanceType} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class IntermediatePerformanceTypeItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IntermediatePerformanceTypeItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addUidPropertyDescriptor(object);
-			addUid_generatedPropertyDescriptor(object);
-			addEntitiesPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUidPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid generated feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUid_generatedPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_generated_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_generated_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID_GENERATED,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Entities feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntitiesPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_IntermediatePerformanceType_entities_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_IntermediatePerformanceType_entities_feature", "_UI_IntermediatePerformanceType_type"),
-				 DNIPackage.Literals.INTERMEDIATE_PERFORMANCE_TYPE__ENTITIES,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns IntermediatePerformanceType.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/IntermediatePerformanceType"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((IntermediatePerformanceType)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_IntermediatePerformanceType_type") :
-			getString("_UI_IntermediatePerformanceType_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(IntermediatePerformanceType.class)) {
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__NAME:
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__DESCRIPTION:
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__UID:
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE__UID_GENERATED:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/LinkItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/LinkItemProvider.java
deleted file mode 100644
index 47a39843..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/LinkItemProvider.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Link;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.Link} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class LinkItemProvider extends IdentifierItemProvider {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LinkItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addConnectsPropertyDescriptor(object);
-			addName_generatedPropertyDescriptor(object);
-			addEntityTypePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Connects feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addConnectsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Link_connects_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Link_connects_feature", "_UI_Link_type"),
-				 DNIPackage.Literals.LINK__CONNECTS,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Name generated feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addName_generatedPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Link_name_generated_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Link_name_generated_feature", "_UI_Link_type"),
-				 DNIPackage.Literals.LINK__NAME_GENERATED,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Entity Type feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntityTypePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Link_entityType_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Link_entityType_feature", "_UI_Link_type"),
-				 DNIPackage.Literals.LINK__ENTITY_TYPE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.LINK__PERFORMANCE);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns Link.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/Link"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((Link)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_Link_type") :
-			getString("_UI_Link_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(Link.class)) {
-			case DNIPackage.LINK__NAME:
-			case DNIPackage.LINK__DESCRIPTION:
-			case DNIPackage.LINK__NAME_GENERATED:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case DNIPackage.LINK__PERFORMANCE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.LINK__PERFORMANCE,
-				 DNIFactory.eINSTANCE.createPerformanceLink()));
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/LinkPerformanceTypeItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/LinkPerformanceTypeItemProvider.java
deleted file mode 100644
index 930305b9..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/LinkPerformanceTypeItemProvider.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.LinkPerformanceType;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.LinkPerformanceType} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class LinkPerformanceTypeItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LinkPerformanceTypeItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addUidPropertyDescriptor(object);
-			addUid_generatedPropertyDescriptor(object);
-			addEntitiesPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUidPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid generated feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUid_generatedPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_generated_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_generated_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID_GENERATED,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Entities feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntitiesPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_LinkPerformanceType_entities_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_LinkPerformanceType_entities_feature", "_UI_LinkPerformanceType_type"),
-				 DNIPackage.Literals.LINK_PERFORMANCE_TYPE__ENTITIES,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns LinkPerformanceType.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/LinkPerformanceType"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((LinkPerformanceType)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_LinkPerformanceType_type") :
-			getString("_UI_LinkPerformanceType_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(LinkPerformanceType.class)) {
-			case DNIPackage.LINK_PERFORMANCE_TYPE__NAME:
-			case DNIPackage.LINK_PERFORMANCE_TYPE__DESCRIPTION:
-			case DNIPackage.LINK_PERFORMANCE_TYPE__UID:
-			case DNIPackage.LINK_PERFORMANCE_TYPE__UID_GENERATED:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/LinkTypeItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/LinkTypeItemProvider.java
deleted file mode 100644
index 50dcc475..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/LinkTypeItemProvider.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.LinkType;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.LinkType} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class LinkTypeItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LinkTypeItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addUidPropertyDescriptor(object);
-			addUid_generatedPropertyDescriptor(object);
-			addEntitiesPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUidPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid generated feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUid_generatedPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_generated_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_generated_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID_GENERATED,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Entities feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntitiesPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_LinkType_entities_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_LinkType_entities_feature", "_UI_LinkType_type"),
-				 DNIPackage.Literals.LINK_TYPE__ENTITIES,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns LinkType.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/LinkType"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((LinkType)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_LinkType_type") :
-			getString("_UI_LinkType_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(LinkType.class)) {
-			case DNIPackage.LINK_TYPE__NAME:
-			case DNIPackage.LINK_TYPE__DESCRIPTION:
-			case DNIPackage.LINK_TYPE__UID:
-			case DNIPackage.LINK_TYPE__UID_GENERATED:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/LoopActionItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/LoopActionItemProvider.java
deleted file mode 100644
index 4e4b62f6..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/LoopActionItemProvider.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.LoopAction;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.LoopAction} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class LoopActionItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LoopActionItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.LOOP_ACTION__INTERN);
-			childrenFeatures.add(DNIPackage.Literals.LOOP_ACTION__NUM_ITERATIONS);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns LoopAction.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/LoopAction"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_LoopAction_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(LoopAction.class)) {
-			case DNIPackage.LOOP_ACTION__INTERN:
-			case DNIPackage.LOOP_ACTION__NUM_ITERATIONS:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.LOOP_ACTION__INTERN,
-				 DNIFactory.eINSTANCE.createBranchAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.LOOP_ACTION__INTERN,
-				 DNIFactory.eINSTANCE.createLoopAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.LOOP_ACTION__INTERN,
-				 DNIFactory.eINSTANCE.createSequenceAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.LOOP_ACTION__INTERN,
-				 DNIFactory.eINSTANCE.createStartAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.LOOP_ACTION__INTERN,
-				 DNIFactory.eINSTANCE.createStopAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.LOOP_ACTION__INTERN,
-				 DNIFactory.eINSTANCE.createTransmitAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.LOOP_ACTION__INTERN,
-				 DNIFactory.eINSTANCE.createWaitAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.LOOP_ACTION__NUM_ITERATIONS,
-				 DNIFactory.eINSTANCE.createConstantDoubleVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.LOOP_ACTION__NUM_ITERATIONS,
-				 DNIFactory.eINSTANCE.createConstantLongVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.LOOP_ACTION__NUM_ITERATIONS,
-				 DNIFactory.eINSTANCE.createRandomVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.LOOP_ACTION__NUM_ITERATIONS,
-				 DNIFactory.eINSTANCE.createDiscreteFunction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.LOOP_ACTION__NUM_ITERATIONS,
-				 DNIFactory.eINSTANCE.createExponentialFunction()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkConfigurationItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkConfigurationItemProvider.java
deleted file mode 100644
index 7269b39f..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkConfigurationItemProvider.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.NetworkConfiguration;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.NetworkConfiguration} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class NetworkConfigurationItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkConfigurationItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.NETWORK_CONFIGURATION__PROTOCOLS_AND_STACKS);
-			childrenFeatures.add(DNIPackage.Literals.NETWORK_CONFIGURATION__ROUTES);
-			childrenFeatures.add(DNIPackage.Literals.NETWORK_CONFIGURATION__RULES);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns NetworkConfiguration.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/NetworkConfiguration"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_NetworkConfiguration_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(NetworkConfiguration.class)) {
-			case DNIPackage.NETWORK_CONFIGURATION__PROTOCOLS_AND_STACKS:
-			case DNIPackage.NETWORK_CONFIGURATION__ROUTES:
-			case DNIPackage.NETWORK_CONFIGURATION__RULES:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.NETWORK_CONFIGURATION__PROTOCOLS_AND_STACKS,
-				 DNIFactory.eINSTANCE.createProtocolsRepository()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.NETWORK_CONFIGURATION__ROUTES,
-				 DNIFactory.eINSTANCE.createRoutesRepository()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.NETWORK_CONFIGURATION__RULES,
-				 DNIFactory.eINSTANCE.createSdnFlowRule()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkInfrastructureItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkInfrastructureItemProvider.java
deleted file mode 100644
index 8dfb8568..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkInfrastructureItemProvider.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.NetworkInfrastructure;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.NetworkInfrastructure} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class NetworkInfrastructureItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInfrastructureItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addDataCenterNamePropertyDescriptor(object);
-			addMetaModelVersionPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Data Center Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDataCenterNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NetworkInfrastructure_dataCenterName_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NetworkInfrastructure_dataCenterName_feature", "_UI_NetworkInfrastructure_type"),
-				 DNIPackage.Literals.NETWORK_INFRASTRUCTURE__DATA_CENTER_NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Meta Model Version feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addMetaModelVersionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NetworkInfrastructure_metaModelVersion_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NetworkInfrastructure_metaModelVersion_feature", "_UI_NetworkInfrastructure_type"),
-				 DNIPackage.Literals.NETWORK_INFRASTRUCTURE__META_MODEL_VERSION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.NETWORK_INFRASTRUCTURE__TRAFFIC);
-			childrenFeatures.add(DNIPackage.Literals.NETWORK_INFRASTRUCTURE__STRUCTURE);
-			childrenFeatures.add(DNIPackage.Literals.NETWORK_INFRASTRUCTURE__CONFIGURATION);
-			childrenFeatures.add(DNIPackage.Literals.NETWORK_INFRASTRUCTURE__ENTITY_TYPES);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns NetworkInfrastructure.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/NetworkInfrastructure"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((NetworkInfrastructure)object).getDataCenterName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_NetworkInfrastructure_type") :
-			getString("_UI_NetworkInfrastructure_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(NetworkInfrastructure.class)) {
-			case DNIPackage.NETWORK_INFRASTRUCTURE__DATA_CENTER_NAME:
-			case DNIPackage.NETWORK_INFRASTRUCTURE__META_MODEL_VERSION:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case DNIPackage.NETWORK_INFRASTRUCTURE__TRAFFIC:
-			case DNIPackage.NETWORK_INFRASTRUCTURE__STRUCTURE:
-			case DNIPackage.NETWORK_INFRASTRUCTURE__CONFIGURATION:
-			case DNIPackage.NETWORK_INFRASTRUCTURE__ENTITY_TYPES:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.NETWORK_INFRASTRUCTURE__TRAFFIC,
-				 DNIFactory.eINSTANCE.createNetworkTraffic()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.NETWORK_INFRASTRUCTURE__STRUCTURE,
-				 DNIFactory.eINSTANCE.createNetworkStructure()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.NETWORK_INFRASTRUCTURE__CONFIGURATION,
-				 DNIFactory.eINSTANCE.createNetworkConfiguration()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.NETWORK_INFRASTRUCTURE__ENTITY_TYPES,
-				 DNIFactory.eINSTANCE.createEntityTypes()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkInterfaceItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkInterfaceItemProvider.java
deleted file mode 100644
index 64131d3a..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkInterfaceItemProvider.java
+++ /dev/null
@@ -1,371 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.NetworkInterface;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.NetworkInterface} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class NetworkInterfaceItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterfaceItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addUidPropertyDescriptor(object);
-			addUid_generatedPropertyDescriptor(object);
-			addUsedProtocolStackPropertyDescriptor(object);
-			addNodePropertyDescriptor(object);
-			addName_generatedPropertyDescriptor(object);
-			addEntityTypePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUidPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid generated feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUid_generatedPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_generated_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_generated_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID_GENERATED,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Used Protocol Stack feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUsedProtocolStackPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NetworkInterface_usedProtocolStack_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NetworkInterface_usedProtocolStack_feature", "_UI_NetworkInterface_type"),
-				 DNIPackage.Literals.NETWORK_INTERFACE__USED_PROTOCOL_STACK,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Node feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNodePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NetworkInterface_node_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NetworkInterface_node_feature", "_UI_NetworkInterface_type"),
-				 DNIPackage.Literals.NETWORK_INTERFACE__NODE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Name generated feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addName_generatedPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NetworkInterface_name_generated_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NetworkInterface_name_generated_feature", "_UI_NetworkInterface_type"),
-				 DNIPackage.Literals.NETWORK_INTERFACE__NAME_GENERATED,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Entity Type feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntityTypePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NetworkInterface_entityType_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NetworkInterface_entityType_feature", "_UI_NetworkInterface_type"),
-				 DNIPackage.Literals.NETWORK_INTERFACE__ENTITY_TYPE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.ADDRESSABLE_ENTITY__ADDRESSES);
-			childrenFeatures.add(DNIPackage.Literals.NETWORK_INTERFACE__PERFORMANCE);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns NetworkInterface.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/NetworkInterface"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((NetworkInterface)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_NetworkInterface_type") :
-			getString("_UI_NetworkInterface_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(NetworkInterface.class)) {
-			case DNIPackage.NETWORK_INTERFACE__NAME:
-			case DNIPackage.NETWORK_INTERFACE__DESCRIPTION:
-			case DNIPackage.NETWORK_INTERFACE__UID:
-			case DNIPackage.NETWORK_INTERFACE__UID_GENERATED:
-			case DNIPackage.NETWORK_INTERFACE__NAME_GENERATED:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case DNIPackage.NETWORK_INTERFACE__ADDRESSES:
-			case DNIPackage.NETWORK_INTERFACE__PERFORMANCE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.ADDRESSABLE_ENTITY__ADDRESSES,
-				 DNIFactory.eINSTANCE.createEntityAddress()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.NETWORK_INTERFACE__PERFORMANCE,
-				 DNIFactory.eINSTANCE.createPerformanceNetworkInterface()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkInterfacePerformanceTypeItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkInterfacePerformanceTypeItemProvider.java
deleted file mode 100644
index 22cb62ca..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkInterfacePerformanceTypeItemProvider.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.NetworkInterfacePerformanceType;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.NetworkInterfacePerformanceType} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class NetworkInterfacePerformanceTypeItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterfacePerformanceTypeItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addUidPropertyDescriptor(object);
-			addUid_generatedPropertyDescriptor(object);
-			addEntitiesPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUidPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid generated feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUid_generatedPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_generated_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_generated_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID_GENERATED,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Entities feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntitiesPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NetworkInterfacePerformanceType_entities_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NetworkInterfacePerformanceType_entities_feature", "_UI_NetworkInterfacePerformanceType_type"),
-				 DNIPackage.Literals.NETWORK_INTERFACE_PERFORMANCE_TYPE__ENTITIES,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns NetworkInterfacePerformanceType.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/NetworkInterfacePerformanceType"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((NetworkInterfacePerformanceType)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_NetworkInterfacePerformanceType_type") :
-			getString("_UI_NetworkInterfacePerformanceType_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(NetworkInterfacePerformanceType.class)) {
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__NAME:
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__DESCRIPTION:
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__UID:
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE__UID_GENERATED:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkInterfaceTypeItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkInterfaceTypeItemProvider.java
deleted file mode 100644
index abfd1a85..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkInterfaceTypeItemProvider.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.NetworkInterfaceType;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.NetworkInterfaceType} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class NetworkInterfaceTypeItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterfaceTypeItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addUidPropertyDescriptor(object);
-			addUid_generatedPropertyDescriptor(object);
-			addEntitiesPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUidPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid generated feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUid_generatedPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_generated_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_generated_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID_GENERATED,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Entities feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntitiesPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NetworkInterfaceType_entities_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NetworkInterfaceType_entities_feature", "_UI_NetworkInterfaceType_type"),
-				 DNIPackage.Literals.NETWORK_INTERFACE_TYPE__ENTITIES,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns NetworkInterfaceType.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/NetworkInterfaceType"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((NetworkInterfaceType)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_NetworkInterfaceType_type") :
-			getString("_UI_NetworkInterfaceType_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(NetworkInterfaceType.class)) {
-			case DNIPackage.NETWORK_INTERFACE_TYPE__NAME:
-			case DNIPackage.NETWORK_INTERFACE_TYPE__DESCRIPTION:
-			case DNIPackage.NETWORK_INTERFACE_TYPE__UID:
-			case DNIPackage.NETWORK_INTERFACE_TYPE__UID_GENERATED:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkProtocolItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkProtocolItemProvider.java
deleted file mode 100644
index b533c31c..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkProtocolItemProvider.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.NetworkProtocol;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.NetworkProtocol} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class NetworkProtocolItemProvider extends IdentifierItemProvider {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkProtocolItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addMtuPropertyDescriptor(object);
-			addHeadersLengthPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Mtu feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addMtuPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NetworkProtocol_mtu_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NetworkProtocol_mtu_feature", "_UI_NetworkProtocol_type"),
-				 DNIPackage.Literals.NETWORK_PROTOCOL__MTU,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Headers Length feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addHeadersLengthPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NetworkProtocol_headersLength_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NetworkProtocol_headersLength_feature", "_UI_NetworkProtocol_type"),
-				 DNIPackage.Literals.NETWORK_PROTOCOL__HEADERS_LENGTH,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns NetworkProtocol.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/NetworkProtocol"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((NetworkProtocol)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_NetworkProtocol_type") :
-			getString("_UI_NetworkProtocol_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(NetworkProtocol.class)) {
-			case DNIPackage.NETWORK_PROTOCOL__NAME:
-			case DNIPackage.NETWORK_PROTOCOL__DESCRIPTION:
-			case DNIPackage.NETWORK_PROTOCOL__MTU:
-			case DNIPackage.NETWORK_PROTOCOL__HEADERS_LENGTH:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkStructureItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkStructureItemProvider.java
deleted file mode 100644
index 2b69c32e..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkStructureItemProvider.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.NetworkStructure;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.NetworkStructure} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class NetworkStructureItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkStructureItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.NETWORK_STRUCTURE__NODES);
-			childrenFeatures.add(DNIPackage.Literals.NETWORK_STRUCTURE__LINKS);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns NetworkStructure.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/NetworkStructure"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_NetworkStructure_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(NetworkStructure.class)) {
-			case DNIPackage.NETWORK_STRUCTURE__NODES:
-			case DNIPackage.NETWORK_STRUCTURE__LINKS:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.NETWORK_STRUCTURE__NODES,
-				 DNIFactory.eINSTANCE.createNode()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.NETWORK_STRUCTURE__LINKS,
-				 DNIFactory.eINSTANCE.createLink()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkTrafficItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkTrafficItemProvider.java
deleted file mode 100644
index c2cb4384..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NetworkTrafficItemProvider.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.NetworkTraffic;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.NetworkTraffic} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class NetworkTrafficItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkTrafficItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.NETWORK_TRAFFIC__FLOWS);
-			childrenFeatures.add(DNIPackage.Literals.NETWORK_TRAFFIC__SOFTWARE);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns NetworkTraffic.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/NetworkTraffic"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_NetworkTraffic_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(NetworkTraffic.class)) {
-			case DNIPackage.NETWORK_TRAFFIC__FLOWS:
-			case DNIPackage.NETWORK_TRAFFIC__SOFTWARE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.NETWORK_TRAFFIC__FLOWS,
-				 DNIFactory.eINSTANCE.createFlow()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.NETWORK_TRAFFIC__FLOWS,
-				 DNIFactory.eINSTANCE.createSdnControlFlow()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.NETWORK_TRAFFIC__SOFTWARE,
-				 DNIFactory.eINSTANCE.createCommunicatingApplication()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.NETWORK_TRAFFIC__SOFTWARE,
-				 DNIFactory.eINSTANCE.createSdnController()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.NETWORK_TRAFFIC__SOFTWARE,
-				 DNIFactory.eINSTANCE.createSdnControllerApplication()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NodeItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NodeItemProvider.java
deleted file mode 100644
index b3e523b7..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NodeItemProvider.java
+++ /dev/null
@@ -1,340 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Node;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.Node} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class NodeItemProvider extends IdentifierItemProvider {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NodeItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addIsPhysicalPropertyDescriptor(object);
-			addIsPhysical_derivedPropertyDescriptor(object);
-			addHostsPropertyDescriptor(object);
-			addIsHostedOnPropertyDescriptor(object);
-			addEntityTypePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Is Physical feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addIsPhysicalPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Node_isPhysical_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Node_isPhysical_feature", "_UI_Node_type"),
-				 DNIPackage.Literals.NODE__IS_PHYSICAL,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Is Physical derived feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addIsPhysical_derivedPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Node_isPhysical_derived_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Node_isPhysical_derived_feature", "_UI_Node_type"),
-				 DNIPackage.Literals.NODE__IS_PHYSICAL_DERIVED,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Hosts feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addHostsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Node_hosts_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Node_hosts_feature", "_UI_Node_type"),
-				 DNIPackage.Literals.NODE__HOSTS,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Is Hosted On feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addIsHostedOnPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Node_isHostedOn_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Node_isHostedOn_feature", "_UI_Node_type"),
-				 DNIPackage.Literals.NODE__IS_HOSTED_ON,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Entity Type feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntityTypePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Node_entityType_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Node_entityType_feature", "_UI_Node_type"),
-				 DNIPackage.Literals.NODE__ENTITY_TYPE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.NODE__INTERFACES);
-			childrenFeatures.add(DNIPackage.Literals.NODE__SDNTYPE);
-			childrenFeatures.add(DNIPackage.Literals.NODE__END);
-			childrenFeatures.add(DNIPackage.Literals.NODE__INTERMEDIATE);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns Node.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/Node"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((Node)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_Node_type") :
-			getString("_UI_Node_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(Node.class)) {
-			case DNIPackage.NODE__NAME:
-			case DNIPackage.NODE__DESCRIPTION:
-			case DNIPackage.NODE__IS_PHYSICAL:
-			case DNIPackage.NODE__IS_PHYSICAL_DERIVED:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case DNIPackage.NODE__INTERFACES:
-			case DNIPackage.NODE__SDNTYPE:
-			case DNIPackage.NODE__END:
-			case DNIPackage.NODE__INTERMEDIATE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.NODE__INTERFACES,
-				 DNIFactory.eINSTANCE.createNetworkInterface()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.NODE__SDNTYPE,
-				 DNIFactory.eINSTANCE.createCommon()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.NODE__SDNTYPE,
-				 DNIFactory.eINSTANCE.createSDN()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.NODE__END,
-				 DNIFactory.eINSTANCE.createEnd()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.NODE__INTERMEDIATE,
-				 DNIFactory.eINSTANCE.createIntermediate()));
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NodeTypeItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NodeTypeItemProvider.java
deleted file mode 100644
index b377dc1c..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/NodeTypeItemProvider.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.NodeType;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.NodeType} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class NodeTypeItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NodeTypeItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addUidPropertyDescriptor(object);
-			addUid_generatedPropertyDescriptor(object);
-			addEntitiesPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUidPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid generated feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUid_generatedPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_generated_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_generated_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID_GENERATED,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Entities feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntitiesPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NodeType_entities_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NodeType_entities_feature", "_UI_NodeType_type"),
-				 DNIPackage.Literals.NODE_TYPE__ENTITIES,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns NodeType.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/NodeType"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((NodeType)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_NodeType_type") :
-			getString("_UI_NodeType_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(NodeType.class)) {
-			case DNIPackage.NODE_TYPE__NAME:
-			case DNIPackage.NODE_TYPE__DESCRIPTION:
-			case DNIPackage.NODE_TYPE__UID:
-			case DNIPackage.NODE_TYPE__UID_GENERATED:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/PerformanceLinkItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/PerformanceLinkItemProvider.java
deleted file mode 100644
index d6eb7ad1..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/PerformanceLinkItemProvider.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.PerformanceLink;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.PerformanceLink} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class PerformanceLinkItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PerformanceLinkItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addEntityTypePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Entity Type feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntityTypePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_PerformanceLink_entityType_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_PerformanceLink_entityType_feature", "_UI_PerformanceLink_type"),
-				 DNIPackage.Literals.PERFORMANCE_LINK__ENTITY_TYPE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.PERFORMANCE_LINK__PROPAGATION_DELAY);
-			childrenFeatures.add(DNIPackage.Literals.PERFORMANCE_LINK__MAX_SUPPORTED_BANDWIDTH);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns PerformanceLink.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/PerformanceLink"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_PerformanceLink_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(PerformanceLink.class)) {
-			case DNIPackage.PERFORMANCE_LINK__PROPAGATION_DELAY:
-			case DNIPackage.PERFORMANCE_LINK__MAX_SUPPORTED_BANDWIDTH:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PERFORMANCE_LINK__PROPAGATION_DELAY,
-				 DNIFactory.eINSTANCE.createConstantDoubleVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PERFORMANCE_LINK__PROPAGATION_DELAY,
-				 DNIFactory.eINSTANCE.createConstantLongVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PERFORMANCE_LINK__PROPAGATION_DELAY,
-				 DNIFactory.eINSTANCE.createRandomVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PERFORMANCE_LINK__PROPAGATION_DELAY,
-				 DNIFactory.eINSTANCE.createDiscreteFunction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PERFORMANCE_LINK__PROPAGATION_DELAY,
-				 DNIFactory.eINSTANCE.createExponentialFunction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PERFORMANCE_LINK__MAX_SUPPORTED_BANDWIDTH,
-				 DNIFactory.eINSTANCE.createConstantDoubleVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PERFORMANCE_LINK__MAX_SUPPORTED_BANDWIDTH,
-				 DNIFactory.eINSTANCE.createConstantLongVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PERFORMANCE_LINK__MAX_SUPPORTED_BANDWIDTH,
-				 DNIFactory.eINSTANCE.createRandomVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PERFORMANCE_LINK__MAX_SUPPORTED_BANDWIDTH,
-				 DNIFactory.eINSTANCE.createDiscreteFunction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PERFORMANCE_LINK__MAX_SUPPORTED_BANDWIDTH,
-				 DNIFactory.eINSTANCE.createExponentialFunction()));
-	}
-
-	/**
-	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
-		Object childFeature = feature;
-		Object childObject = child;
-
-		boolean qualify =
-			childFeature == DNIPackage.Literals.PERFORMANCE_LINK__PROPAGATION_DELAY ||
-			childFeature == DNIPackage.Literals.PERFORMANCE_LINK__MAX_SUPPORTED_BANDWIDTH;
-
-		if (qualify) {
-			return getString
-				("_UI_CreateChild_text2",
-				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
-		}
-		return super.getCreateChildText(owner, feature, child, selection);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/PerformanceNetworkInterfaceItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/PerformanceNetworkInterfaceItemProvider.java
deleted file mode 100644
index 4006a1de..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/PerformanceNetworkInterfaceItemProvider.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.PerformanceNetworkInterface;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class PerformanceNetworkInterfaceItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PerformanceNetworkInterfaceItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addIsUpPropertyDescriptor(object);
-			addMTUPropertyDescriptor(object);
-			addEntityTypePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Is Up feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addIsUpPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_PerformanceNetworkInterface_isUp_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_PerformanceNetworkInterface_isUp_feature", "_UI_PerformanceNetworkInterface_type"),
-				 DNIPackage.Literals.PERFORMANCE_NETWORK_INTERFACE__IS_UP,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the MTU feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addMTUPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_PerformanceNetworkInterface_MTU_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_PerformanceNetworkInterface_MTU_feature", "_UI_PerformanceNetworkInterface_type"),
-				 DNIPackage.Literals.PERFORMANCE_NETWORK_INTERFACE__MTU,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Entity Type feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntityTypePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_PerformanceNetworkInterface_entityType_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_PerformanceNetworkInterface_entityType_feature", "_UI_PerformanceNetworkInterface_type"),
-				 DNIPackage.Literals.PERFORMANCE_NETWORK_INTERFACE__ENTITY_TYPE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.PERFORMANCE_NETWORK_INTERFACE__PACKET_PROCESSING_TIME);
-			childrenFeatures.add(DNIPackage.Literals.PERFORMANCE_NETWORK_INTERFACE__INTERFACE_THROUGHPUT);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns PerformanceNetworkInterface.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/PerformanceNetworkInterface"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		PerformanceNetworkInterface performanceNetworkInterface = (PerformanceNetworkInterface)object;
-		return getString("_UI_PerformanceNetworkInterface_type") + " " + performanceNetworkInterface.isIsUp();
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(PerformanceNetworkInterface.class)) {
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__IS_UP:
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__MTU:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__PACKET_PROCESSING_TIME:
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE__INTERFACE_THROUGHPUT:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PERFORMANCE_NETWORK_INTERFACE__PACKET_PROCESSING_TIME,
-				 DNIFactory.eINSTANCE.createConstantDoubleVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PERFORMANCE_NETWORK_INTERFACE__PACKET_PROCESSING_TIME,
-				 DNIFactory.eINSTANCE.createConstantLongVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PERFORMANCE_NETWORK_INTERFACE__PACKET_PROCESSING_TIME,
-				 DNIFactory.eINSTANCE.createRandomVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PERFORMANCE_NETWORK_INTERFACE__PACKET_PROCESSING_TIME,
-				 DNIFactory.eINSTANCE.createDiscreteFunction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PERFORMANCE_NETWORK_INTERFACE__PACKET_PROCESSING_TIME,
-				 DNIFactory.eINSTANCE.createExponentialFunction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PERFORMANCE_NETWORK_INTERFACE__INTERFACE_THROUGHPUT,
-				 DNIFactory.eINSTANCE.createConstantDoubleVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PERFORMANCE_NETWORK_INTERFACE__INTERFACE_THROUGHPUT,
-				 DNIFactory.eINSTANCE.createConstantLongVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PERFORMANCE_NETWORK_INTERFACE__INTERFACE_THROUGHPUT,
-				 DNIFactory.eINSTANCE.createRandomVariable()));
-	}
-
-	/**
-	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
-		Object childFeature = feature;
-		Object childObject = child;
-
-		boolean qualify =
-			childFeature == DNIPackage.Literals.PERFORMANCE_NETWORK_INTERFACE__PACKET_PROCESSING_TIME ||
-			childFeature == DNIPackage.Literals.PERFORMANCE_NETWORK_INTERFACE__INTERFACE_THROUGHPUT;
-
-		if (qualify) {
-			return getString
-				("_UI_CreateChild_text2",
-				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
-		}
-		return super.getCreateChildText(owner, feature, child, selection);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/PerformanceSdnNodeItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/PerformanceSdnNodeItemProvider.java
deleted file mode 100644
index 2bff971b..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/PerformanceSdnNodeItemProvider.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.PerformanceSdnNode;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.PerformanceSdnNode} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class PerformanceSdnNodeItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PerformanceSdnNodeItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addEntityTypePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Entity Type feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntityTypePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_PerformanceSdnNode_entityType_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_PerformanceSdnNode_entityType_feature", "_UI_PerformanceSdnNode_type"),
-				 DNIPackage.Literals.PERFORMANCE_SDN_NODE__ENTITY_TYPE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.PERFORMANCE_SDN_NODE__SOFTWARE_SWITCHING_PERFORMANCE);
-			childrenFeatures.add(DNIPackage.Literals.PERFORMANCE_SDN_NODE__HARDWARE_SWITCHING_PERFORMANCE);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns PerformanceSdnNode.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/PerformanceSdnNode"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_PerformanceSdnNode_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(PerformanceSdnNode.class)) {
-			case DNIPackage.PERFORMANCE_SDN_NODE__SOFTWARE_SWITCHING_PERFORMANCE:
-			case DNIPackage.PERFORMANCE_SDN_NODE__HARDWARE_SWITCHING_PERFORMANCE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PERFORMANCE_SDN_NODE__SOFTWARE_SWITCHING_PERFORMANCE,
-				 DNIFactory.eINSTANCE.createIntermediatePerformance()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PERFORMANCE_SDN_NODE__HARDWARE_SWITCHING_PERFORMANCE,
-				 DNIFactory.eINSTANCE.createIntermediatePerformance()));
-	}
-
-	/**
-	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
-		Object childFeature = feature;
-		Object childObject = child;
-
-		boolean qualify =
-			childFeature == DNIPackage.Literals.PERFORMANCE_SDN_NODE__SOFTWARE_SWITCHING_PERFORMANCE ||
-			childFeature == DNIPackage.Literals.PERFORMANCE_SDN_NODE__HARDWARE_SWITCHING_PERFORMANCE;
-
-		if (qualify) {
-			return getString
-				("_UI_CreateChild_text2",
-				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
-		}
-		return super.getCreateChildText(owner, feature, child, selection);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ProtocolLayerItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ProtocolLayerItemProvider.java
deleted file mode 100644
index afd9b0a0..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ProtocolLayerItemProvider.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.ProtocolLayer;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.ProtocolLayer} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class ProtocolLayerItemProvider extends IdentifierItemProvider {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ProtocolLayerItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addProtocolPropertyDescriptor(object);
-			addIsCarriedByPropertyDescriptor(object);
-			addCarriesPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Protocol feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addProtocolPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_ProtocolLayer_protocol_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_ProtocolLayer_protocol_feature", "_UI_ProtocolLayer_type"),
-				 DNIPackage.Literals.PROTOCOL_LAYER__PROTOCOL,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Is Carried By feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addIsCarriedByPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_ProtocolLayer_isCarriedBy_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_ProtocolLayer_isCarriedBy_feature", "_UI_ProtocolLayer_type"),
-				 DNIPackage.Literals.PROTOCOL_LAYER__IS_CARRIED_BY,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Carries feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addCarriesPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_ProtocolLayer_carries_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_ProtocolLayer_carries_feature", "_UI_ProtocolLayer_type"),
-				 DNIPackage.Literals.PROTOCOL_LAYER__CARRIES,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns ProtocolLayer.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/ProtocolLayer"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((ProtocolLayer)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_ProtocolLayer_type") :
-			getString("_UI_ProtocolLayer_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(ProtocolLayer.class)) {
-			case DNIPackage.PROTOCOL_LAYER__NAME:
-			case DNIPackage.PROTOCOL_LAYER__DESCRIPTION:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ProtocolStackItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ProtocolStackItemProvider.java
deleted file mode 100644
index e0a27521..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ProtocolStackItemProvider.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.ProtocolStack;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.ProtocolStack} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class ProtocolStackItemProvider extends IdentifierItemProvider {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ProtocolStackItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.PROTOCOL_STACK__LAYERS);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns ProtocolStack.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/ProtocolStack"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((ProtocolStack)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_ProtocolStack_type") :
-			getString("_UI_ProtocolStack_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(ProtocolStack.class)) {
-			case DNIPackage.PROTOCOL_STACK__NAME:
-			case DNIPackage.PROTOCOL_STACK__DESCRIPTION:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case DNIPackage.PROTOCOL_STACK__LAYERS:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PROTOCOL_STACK__LAYERS,
-				 DNIFactory.eINSTANCE.createProtocolLayer()));
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ProtocolsRepositoryItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ProtocolsRepositoryItemProvider.java
deleted file mode 100644
index d3dc8c5a..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/ProtocolsRepositoryItemProvider.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.ProtocolsRepository;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.ProtocolsRepository} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class ProtocolsRepositoryItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ProtocolsRepositoryItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.PROTOCOLS_REPOSITORY__STACKS);
-			childrenFeatures.add(DNIPackage.Literals.PROTOCOLS_REPOSITORY__PROTOCOLS);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns ProtocolsRepository.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/ProtocolsRepository"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_ProtocolsRepository_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(ProtocolsRepository.class)) {
-			case DNIPackage.PROTOCOLS_REPOSITORY__STACKS:
-			case DNIPackage.PROTOCOLS_REPOSITORY__PROTOCOLS:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PROTOCOLS_REPOSITORY__STACKS,
-				 DNIFactory.eINSTANCE.createProtocolStack()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.PROTOCOLS_REPOSITORY__PROTOCOLS,
-				 DNIFactory.eINSTANCE.createNetworkProtocol()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/RandomVariableItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/RandomVariableItemProvider.java
deleted file mode 100644
index 6975617a..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/RandomVariableItemProvider.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.RandomVariable;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.RandomVariable} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class RandomVariableItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public RandomVariableItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.DEPENDENCY__UNIT);
-			childrenFeatures.add(DNIPackage.Literals.RANDOM_VARIABLE__CDF);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns RandomVariable.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/RandomVariable"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_RandomVariable_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(RandomVariable.class)) {
-			case DNIPackage.RANDOM_VARIABLE__UNIT:
-			case DNIPackage.RANDOM_VARIABLE__CDF:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.DEPENDENCY__UNIT,
-				 DNIFactory.eINSTANCE.createSpeedUnit()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.DEPENDENCY__UNIT,
-				 DNIFactory.eINSTANCE.createDataUnit()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.DEPENDENCY__UNIT,
-				 DNIFactory.eINSTANCE.createTimeUnit()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.RANDOM_VARIABLE__CDF,
-				 DNIFactory.eINSTANCE.createDiscreteFunction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.RANDOM_VARIABLE__CDF,
-				 DNIFactory.eINSTANCE.createExponentialFunction()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/RouteItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/RouteItemProvider.java
deleted file mode 100644
index 21ec88b3..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/RouteItemProvider.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Route;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.Route} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class RouteItemProvider extends IdentifierItemProvider {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public RouteItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addStartPropertyDescriptor(object);
-			addEndPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Start feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addStartPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Route_start_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Route_start_feature", "_UI_Route_type"),
-				 DNIPackage.Literals.ROUTE__START,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the End feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEndPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Route_end_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Route_end_feature", "_UI_Route_type"),
-				 DNIPackage.Literals.ROUTE__END,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.ROUTE__HOPS);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns Route.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/Route"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((Route)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_Route_type") :
-			getString("_UI_Route_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(Route.class)) {
-			case DNIPackage.ROUTE__NAME:
-			case DNIPackage.ROUTE__DESCRIPTION:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case DNIPackage.ROUTE__HOPS:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.ROUTE__HOPS,
-				 DNIFactory.eINSTANCE.createHop()));
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/RoutesRepositoryItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/RoutesRepositoryItemProvider.java
deleted file mode 100644
index a7972ae5..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/RoutesRepositoryItemProvider.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.RoutesRepository;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.RoutesRepository} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class RoutesRepositoryItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public RoutesRepositoryItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.ROUTES_REPOSITORY__ROUTES);
-			childrenFeatures.add(DNIPackage.Literals.ROUTES_REPOSITORY__FLOW_ROUTES);
-			childrenFeatures.add(DNIPackage.Literals.ROUTES_REPOSITORY__DIRECTIONS);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns RoutesRepository.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/RoutesRepository"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_RoutesRepository_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(RoutesRepository.class)) {
-			case DNIPackage.ROUTES_REPOSITORY__ROUTES:
-			case DNIPackage.ROUTES_REPOSITORY__FLOW_ROUTES:
-			case DNIPackage.ROUTES_REPOSITORY__DIRECTIONS:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.ROUTES_REPOSITORY__ROUTES,
-				 DNIFactory.eINSTANCE.createRoute()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.ROUTES_REPOSITORY__FLOW_ROUTES,
-				 DNIFactory.eINSTANCE.createFlowRoute()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.ROUTES_REPOSITORY__DIRECTIONS,
-				 DNIFactory.eINSTANCE.createDirection()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SDNItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SDNItemProvider.java
deleted file mode 100644
index 661cc3b7..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SDNItemProvider.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.SDN;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.SDN} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class SDNItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SDNItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addControllerPropertyDescriptor(object);
-			addOpenFlowEndPointPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Controller feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addControllerPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_SDN_controller_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_SDN_controller_feature", "_UI_SDN_type"),
-				 DNIPackage.Literals.SDN__CONTROLLER,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Open Flow End Point feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addOpenFlowEndPointPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_SDN_openFlowEndPoint_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_SDN_openFlowEndPoint_feature", "_UI_SDN_type"),
-				 DNIPackage.Literals.SDN__OPEN_FLOW_END_POINT,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.SDN__PERFORMANCE);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns SDN.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/SDN"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_SDN_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(SDN.class)) {
-			case DNIPackage.SDN__PERFORMANCE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.SDN__PERFORMANCE,
-				 DNIFactory.eINSTANCE.createPerformanceSdnNode()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SdnControlFlowItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SdnControlFlowItemProvider.java
deleted file mode 100644
index 5d9f384d..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SdnControlFlowItemProvider.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.SdnControlFlow;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.SdnControlFlow} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class SdnControlFlowItemProvider extends FlowItemProvider {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SdnControlFlowItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addParentFlowPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Parent Flow feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addParentFlowPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_SdnControlFlow_parentFlow_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_SdnControlFlow_parentFlow_feature", "_UI_SdnControlFlow_type"),
-				 DNIPackage.Literals.SDN_CONTROL_FLOW__PARENT_FLOW,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns SdnControlFlow.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/SdnControlFlow"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((SdnControlFlow)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_SdnControlFlow_type") :
-			getString("_UI_SdnControlFlow_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SdnControllerApplicationItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SdnControllerApplicationItemProvider.java
deleted file mode 100644
index 973c8894..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SdnControllerApplicationItemProvider.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.SdnControllerApplication;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.SdnControllerApplication} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class SdnControllerApplicationItemProvider extends CommunicatingApplicationItemProvider {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SdnControllerApplicationItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addBelongsToPropertyDescriptor(object);
-			addIsDefaultPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Belongs To feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addBelongsToPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_SdnControllerApplication_belongsTo_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_SdnControllerApplication_belongsTo_feature", "_UI_SdnControllerApplication_type"),
-				 DNIPackage.Literals.SDN_CONTROLLER_APPLICATION__BELONGS_TO,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Is Default feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addIsDefaultPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_SdnControllerApplication_isDefault_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_SdnControllerApplication_isDefault_feature", "_UI_SdnControllerApplication_type"),
-				 DNIPackage.Literals.SDN_CONTROLLER_APPLICATION__IS_DEFAULT,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.SDN_CONTROLLER_APPLICATION__RESPONSE_DELAY);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns SdnControllerApplication.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/SdnControllerApplication"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((SdnControllerApplication)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_SdnControllerApplication_type") :
-			getString("_UI_SdnControllerApplication_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(SdnControllerApplication.class)) {
-			case DNIPackage.SDN_CONTROLLER_APPLICATION__IS_DEFAULT:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case DNIPackage.SDN_CONTROLLER_APPLICATION__RESPONSE_DELAY:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.SDN_CONTROLLER_APPLICATION__RESPONSE_DELAY,
-				 DNIFactory.eINSTANCE.createConstantDoubleVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.SDN_CONTROLLER_APPLICATION__RESPONSE_DELAY,
-				 DNIFactory.eINSTANCE.createConstantLongVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.SDN_CONTROLLER_APPLICATION__RESPONSE_DELAY,
-				 DNIFactory.eINSTANCE.createRandomVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.SDN_CONTROLLER_APPLICATION__RESPONSE_DELAY,
-				 DNIFactory.eINSTANCE.createDiscreteFunction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.SDN_CONTROLLER_APPLICATION__RESPONSE_DELAY,
-				 DNIFactory.eINSTANCE.createExponentialFunction()));
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SdnControllerItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SdnControllerItemProvider.java
deleted file mode 100644
index 3b12072d..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SdnControllerItemProvider.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.SdnController;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.SdnController} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class SdnControllerItemProvider extends CommunicatingApplicationItemProvider {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SdnControllerItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNodesPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Nodes feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNodesPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_SdnController_nodes_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_SdnController_nodes_feature", "_UI_SdnController_type"),
-				 DNIPackage.Literals.SDN_CONTROLLER__NODES,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.SDN_CONTROLLER__APPLICATIONS);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns SdnController.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/SdnController"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((SdnController)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_SdnController_type") :
-			getString("_UI_SdnController_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(SdnController.class)) {
-			case DNIPackage.SDN_CONTROLLER__APPLICATIONS:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.SDN_CONTROLLER__APPLICATIONS,
-				 DNIFactory.eINSTANCE.createSdnControllerApplication()));
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SdnFlowRuleItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SdnFlowRuleItemProvider.java
deleted file mode 100644
index 83ac555b..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SdnFlowRuleItemProvider.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.SdnFlowRule;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.SdnFlowRule} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class SdnFlowRuleItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SdnFlowRuleItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addSdnSwitchPropertyDescriptor(object);
-			addFlowPropertyDescriptor(object);
-			addProbabilityHardwarePropertyDescriptor(object);
-			addProbabilitySoftwarePropertyDescriptor(object);
-			addProbabilityControllerPropertyDescriptor(object);
-			addControllerApplicationPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Sdn Switch feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addSdnSwitchPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_SdnFlowRule_sdnSwitch_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_SdnFlowRule_sdnSwitch_feature", "_UI_SdnFlowRule_type"),
-				 DNIPackage.Literals.SDN_FLOW_RULE__SDN_SWITCH,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Flow feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addFlowPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_SdnFlowRule_flow_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_SdnFlowRule_flow_feature", "_UI_SdnFlowRule_type"),
-				 DNIPackage.Literals.SDN_FLOW_RULE__FLOW,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Probability Hardware feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addProbabilityHardwarePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_SdnFlowRule_probabilityHardware_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_SdnFlowRule_probabilityHardware_feature", "_UI_SdnFlowRule_type"),
-				 DNIPackage.Literals.SDN_FLOW_RULE__PROBABILITY_HARDWARE,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.REAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Probability Software feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addProbabilitySoftwarePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_SdnFlowRule_probabilitySoftware_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_SdnFlowRule_probabilitySoftware_feature", "_UI_SdnFlowRule_type"),
-				 DNIPackage.Literals.SDN_FLOW_RULE__PROBABILITY_SOFTWARE,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.REAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Probability Controller feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addProbabilityControllerPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_SdnFlowRule_probabilityController_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_SdnFlowRule_probabilityController_feature", "_UI_SdnFlowRule_type"),
-				 DNIPackage.Literals.SDN_FLOW_RULE__PROBABILITY_CONTROLLER,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.REAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Controller Application feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addControllerApplicationPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_SdnFlowRule_controllerApplication_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_SdnFlowRule_controllerApplication_feature", "_UI_SdnFlowRule_type"),
-				 DNIPackage.Literals.SDN_FLOW_RULE__CONTROLLER_APPLICATION,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns SdnFlowRule.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/SdnFlowRule"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		SdnFlowRule sdnFlowRule = (SdnFlowRule)object;
-		return getString("_UI_SdnFlowRule_type") + " " + sdnFlowRule.getProbabilityHardware();
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(SdnFlowRule.class)) {
-			case DNIPackage.SDN_FLOW_RULE__PROBABILITY_HARDWARE:
-			case DNIPackage.SDN_FLOW_RULE__PROBABILITY_SOFTWARE:
-			case DNIPackage.SDN_FLOW_RULE__PROBABILITY_CONTROLLER:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SdnNodePerformanceTypeItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SdnNodePerformanceTypeItemProvider.java
deleted file mode 100644
index 1fef2edb..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SdnNodePerformanceTypeItemProvider.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.SdnNodePerformanceType;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.SdnNodePerformanceType} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class SdnNodePerformanceTypeItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SdnNodePerformanceTypeItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addUidPropertyDescriptor(object);
-			addUid_generatedPropertyDescriptor(object);
-			addEntitiesPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUidPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Uid generated feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUid_generatedPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Identifier_uid_generated_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_generated_feature", "_UI_Identifier_type"),
-				 DNIPackage.Literals.IDENTIFIER__UID_GENERATED,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Entities feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEntitiesPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_SdnNodePerformanceType_entities_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_SdnNodePerformanceType_entities_feature", "_UI_SdnNodePerformanceType_type"),
-				 DNIPackage.Literals.SDN_NODE_PERFORMANCE_TYPE__ENTITIES,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns SdnNodePerformanceType.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/SdnNodePerformanceType"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((SdnNodePerformanceType)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_SdnNodePerformanceType_type") :
-			getString("_UI_SdnNodePerformanceType_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(SdnNodePerformanceType.class)) {
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__NAME:
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__DESCRIPTION:
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__UID:
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE__UID_GENERATED:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SequenceActionItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SequenceActionItemProvider.java
deleted file mode 100644
index c0aede27..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SequenceActionItemProvider.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.SequenceAction;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.SequenceAction} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class SequenceActionItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SequenceActionItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.SEQUENCE_ACTION__INTERN);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns SequenceAction.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/SequenceAction"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_SequenceAction_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(SequenceAction.class)) {
-			case DNIPackage.SEQUENCE_ACTION__INTERN:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.SEQUENCE_ACTION__INTERN,
-				 DNIFactory.eINSTANCE.createBranchAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.SEQUENCE_ACTION__INTERN,
-				 DNIFactory.eINSTANCE.createLoopAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.SEQUENCE_ACTION__INTERN,
-				 DNIFactory.eINSTANCE.createSequenceAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.SEQUENCE_ACTION__INTERN,
-				 DNIFactory.eINSTANCE.createStartAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.SEQUENCE_ACTION__INTERN,
-				 DNIFactory.eINSTANCE.createStopAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.SEQUENCE_ACTION__INTERN,
-				 DNIFactory.eINSTANCE.createTransmitAction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.SEQUENCE_ACTION__INTERN,
-				 DNIFactory.eINSTANCE.createWaitAction()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SpeedUnitItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SpeedUnitItemProvider.java
deleted file mode 100644
index ff4d2e58..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/SpeedUnitItemProvider.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Speed;
-import tools.descartes.dni.dnimm3.SpeedUnit;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.SpeedUnit} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class SpeedUnitItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SpeedUnitItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addUnitPropertyDescriptor(object);
-			addPrefixPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Unit feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUnitPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_SpeedUnit_unit_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_SpeedUnit_unit_feature", "_UI_SpeedUnit_type"),
-				 DNIPackage.Literals.SPEED_UNIT__UNIT,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Prefix feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addPrefixPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_SpeedUnit_prefix_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_SpeedUnit_prefix_feature", "_UI_SpeedUnit_type"),
-				 DNIPackage.Literals.SPEED_UNIT__PREFIX,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns SpeedUnit.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/SpeedUnit"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		Speed labelValue = ((SpeedUnit)object).getUnit();
-		String label = labelValue == null ? null : labelValue.toString();
-		return label == null || label.length() == 0 ?
-			getString("_UI_SpeedUnit_type") :
-			getString("_UI_SpeedUnit_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(SpeedUnit.class)) {
-			case DNIPackage.SPEED_UNIT__UNIT:
-			case DNIPackage.SPEED_UNIT__PREFIX:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/StartActionItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/StartActionItemProvider.java
deleted file mode 100644
index 299becb6..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/StartActionItemProvider.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.StartAction} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class StartActionItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public StartActionItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This returns StartAction.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/StartAction"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_StartAction_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/StopActionItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/StopActionItemProvider.java
deleted file mode 100644
index 7b5000a2..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/StopActionItemProvider.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.StopAction} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class StopActionItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public StopActionItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This returns StopAction.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/StopAction"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_StopAction_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/TimeUnitItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/TimeUnitItemProvider.java
deleted file mode 100644
index 56d32e8e..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/TimeUnitItemProvider.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.Time;
-import tools.descartes.dni.dnimm3.TimeUnit;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.TimeUnit} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class TimeUnitItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public TimeUnitItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addUnitPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Unit feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addUnitPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_TimeUnit_unit_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_TimeUnit_unit_feature", "_UI_TimeUnit_type"),
-				 DNIPackage.Literals.TIME_UNIT__UNIT,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns TimeUnit.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/TimeUnit"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		Time labelValue = ((TimeUnit)object).getUnit();
-		String label = labelValue == null ? null : labelValue.toString();
-		return label == null || label.length() == 0 ?
-			getString("_UI_TimeUnit_type") :
-			getString("_UI_TimeUnit_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(TimeUnit.class)) {
-			case DNIPackage.TIME_UNIT__UNIT:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/TrafficSourceItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/TrafficSourceItemProvider.java
deleted file mode 100644
index 1d533243..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/TrafficSourceItemProvider.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.TrafficSource;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.TrafficSource} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class TrafficSourceItemProvider extends IdentifierItemProvider {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public TrafficSourceItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-			addDescriptionPropertyDescriptor(object);
-			addSoftwareComponentPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Description feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDescriptionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_description_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_description_feature", "_UI_NamedElement_type"),
-				 DNIPackage.Literals.NAMED_ELEMENT__DESCRIPTION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Software Component feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addSoftwareComponentPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_TrafficSource_softwareComponent_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_TrafficSource_softwareComponent_feature", "_UI_TrafficSource_type"),
-				 DNIPackage.Literals.TRAFFIC_SOURCE__SOFTWARE_COMPONENT,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.ADDRESSABLE_ENTITY__ADDRESSES);
-			childrenFeatures.add(DNIPackage.Literals.TRAFFIC_SOURCE__WORKLOAD);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns TrafficSource.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/TrafficSource"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((TrafficSource)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_TrafficSource_type") :
-			getString("_UI_TrafficSource_type") + " " + label;
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(TrafficSource.class)) {
-			case DNIPackage.TRAFFIC_SOURCE__NAME:
-			case DNIPackage.TRAFFIC_SOURCE__DESCRIPTION:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case DNIPackage.TRAFFIC_SOURCE__ADDRESSES:
-			case DNIPackage.TRAFFIC_SOURCE__WORKLOAD:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.ADDRESSABLE_ENTITY__ADDRESSES,
-				 DNIFactory.eINSTANCE.createEntityAddress()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.TRAFFIC_SOURCE__WORKLOAD,
-				 DNIFactory.eINSTANCE.createGenericWorkload()));
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/TransmitActionItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/TransmitActionItemProvider.java
deleted file mode 100644
index 4e37bf0b..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/TransmitActionItemProvider.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.TransmitAction} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class TransmitActionItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public TransmitActionItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addFlowTrafficPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Flow Traffic feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addFlowTrafficPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_TransmitAction_flowTraffic_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_TransmitAction_flowTraffic_feature", "_UI_TransmitAction_type"),
-				 DNIPackage.Literals.TRANSMIT_ACTION__FLOW_TRAFFIC,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns TransmitAction.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/TransmitAction"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_TransmitAction_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/WaitActionItemProvider.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/WaitActionItemProvider.java
deleted file mode 100644
index 3c5ac307..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/provider/WaitActionItemProvider.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3.DNIFactory;
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.WaitAction;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3.WaitAction} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class WaitActionItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public WaitActionItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIPackage.Literals.WAIT_ACTION__WAIT_TIME);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns WaitAction.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/WaitAction"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_WaitAction_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(WaitAction.class)) {
-			case DNIPackage.WAIT_ACTION__WAIT_TIME:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.WAIT_ACTION__WAIT_TIME,
-				 DNIFactory.eINSTANCE.createConstantDoubleVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.WAIT_ACTION__WAIT_TIME,
-				 DNIFactory.eINSTANCE.createConstantLongVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.WAIT_ACTION__WAIT_TIME,
-				 DNIFactory.eINSTANCE.createRandomVariable()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.WAIT_ACTION__WAIT_TIME,
-				 DNIFactory.eINSTANCE.createDiscreteFunction()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIPackage.Literals.WAIT_ACTION__WAIT_TIME,
-				 DNIFactory.eINSTANCE.createExponentialFunction()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3EditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/tools/DNIParser.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/tools/DNIParser.java
deleted file mode 100644
index 46555ff1..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/tools/DNIParser.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package tools.descartes.dni.dnimm3.tools;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.util.Collections;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
-
-import tools.descartes.dni.dnimm3.DNIPackage;
-import tools.descartes.dni.dnimm3.NetworkInfrastructure;
-import tools.descartes.dni.dnimm3.impl.NetworkInfrastructureImpl;
-
-public class DNIParser {
-
-	private DNIParser() {
-	}
-
-	public static NetworkInfrastructureImpl convertToModel(File file) {
-		ResourceSet resourceSet = new ResourceSetImpl();
-		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap()
-				.put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl());
-		resourceSet.getPackageRegistry().put(DNIPackage.eNS_URI, DNIPackage.eINSTANCE);
-		Resource resource = resourceSet.getResource(URI.createFileURI(file.getAbsolutePath()), true);
-		return (NetworkInfrastructureImpl) resource.getContents().get(0);
-	}
-
-	public static NetworkInfrastructureImpl convertToModel(byte[] data) throws IOException {
-		ResourceSet resourceSet = new ResourceSetImpl();
-		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap()
-				.put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl());
-		resourceSet.getPackageRegistry().put(DNIPackage.eNS_URI, DNIPackage.eINSTANCE);
-		Resource resource = resourceSet.createResource(URI.createURI(""));
-		resource.load(new ByteArrayInputStream(data), Collections.EMPTY_MAP);
-		return (NetworkInfrastructureImpl) resource.getContents().get(0);
-	}
-
-	public static byte[] convertToByteArray(NetworkInfrastructure networkInfrastructure) throws IOException {
-		ResourceSet resourceSet = new ResourceSetImpl();
-		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap()
-				.put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl());
-		resourceSet.getPackageRegistry().put(DNIPackage.eNS_URI, DNIPackage.eINSTANCE);
-		Resource resource = resourceSet.createResource(URI.createURI(""));
-		resource.getContents().add(networkInfrastructure);
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
-		resource.save(baos, Collections.EMPTY_MAP);
-		return baos.toByteArray();
-	}
-
-	public static void writeToFile(NetworkInfrastructure networkInfrastructure, File file) throws IOException {
-		ResourceSet resourceSet = new ResourceSetImpl();
-		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap()
-				.put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl());
-		resourceSet.getPackageRegistry().put(DNIPackage.eNS_URI, DNIPackage.eINSTANCE);
-		Resource resource = resourceSet.createResource(URI.createFileURI(file.getAbsolutePath()));
-		resource.getContents().add(DNIUtil.cloneModel(networkInfrastructure));
-		resource.save(Collections.EMPTY_MAP);
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/tools/DNIUtil.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/tools/DNIUtil.java
deleted file mode 100644
index b6032cb2..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/tools/DNIUtil.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package tools.descartes.dni.dnimm3.tools;
-
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-import tools.descartes.dni.dnimm3.NetworkInfrastructure;
-import tools.descartes.dni.dnimm3.impl.NetworkInfrastructureImpl;
-
-public class DNIUtil {
-
-	private DNIUtil() {
-	}
-
-	public static NetworkInfrastructureImpl cloneModel(NetworkInfrastructure networkInfrastructure) {
-		return (NetworkInfrastructureImpl) EcoreUtil.copy(networkInfrastructure);
-	}
-
-}
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/util/DNIAdapterFactory.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/util/DNIAdapterFactory.java
deleted file mode 100644
index 26c8bf43..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/util/DNIAdapterFactory.java
+++ /dev/null
@@ -1,1434 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.util;
-
-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 tools.descartes.dni.dnimm3.*;
-
-/**
- * <!-- 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 tools.descartes.dni.dnimm3.DNIPackage
- * @generated
- */
-public class DNIAdapterFactory extends AdapterFactoryImpl {
-	/**
-	 * The cached model package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected static DNIPackage modelPackage;
-
-	/**
-	 * Creates an instance of the adapter factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DNIAdapterFactory() {
-		if (modelPackage == null) {
-			modelPackage = DNIPackage.eINSTANCE;
-		}
-	}
-
-	/**
-	 * Returns whether this factory is applicable for the type of the object.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
-	 * <!-- end-user-doc -->
-	 * @return whether this factory is applicable for the type of the object.
-	 * @generated
-	 */
-	@Override
-	public boolean isFactoryForType(Object object) {
-		if (object == modelPackage) {
-			return true;
-		}
-		if (object instanceof EObject) {
-			return ((EObject)object).eClass().getEPackage() == modelPackage;
-		}
-		return false;
-	}
-
-	/**
-	 * The switch that delegates to the <code>createXXX</code> methods.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected DNISwitch<Adapter> modelSwitch =
-		new DNISwitch<Adapter>() {
-			@Override
-			public Adapter caseNamedElement(NamedElement object) {
-				return createNamedElementAdapter();
-			}
-			@Override
-			public Adapter caseIdentifier(Identifier object) {
-				return createIdentifierAdapter();
-			}
-			@Override
-			public Adapter caseEntity(Entity object) {
-				return createEntityAdapter();
-			}
-			@Override
-			public Adapter caseNetworkInfrastructure(NetworkInfrastructure object) {
-				return createNetworkInfrastructureAdapter();
-			}
-			@Override
-			public Adapter caseNetworkStructure(NetworkStructure object) {
-				return createNetworkStructureAdapter();
-			}
-			@Override
-			public Adapter caseNode(Node object) {
-				return createNodeAdapter();
-			}
-			@Override
-			public Adapter caseEnd(End object) {
-				return createEndAdapter();
-			}
-			@Override
-			public Adapter caseIntermediate(Intermediate object) {
-				return createIntermediateAdapter();
-			}
-			@Override
-			public Adapter caseLink(Link object) {
-				return createLinkAdapter();
-			}
-			@Override
-			public Adapter caseNetworkInterface(NetworkInterface object) {
-				return createNetworkInterfaceAdapter();
-			}
-			@Override
-			public Adapter caseNetworkTraffic(NetworkTraffic object) {
-				return createNetworkTrafficAdapter();
-			}
-			@Override
-			public Adapter caseFlow(Flow object) {
-				return createFlowAdapter();
-			}
-			@Override
-			public Adapter caseSdnControlFlow(SdnControlFlow object) {
-				return createSdnControlFlowAdapter();
-			}
-			@Override
-			public Adapter caseFlowTraffic(FlowTraffic object) {
-				return createFlowTrafficAdapter();
-			}
-			@Override
-			public Adapter caseGenericFlowTraffic(GenericFlowTraffic object) {
-				return createGenericFlowTrafficAdapter();
-			}
-			@Override
-			public Adapter caseCommunicatingApplication(CommunicatingApplication object) {
-				return createCommunicatingApplicationAdapter();
-			}
-			@Override
-			public Adapter caseTrafficSource(TrafficSource object) {
-				return createTrafficSourceAdapter();
-			}
-			@Override
-			public Adapter caseNetworkConfiguration(NetworkConfiguration object) {
-				return createNetworkConfigurationAdapter();
-			}
-			@Override
-			public Adapter caseProtocolsRepository(ProtocolsRepository object) {
-				return createProtocolsRepositoryAdapter();
-			}
-			@Override
-			public Adapter caseProtocolStack(ProtocolStack object) {
-				return createProtocolStackAdapter();
-			}
-			@Override
-			public Adapter caseProtocolLayer(ProtocolLayer object) {
-				return createProtocolLayerAdapter();
-			}
-			@Override
-			public Adapter caseNetworkProtocol(NetworkProtocol object) {
-				return createNetworkProtocolAdapter();
-			}
-			@Override
-			public Adapter caseRoutesRepository(RoutesRepository object) {
-				return createRoutesRepositoryAdapter();
-			}
-			@Override
-			public Adapter caseDirection(Direction object) {
-				return createDirectionAdapter();
-			}
-			@Override
-			public Adapter caseFlowRoute(FlowRoute object) {
-				return createFlowRouteAdapter();
-			}
-			@Override
-			public Adapter caseRoute(Route object) {
-				return createRouteAdapter();
-			}
-			@Override
-			public Adapter caseHop(Hop object) {
-				return createHopAdapter();
-			}
-			@Override
-			public Adapter caseEntityAddress(EntityAddress object) {
-				return createEntityAddressAdapter();
-			}
-			@Override
-			public Adapter caseAddressableEntity(AddressableEntity object) {
-				return createAddressableEntityAdapter();
-			}
-			@Override
-			public Adapter caseWorkload(Workload object) {
-				return createWorkloadAdapter();
-			}
-			@Override
-			public Adapter caseGenericWorkload(GenericWorkload object) {
-				return createGenericWorkloadAdapter();
-			}
-			@Override
-			public Adapter caseAbstractAction(AbstractAction object) {
-				return createAbstractActionAdapter();
-			}
-			@Override
-			public Adapter caseBranchAction(BranchAction object) {
-				return createBranchActionAdapter();
-			}
-			@Override
-			public Adapter caseLoopAction(LoopAction object) {
-				return createLoopActionAdapter();
-			}
-			@Override
-			public Adapter caseSequenceAction(SequenceAction object) {
-				return createSequenceActionAdapter();
-			}
-			@Override
-			public Adapter caseStartAction(StartAction object) {
-				return createStartActionAdapter();
-			}
-			@Override
-			public Adapter caseStopAction(StopAction object) {
-				return createStopActionAdapter();
-			}
-			@Override
-			public Adapter caseTransmitAction(TransmitAction object) {
-				return createTransmitActionAdapter();
-			}
-			@Override
-			public Adapter caseWaitAction(WaitAction object) {
-				return createWaitActionAdapter();
-			}
-			@Override
-			public Adapter casePerformanceSpecification(PerformanceSpecification object) {
-				return createPerformanceSpecificationAdapter();
-			}
-			@Override
-			public Adapter casePerformanceLink(PerformanceLink object) {
-				return createPerformanceLinkAdapter();
-			}
-			@Override
-			public Adapter casePerformanceNetworkInterface(PerformanceNetworkInterface object) {
-				return createPerformanceNetworkInterfaceAdapter();
-			}
-			@Override
-			public Adapter caseSdnFlowRule(SdnFlowRule object) {
-				return createSdnFlowRuleAdapter();
-			}
-			@Override
-			public Adapter caseSdnController(SdnController object) {
-				return createSdnControllerAdapter();
-			}
-			@Override
-			public Adapter caseSdnControllerApplication(SdnControllerApplication object) {
-				return createSdnControllerApplicationAdapter();
-			}
-			@Override
-			public Adapter caseIType(IType object) {
-				return createITypeAdapter();
-			}
-			@Override
-			public Adapter caseCommon(Common object) {
-				return createCommonAdapter();
-			}
-			@Override
-			public Adapter caseSDN(SDN object) {
-				return createSDNAdapter();
-			}
-			@Override
-			public Adapter caseIntermediatePerformance(IntermediatePerformance object) {
-				return createIntermediatePerformanceAdapter();
-			}
-			@Override
-			public Adapter caseEndPerformance(EndPerformance object) {
-				return createEndPerformanceAdapter();
-			}
-			@Override
-			public Adapter casePerformanceSdnNode(PerformanceSdnNode object) {
-				return createPerformanceSdnNodeAdapter();
-			}
-			@Override
-			public Adapter caseDNIUnit(DNIUnit object) {
-				return createDNIUnitAdapter();
-			}
-			@Override
-			public Adapter caseSpeedUnit(SpeedUnit object) {
-				return createSpeedUnitAdapter();
-			}
-			@Override
-			public Adapter caseDataUnit(DataUnit object) {
-				return createDataUnitAdapter();
-			}
-			@Override
-			public Adapter caseTimeUnit(TimeUnit object) {
-				return createTimeUnitAdapter();
-			}
-			@Override
-			public Adapter caseDependency(Dependency object) {
-				return createDependencyAdapter();
-			}
-			@Override
-			public Adapter caseVariable(Variable object) {
-				return createVariableAdapter();
-			}
-			@Override
-			public Adapter caseFunction(Function object) {
-				return createFunctionAdapter();
-			}
-			@Override
-			public Adapter caseConstantDoubleVariable(ConstantDoubleVariable object) {
-				return createConstantDoubleVariableAdapter();
-			}
-			@Override
-			public Adapter caseConstantLongVariable(ConstantLongVariable object) {
-				return createConstantLongVariableAdapter();
-			}
-			@Override
-			public Adapter caseRandomVariable(RandomVariable object) {
-				return createRandomVariableAdapter();
-			}
-			@Override
-			public Adapter caseFloatCoordinate(FloatCoordinate object) {
-				return createFloatCoordinateAdapter();
-			}
-			@Override
-			public Adapter caseDiscreteFunction(DiscreteFunction object) {
-				return createDiscreteFunctionAdapter();
-			}
-			@Override
-			public Adapter caseExponentialFunction(ExponentialFunction object) {
-				return createExponentialFunctionAdapter();
-			}
-			@Override
-			public Adapter caseEntityTypes(EntityTypes object) {
-				return createEntityTypesAdapter();
-			}
-			@Override
-			public Adapter caseITypedEntity(ITypedEntity object) {
-				return createITypedEntityAdapter();
-			}
-			@Override
-			public Adapter caseNodeType(NodeType object) {
-				return createNodeTypeAdapter();
-			}
-			@Override
-			public Adapter caseEndPerformanceType(EndPerformanceType object) {
-				return createEndPerformanceTypeAdapter();
-			}
-			@Override
-			public Adapter caseIntermediatePerformanceType(IntermediatePerformanceType object) {
-				return createIntermediatePerformanceTypeAdapter();
-			}
-			@Override
-			public Adapter caseSdnNodePerformanceType(SdnNodePerformanceType object) {
-				return createSdnNodePerformanceTypeAdapter();
-			}
-			@Override
-			public Adapter caseNetworkInterfaceType(NetworkInterfaceType object) {
-				return createNetworkInterfaceTypeAdapter();
-			}
-			@Override
-			public Adapter caseNetworkInterfacePerformanceType(NetworkInterfacePerformanceType object) {
-				return createNetworkInterfacePerformanceTypeAdapter();
-			}
-			@Override
-			public Adapter caseLinkType(LinkType object) {
-				return createLinkTypeAdapter();
-			}
-			@Override
-			public Adapter caseLinkPerformanceType(LinkPerformanceType object) {
-				return createLinkPerformanceTypeAdapter();
-			}
-			@Override
-			public Adapter defaultCase(EObject object) {
-				return createEObjectAdapter();
-			}
-		};
-
-	/**
-	 * Creates an adapter for the <code>target</code>.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param target the object to adapt.
-	 * @return the adapter for the <code>target</code>.
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdapter(Notifier target) {
-		return modelSwitch.doSwitch((EObject)target);
-	}
-
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.NamedElement <em>Named Element</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 tools.descartes.dni.dnimm3.NamedElement
-	 * @generated
-	 */
-	public Adapter createNamedElementAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.Identifier <em>Identifier</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 tools.descartes.dni.dnimm3.Identifier
-	 * @generated
-	 */
-	public Adapter createIdentifierAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.Entity <em>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 tools.descartes.dni.dnimm3.Entity
-	 * @generated
-	 */
-	public Adapter createEntityAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.NetworkInfrastructure <em>Network Infrastructure</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 tools.descartes.dni.dnimm3.NetworkInfrastructure
-	 * @generated
-	 */
-	public Adapter createNetworkInfrastructureAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.NetworkStructure <em>Network Structure</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 tools.descartes.dni.dnimm3.NetworkStructure
-	 * @generated
-	 */
-	public Adapter createNetworkStructureAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.Node <em>Node</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 tools.descartes.dni.dnimm3.Node
-	 * @generated
-	 */
-	public Adapter createNodeAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.End <em>End</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 tools.descartes.dni.dnimm3.End
-	 * @generated
-	 */
-	public Adapter createEndAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.Intermediate <em>Intermediate</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 tools.descartes.dni.dnimm3.Intermediate
-	 * @generated
-	 */
-	public Adapter createIntermediateAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.Link <em>Link</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 tools.descartes.dni.dnimm3.Link
-	 * @generated
-	 */
-	public Adapter createLinkAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.NetworkInterface <em>Network Interface</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 tools.descartes.dni.dnimm3.NetworkInterface
-	 * @generated
-	 */
-	public Adapter createNetworkInterfaceAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.NetworkTraffic <em>Network Traffic</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 tools.descartes.dni.dnimm3.NetworkTraffic
-	 * @generated
-	 */
-	public Adapter createNetworkTrafficAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.Flow <em>Flow</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 tools.descartes.dni.dnimm3.Flow
-	 * @generated
-	 */
-	public Adapter createFlowAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.SdnControlFlow <em>Sdn Control Flow</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 tools.descartes.dni.dnimm3.SdnControlFlow
-	 * @generated
-	 */
-	public Adapter createSdnControlFlowAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.FlowTraffic <em>Flow Traffic</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 tools.descartes.dni.dnimm3.FlowTraffic
-	 * @generated
-	 */
-	public Adapter createFlowTrafficAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.GenericFlowTraffic <em>Generic Flow Traffic</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 tools.descartes.dni.dnimm3.GenericFlowTraffic
-	 * @generated
-	 */
-	public Adapter createGenericFlowTrafficAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.CommunicatingApplication <em>Communicating Application</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 tools.descartes.dni.dnimm3.CommunicatingApplication
-	 * @generated
-	 */
-	public Adapter createCommunicatingApplicationAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.TrafficSource <em>Traffic Source</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 tools.descartes.dni.dnimm3.TrafficSource
-	 * @generated
-	 */
-	public Adapter createTrafficSourceAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.NetworkConfiguration <em>Network Configuration</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 tools.descartes.dni.dnimm3.NetworkConfiguration
-	 * @generated
-	 */
-	public Adapter createNetworkConfigurationAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.ProtocolsRepository <em>Protocols Repository</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 tools.descartes.dni.dnimm3.ProtocolsRepository
-	 * @generated
-	 */
-	public Adapter createProtocolsRepositoryAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.ProtocolStack <em>Protocol Stack</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 tools.descartes.dni.dnimm3.ProtocolStack
-	 * @generated
-	 */
-	public Adapter createProtocolStackAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.ProtocolLayer <em>Protocol Layer</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 tools.descartes.dni.dnimm3.ProtocolLayer
-	 * @generated
-	 */
-	public Adapter createProtocolLayerAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.NetworkProtocol <em>Network Protocol</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 tools.descartes.dni.dnimm3.NetworkProtocol
-	 * @generated
-	 */
-	public Adapter createNetworkProtocolAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.RoutesRepository <em>Routes Repository</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 tools.descartes.dni.dnimm3.RoutesRepository
-	 * @generated
-	 */
-	public Adapter createRoutesRepositoryAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.Direction <em>Direction</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 tools.descartes.dni.dnimm3.Direction
-	 * @generated
-	 */
-	public Adapter createDirectionAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.FlowRoute <em>Flow Route</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 tools.descartes.dni.dnimm3.FlowRoute
-	 * @generated
-	 */
-	public Adapter createFlowRouteAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.Route <em>Route</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 tools.descartes.dni.dnimm3.Route
-	 * @generated
-	 */
-	public Adapter createRouteAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.Hop <em>Hop</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 tools.descartes.dni.dnimm3.Hop
-	 * @generated
-	 */
-	public Adapter createHopAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.EntityAddress <em>Entity Address</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 tools.descartes.dni.dnimm3.EntityAddress
-	 * @generated
-	 */
-	public Adapter createEntityAddressAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.AddressableEntity <em>Addressable 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 tools.descartes.dni.dnimm3.AddressableEntity
-	 * @generated
-	 */
-	public Adapter createAddressableEntityAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.Workload <em>Workload</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 tools.descartes.dni.dnimm3.Workload
-	 * @generated
-	 */
-	public Adapter createWorkloadAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.GenericWorkload <em>Generic Workload</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 tools.descartes.dni.dnimm3.GenericWorkload
-	 * @generated
-	 */
-	public Adapter createGenericWorkloadAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.AbstractAction <em>Abstract Action</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 tools.descartes.dni.dnimm3.AbstractAction
-	 * @generated
-	 */
-	public Adapter createAbstractActionAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.BranchAction <em>Branch Action</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 tools.descartes.dni.dnimm3.BranchAction
-	 * @generated
-	 */
-	public Adapter createBranchActionAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.LoopAction <em>Loop Action</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 tools.descartes.dni.dnimm3.LoopAction
-	 * @generated
-	 */
-	public Adapter createLoopActionAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.SequenceAction <em>Sequence Action</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 tools.descartes.dni.dnimm3.SequenceAction
-	 * @generated
-	 */
-	public Adapter createSequenceActionAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.StartAction <em>Start Action</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 tools.descartes.dni.dnimm3.StartAction
-	 * @generated
-	 */
-	public Adapter createStartActionAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.StopAction <em>Stop Action</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 tools.descartes.dni.dnimm3.StopAction
-	 * @generated
-	 */
-	public Adapter createStopActionAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.TransmitAction <em>Transmit Action</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 tools.descartes.dni.dnimm3.TransmitAction
-	 * @generated
-	 */
-	public Adapter createTransmitActionAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.WaitAction <em>Wait Action</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 tools.descartes.dni.dnimm3.WaitAction
-	 * @generated
-	 */
-	public Adapter createWaitActionAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.PerformanceSpecification <em>Performance 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 tools.descartes.dni.dnimm3.PerformanceSpecification
-	 * @generated
-	 */
-	public Adapter createPerformanceSpecificationAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.PerformanceLink <em>Performance Link</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 tools.descartes.dni.dnimm3.PerformanceLink
-	 * @generated
-	 */
-	public Adapter createPerformanceLinkAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.PerformanceNetworkInterface <em>Performance Network Interface</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 tools.descartes.dni.dnimm3.PerformanceNetworkInterface
-	 * @generated
-	 */
-	public Adapter createPerformanceNetworkInterfaceAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.SdnFlowRule <em>Sdn Flow Rule</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 tools.descartes.dni.dnimm3.SdnFlowRule
-	 * @generated
-	 */
-	public Adapter createSdnFlowRuleAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.SdnController <em>Sdn Controller</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 tools.descartes.dni.dnimm3.SdnController
-	 * @generated
-	 */
-	public Adapter createSdnControllerAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.SdnControllerApplication <em>Sdn Controller Application</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 tools.descartes.dni.dnimm3.SdnControllerApplication
-	 * @generated
-	 */
-	public Adapter createSdnControllerApplicationAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.IType <em>IType</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 tools.descartes.dni.dnimm3.IType
-	 * @generated
-	 */
-	public Adapter createITypeAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.Common <em>Common</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 tools.descartes.dni.dnimm3.Common
-	 * @generated
-	 */
-	public Adapter createCommonAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.SDN <em>SDN</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 tools.descartes.dni.dnimm3.SDN
-	 * @generated
-	 */
-	public Adapter createSDNAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.IntermediatePerformance <em>Intermediate Performance</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 tools.descartes.dni.dnimm3.IntermediatePerformance
-	 * @generated
-	 */
-	public Adapter createIntermediatePerformanceAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.EndPerformance <em>End Performance</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 tools.descartes.dni.dnimm3.EndPerformance
-	 * @generated
-	 */
-	public Adapter createEndPerformanceAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.PerformanceSdnNode <em>Performance Sdn Node</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 tools.descartes.dni.dnimm3.PerformanceSdnNode
-	 * @generated
-	 */
-	public Adapter createPerformanceSdnNodeAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.DNIUnit <em>Unit</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 tools.descartes.dni.dnimm3.DNIUnit
-	 * @generated
-	 */
-	public Adapter createDNIUnitAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.SpeedUnit <em>Speed Unit</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 tools.descartes.dni.dnimm3.SpeedUnit
-	 * @generated
-	 */
-	public Adapter createSpeedUnitAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.DataUnit <em>Data Unit</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 tools.descartes.dni.dnimm3.DataUnit
-	 * @generated
-	 */
-	public Adapter createDataUnitAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.TimeUnit <em>Time Unit</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 tools.descartes.dni.dnimm3.TimeUnit
-	 * @generated
-	 */
-	public Adapter createTimeUnitAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.Dependency <em>Dependency</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 tools.descartes.dni.dnimm3.Dependency
-	 * @generated
-	 */
-	public Adapter createDependencyAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.Variable <em>Variable</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 tools.descartes.dni.dnimm3.Variable
-	 * @generated
-	 */
-	public Adapter createVariableAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.Function <em>Function</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 tools.descartes.dni.dnimm3.Function
-	 * @generated
-	 */
-	public Adapter createFunctionAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.ConstantDoubleVariable <em>Constant Double Variable</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 tools.descartes.dni.dnimm3.ConstantDoubleVariable
-	 * @generated
-	 */
-	public Adapter createConstantDoubleVariableAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.ConstantLongVariable <em>Constant Long Variable</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 tools.descartes.dni.dnimm3.ConstantLongVariable
-	 * @generated
-	 */
-	public Adapter createConstantLongVariableAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.RandomVariable <em>Random Variable</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 tools.descartes.dni.dnimm3.RandomVariable
-	 * @generated
-	 */
-	public Adapter createRandomVariableAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.FloatCoordinate <em>Float Coordinate</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 tools.descartes.dni.dnimm3.FloatCoordinate
-	 * @generated
-	 */
-	public Adapter createFloatCoordinateAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.DiscreteFunction <em>Discrete Function</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 tools.descartes.dni.dnimm3.DiscreteFunction
-	 * @generated
-	 */
-	public Adapter createDiscreteFunctionAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.ExponentialFunction <em>Exponential Function</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 tools.descartes.dni.dnimm3.ExponentialFunction
-	 * @generated
-	 */
-	public Adapter createExponentialFunctionAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.EntityTypes <em>Entity Types</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 tools.descartes.dni.dnimm3.EntityTypes
-	 * @generated
-	 */
-	public Adapter createEntityTypesAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.ITypedEntity <em>ITyped 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 tools.descartes.dni.dnimm3.ITypedEntity
-	 * @generated
-	 */
-	public Adapter createITypedEntityAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.NodeType <em>Node Type</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 tools.descartes.dni.dnimm3.NodeType
-	 * @generated
-	 */
-	public Adapter createNodeTypeAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.EndPerformanceType <em>End Performance Type</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 tools.descartes.dni.dnimm3.EndPerformanceType
-	 * @generated
-	 */
-	public Adapter createEndPerformanceTypeAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.IntermediatePerformanceType <em>Intermediate Performance Type</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 tools.descartes.dni.dnimm3.IntermediatePerformanceType
-	 * @generated
-	 */
-	public Adapter createIntermediatePerformanceTypeAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.SdnNodePerformanceType <em>Sdn Node Performance Type</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 tools.descartes.dni.dnimm3.SdnNodePerformanceType
-	 * @generated
-	 */
-	public Adapter createSdnNodePerformanceTypeAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.NetworkInterfaceType <em>Network Interface Type</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 tools.descartes.dni.dnimm3.NetworkInterfaceType
-	 * @generated
-	 */
-	public Adapter createNetworkInterfaceTypeAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.NetworkInterfacePerformanceType <em>Network Interface Performance Type</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 tools.descartes.dni.dnimm3.NetworkInterfacePerformanceType
-	 * @generated
-	 */
-	public Adapter createNetworkInterfacePerformanceTypeAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.LinkType <em>Link Type</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 tools.descartes.dni.dnimm3.LinkType
-	 * @generated
-	 */
-	public Adapter createLinkTypeAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3.LinkPerformanceType <em>Link Performance Type</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 tools.descartes.dni.dnimm3.LinkPerformanceType
-	 * @generated
-	 */
-	public Adapter createLinkPerformanceTypeAdapter() {
-		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;
-	}
-
-} //DNIAdapterFactory
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/util/DNISwitch.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/util/DNISwitch.java
deleted file mode 100644
index 72672c60..00000000
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/util/DNISwitch.java
+++ /dev/null
@@ -1,1754 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3.util;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-
-import org.eclipse.emf.ecore.util.Switch;
-
-import tools.descartes.dni.dnimm3.*;
-
-/**
- * <!-- 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 tools.descartes.dni.dnimm3.DNIPackage
- * @generated
- */
-public class DNISwitch<T> extends Switch<T> {
-	/**
-	 * The cached model package
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected static DNIPackage modelPackage;
-
-	/**
-	 * Creates an instance of the switch.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DNISwitch() {
-		if (modelPackage == null) {
-			modelPackage = DNIPackage.eINSTANCE;
-		}
-	}
-
-	/**
-	 * Checks whether this is a switch for the given package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param ePackage the package in question.
-	 * @return whether this is a switch for the given package.
-	 * @generated
-	 */
-	@Override
-	protected boolean isSwitchFor(EPackage ePackage) {
-		return ePackage == modelPackage;
-	}
-
-	/**
-	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the first non-null result returned by a <code>caseXXX</code> call.
-	 * @generated
-	 */
-	@Override
-	protected T doSwitch(int classifierID, EObject theEObject) {
-		switch (classifierID) {
-			case DNIPackage.NAMED_ELEMENT: {
-				NamedElement namedElement = (NamedElement)theEObject;
-				T result = caseNamedElement(namedElement);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.IDENTIFIER: {
-				Identifier identifier = (Identifier)theEObject;
-				T result = caseIdentifier(identifier);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.ENTITY: {
-				Entity entity = (Entity)theEObject;
-				T result = caseEntity(entity);
-				if (result == null) result = caseIdentifier(entity);
-				if (result == null) result = caseNamedElement(entity);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.NETWORK_INFRASTRUCTURE: {
-				NetworkInfrastructure networkInfrastructure = (NetworkInfrastructure)theEObject;
-				T result = caseNetworkInfrastructure(networkInfrastructure);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.NETWORK_STRUCTURE: {
-				NetworkStructure networkStructure = (NetworkStructure)theEObject;
-				T result = caseNetworkStructure(networkStructure);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.NODE: {
-				Node node = (Node)theEObject;
-				T result = caseNode(node);
-				if (result == null) result = caseEntity(node);
-				if (result == null) result = caseIdentifier(node);
-				if (result == null) result = caseNamedElement(node);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.END: {
-				End end = (End)theEObject;
-				T result = caseEnd(end);
-				if (result == null) result = caseIdentifier(end);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.INTERMEDIATE: {
-				Intermediate intermediate = (Intermediate)theEObject;
-				T result = caseIntermediate(intermediate);
-				if (result == null) result = caseIdentifier(intermediate);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.LINK: {
-				Link link = (Link)theEObject;
-				T result = caseLink(link);
-				if (result == null) result = caseEntity(link);
-				if (result == null) result = caseIdentifier(link);
-				if (result == null) result = caseNamedElement(link);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.NETWORK_INTERFACE: {
-				NetworkInterface networkInterface = (NetworkInterface)theEObject;
-				T result = caseNetworkInterface(networkInterface);
-				if (result == null) result = caseAddressableEntity(networkInterface);
-				if (result == null) result = caseEntity(networkInterface);
-				if (result == null) result = caseNamedElement(networkInterface);
-				if (result == null) result = caseIdentifier(networkInterface);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.NETWORK_TRAFFIC: {
-				NetworkTraffic networkTraffic = (NetworkTraffic)theEObject;
-				T result = caseNetworkTraffic(networkTraffic);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.FLOW: {
-				Flow flow = (Flow)theEObject;
-				T result = caseFlow(flow);
-				if (result == null) result = caseEntity(flow);
-				if (result == null) result = caseIdentifier(flow);
-				if (result == null) result = caseNamedElement(flow);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.SDN_CONTROL_FLOW: {
-				SdnControlFlow sdnControlFlow = (SdnControlFlow)theEObject;
-				T result = caseSdnControlFlow(sdnControlFlow);
-				if (result == null) result = caseFlow(sdnControlFlow);
-				if (result == null) result = caseEntity(sdnControlFlow);
-				if (result == null) result = caseIdentifier(sdnControlFlow);
-				if (result == null) result = caseNamedElement(sdnControlFlow);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.FLOW_TRAFFIC: {
-				FlowTraffic flowTraffic = (FlowTraffic)theEObject;
-				T result = caseFlowTraffic(flowTraffic);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.GENERIC_FLOW_TRAFFIC: {
-				GenericFlowTraffic genericFlowTraffic = (GenericFlowTraffic)theEObject;
-				T result = caseGenericFlowTraffic(genericFlowTraffic);
-				if (result == null) result = caseFlowTraffic(genericFlowTraffic);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.COMMUNICATING_APPLICATION: {
-				CommunicatingApplication communicatingApplication = (CommunicatingApplication)theEObject;
-				T result = caseCommunicatingApplication(communicatingApplication);
-				if (result == null) result = caseEntity(communicatingApplication);
-				if (result == null) result = caseIdentifier(communicatingApplication);
-				if (result == null) result = caseNamedElement(communicatingApplication);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.TRAFFIC_SOURCE: {
-				TrafficSource trafficSource = (TrafficSource)theEObject;
-				T result = caseTrafficSource(trafficSource);
-				if (result == null) result = caseEntity(trafficSource);
-				if (result == null) result = caseAddressableEntity(trafficSource);
-				if (result == null) result = caseIdentifier(trafficSource);
-				if (result == null) result = caseNamedElement(trafficSource);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.NETWORK_CONFIGURATION: {
-				NetworkConfiguration networkConfiguration = (NetworkConfiguration)theEObject;
-				T result = caseNetworkConfiguration(networkConfiguration);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.PROTOCOLS_REPOSITORY: {
-				ProtocolsRepository protocolsRepository = (ProtocolsRepository)theEObject;
-				T result = caseProtocolsRepository(protocolsRepository);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.PROTOCOL_STACK: {
-				ProtocolStack protocolStack = (ProtocolStack)theEObject;
-				T result = caseProtocolStack(protocolStack);
-				if (result == null) result = caseEntity(protocolStack);
-				if (result == null) result = caseIdentifier(protocolStack);
-				if (result == null) result = caseNamedElement(protocolStack);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.PROTOCOL_LAYER: {
-				ProtocolLayer protocolLayer = (ProtocolLayer)theEObject;
-				T result = caseProtocolLayer(protocolLayer);
-				if (result == null) result = caseEntity(protocolLayer);
-				if (result == null) result = caseIdentifier(protocolLayer);
-				if (result == null) result = caseNamedElement(protocolLayer);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.NETWORK_PROTOCOL: {
-				NetworkProtocol networkProtocol = (NetworkProtocol)theEObject;
-				T result = caseNetworkProtocol(networkProtocol);
-				if (result == null) result = caseEntity(networkProtocol);
-				if (result == null) result = caseIdentifier(networkProtocol);
-				if (result == null) result = caseNamedElement(networkProtocol);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.ROUTES_REPOSITORY: {
-				RoutesRepository routesRepository = (RoutesRepository)theEObject;
-				T result = caseRoutesRepository(routesRepository);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.DIRECTION: {
-				Direction direction = (Direction)theEObject;
-				T result = caseDirection(direction);
-				if (result == null) result = caseEntity(direction);
-				if (result == null) result = caseIdentifier(direction);
-				if (result == null) result = caseNamedElement(direction);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.FLOW_ROUTE: {
-				FlowRoute flowRoute = (FlowRoute)theEObject;
-				T result = caseFlowRoute(flowRoute);
-				if (result == null) result = caseEntity(flowRoute);
-				if (result == null) result = caseIdentifier(flowRoute);
-				if (result == null) result = caseNamedElement(flowRoute);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.ROUTE: {
-				Route route = (Route)theEObject;
-				T result = caseRoute(route);
-				if (result == null) result = caseEntity(route);
-				if (result == null) result = caseIdentifier(route);
-				if (result == null) result = caseNamedElement(route);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.HOP: {
-				Hop hop = (Hop)theEObject;
-				T result = caseHop(hop);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.ENTITY_ADDRESS: {
-				EntityAddress entityAddress = (EntityAddress)theEObject;
-				T result = caseEntityAddress(entityAddress);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.ADDRESSABLE_ENTITY: {
-				AddressableEntity addressableEntity = (AddressableEntity)theEObject;
-				T result = caseAddressableEntity(addressableEntity);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.WORKLOAD: {
-				Workload workload = (Workload)theEObject;
-				T result = caseWorkload(workload);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.GENERIC_WORKLOAD: {
-				GenericWorkload genericWorkload = (GenericWorkload)theEObject;
-				T result = caseGenericWorkload(genericWorkload);
-				if (result == null) result = caseWorkload(genericWorkload);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.ABSTRACT_ACTION: {
-				AbstractAction abstractAction = (AbstractAction)theEObject;
-				T result = caseAbstractAction(abstractAction);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.BRANCH_ACTION: {
-				BranchAction branchAction = (BranchAction)theEObject;
-				T result = caseBranchAction(branchAction);
-				if (result == null) result = caseAbstractAction(branchAction);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.LOOP_ACTION: {
-				LoopAction loopAction = (LoopAction)theEObject;
-				T result = caseLoopAction(loopAction);
-				if (result == null) result = caseAbstractAction(loopAction);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.SEQUENCE_ACTION: {
-				SequenceAction sequenceAction = (SequenceAction)theEObject;
-				T result = caseSequenceAction(sequenceAction);
-				if (result == null) result = caseAbstractAction(sequenceAction);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.START_ACTION: {
-				StartAction startAction = (StartAction)theEObject;
-				T result = caseStartAction(startAction);
-				if (result == null) result = caseAbstractAction(startAction);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.STOP_ACTION: {
-				StopAction stopAction = (StopAction)theEObject;
-				T result = caseStopAction(stopAction);
-				if (result == null) result = caseAbstractAction(stopAction);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.TRANSMIT_ACTION: {
-				TransmitAction transmitAction = (TransmitAction)theEObject;
-				T result = caseTransmitAction(transmitAction);
-				if (result == null) result = caseAbstractAction(transmitAction);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.WAIT_ACTION: {
-				WaitAction waitAction = (WaitAction)theEObject;
-				T result = caseWaitAction(waitAction);
-				if (result == null) result = caseAbstractAction(waitAction);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.PERFORMANCE_SPECIFICATION: {
-				PerformanceSpecification performanceSpecification = (PerformanceSpecification)theEObject;
-				T result = casePerformanceSpecification(performanceSpecification);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.PERFORMANCE_LINK: {
-				PerformanceLink performanceLink = (PerformanceLink)theEObject;
-				T result = casePerformanceLink(performanceLink);
-				if (result == null) result = casePerformanceSpecification(performanceLink);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.PERFORMANCE_NETWORK_INTERFACE: {
-				PerformanceNetworkInterface performanceNetworkInterface = (PerformanceNetworkInterface)theEObject;
-				T result = casePerformanceNetworkInterface(performanceNetworkInterface);
-				if (result == null) result = casePerformanceSpecification(performanceNetworkInterface);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.SDN_FLOW_RULE: {
-				SdnFlowRule sdnFlowRule = (SdnFlowRule)theEObject;
-				T result = caseSdnFlowRule(sdnFlowRule);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.SDN_CONTROLLER: {
-				SdnController sdnController = (SdnController)theEObject;
-				T result = caseSdnController(sdnController);
-				if (result == null) result = caseCommunicatingApplication(sdnController);
-				if (result == null) result = caseEntity(sdnController);
-				if (result == null) result = caseIdentifier(sdnController);
-				if (result == null) result = caseNamedElement(sdnController);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.SDN_CONTROLLER_APPLICATION: {
-				SdnControllerApplication sdnControllerApplication = (SdnControllerApplication)theEObject;
-				T result = caseSdnControllerApplication(sdnControllerApplication);
-				if (result == null) result = caseCommunicatingApplication(sdnControllerApplication);
-				if (result == null) result = caseEntity(sdnControllerApplication);
-				if (result == null) result = caseIdentifier(sdnControllerApplication);
-				if (result == null) result = caseNamedElement(sdnControllerApplication);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.ITYPE: {
-				IType iType = (IType)theEObject;
-				T result = caseIType(iType);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.COMMON: {
-				Common common = (Common)theEObject;
-				T result = caseCommon(common);
-				if (result == null) result = caseIType(common);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.SDN: {
-				SDN sdn = (SDN)theEObject;
-				T result = caseSDN(sdn);
-				if (result == null) result = caseIType(sdn);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.INTERMEDIATE_PERFORMANCE: {
-				IntermediatePerformance intermediatePerformance = (IntermediatePerformance)theEObject;
-				T result = caseIntermediatePerformance(intermediatePerformance);
-				if (result == null) result = casePerformanceSpecification(intermediatePerformance);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.END_PERFORMANCE: {
-				EndPerformance endPerformance = (EndPerformance)theEObject;
-				T result = caseEndPerformance(endPerformance);
-				if (result == null) result = casePerformanceSpecification(endPerformance);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.PERFORMANCE_SDN_NODE: {
-				PerformanceSdnNode performanceSdnNode = (PerformanceSdnNode)theEObject;
-				T result = casePerformanceSdnNode(performanceSdnNode);
-				if (result == null) result = casePerformanceSpecification(performanceSdnNode);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.DNI_UNIT: {
-				DNIUnit dniUnit = (DNIUnit)theEObject;
-				T result = caseDNIUnit(dniUnit);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.SPEED_UNIT: {
-				SpeedUnit speedUnit = (SpeedUnit)theEObject;
-				T result = caseSpeedUnit(speedUnit);
-				if (result == null) result = caseDNIUnit(speedUnit);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.DATA_UNIT: {
-				DataUnit dataUnit = (DataUnit)theEObject;
-				T result = caseDataUnit(dataUnit);
-				if (result == null) result = caseDNIUnit(dataUnit);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.TIME_UNIT: {
-				TimeUnit timeUnit = (TimeUnit)theEObject;
-				T result = caseTimeUnit(timeUnit);
-				if (result == null) result = caseDNIUnit(timeUnit);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.DEPENDENCY: {
-				Dependency dependency = (Dependency)theEObject;
-				T result = caseDependency(dependency);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.VARIABLE: {
-				Variable variable = (Variable)theEObject;
-				T result = caseVariable(variable);
-				if (result == null) result = caseDependency(variable);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.FUNCTION: {
-				Function function = (Function)theEObject;
-				T result = caseFunction(function);
-				if (result == null) result = caseDependency(function);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.CONSTANT_DOUBLE_VARIABLE: {
-				ConstantDoubleVariable constantDoubleVariable = (ConstantDoubleVariable)theEObject;
-				T result = caseConstantDoubleVariable(constantDoubleVariable);
-				if (result == null) result = caseVariable(constantDoubleVariable);
-				if (result == null) result = caseDependency(constantDoubleVariable);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.CONSTANT_LONG_VARIABLE: {
-				ConstantLongVariable constantLongVariable = (ConstantLongVariable)theEObject;
-				T result = caseConstantLongVariable(constantLongVariable);
-				if (result == null) result = caseVariable(constantLongVariable);
-				if (result == null) result = caseDependency(constantLongVariable);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.RANDOM_VARIABLE: {
-				RandomVariable randomVariable = (RandomVariable)theEObject;
-				T result = caseRandomVariable(randomVariable);
-				if (result == null) result = caseVariable(randomVariable);
-				if (result == null) result = caseDependency(randomVariable);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.FLOAT_COORDINATE: {
-				FloatCoordinate floatCoordinate = (FloatCoordinate)theEObject;
-				T result = caseFloatCoordinate(floatCoordinate);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.DISCRETE_FUNCTION: {
-				DiscreteFunction discreteFunction = (DiscreteFunction)theEObject;
-				T result = caseDiscreteFunction(discreteFunction);
-				if (result == null) result = caseFunction(discreteFunction);
-				if (result == null) result = caseDependency(discreteFunction);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.EXPONENTIAL_FUNCTION: {
-				ExponentialFunction exponentialFunction = (ExponentialFunction)theEObject;
-				T result = caseExponentialFunction(exponentialFunction);
-				if (result == null) result = caseFunction(exponentialFunction);
-				if (result == null) result = caseDependency(exponentialFunction);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.ENTITY_TYPES: {
-				EntityTypes entityTypes = (EntityTypes)theEObject;
-				T result = caseEntityTypes(entityTypes);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.ITYPED_ENTITY: {
-				ITypedEntity iTypedEntity = (ITypedEntity)theEObject;
-				T result = caseITypedEntity(iTypedEntity);
-				if (result == null) result = caseNamedElement(iTypedEntity);
-				if (result == null) result = caseIdentifier(iTypedEntity);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.NODE_TYPE: {
-				NodeType nodeType = (NodeType)theEObject;
-				T result = caseNodeType(nodeType);
-				if (result == null) result = caseITypedEntity(nodeType);
-				if (result == null) result = caseNamedElement(nodeType);
-				if (result == null) result = caseIdentifier(nodeType);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.END_PERFORMANCE_TYPE: {
-				EndPerformanceType endPerformanceType = (EndPerformanceType)theEObject;
-				T result = caseEndPerformanceType(endPerformanceType);
-				if (result == null) result = caseITypedEntity(endPerformanceType);
-				if (result == null) result = caseNamedElement(endPerformanceType);
-				if (result == null) result = caseIdentifier(endPerformanceType);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.INTERMEDIATE_PERFORMANCE_TYPE: {
-				IntermediatePerformanceType intermediatePerformanceType = (IntermediatePerformanceType)theEObject;
-				T result = caseIntermediatePerformanceType(intermediatePerformanceType);
-				if (result == null) result = caseITypedEntity(intermediatePerformanceType);
-				if (result == null) result = caseNamedElement(intermediatePerformanceType);
-				if (result == null) result = caseIdentifier(intermediatePerformanceType);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.SDN_NODE_PERFORMANCE_TYPE: {
-				SdnNodePerformanceType sdnNodePerformanceType = (SdnNodePerformanceType)theEObject;
-				T result = caseSdnNodePerformanceType(sdnNodePerformanceType);
-				if (result == null) result = caseITypedEntity(sdnNodePerformanceType);
-				if (result == null) result = caseNamedElement(sdnNodePerformanceType);
-				if (result == null) result = caseIdentifier(sdnNodePerformanceType);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.NETWORK_INTERFACE_TYPE: {
-				NetworkInterfaceType networkInterfaceType = (NetworkInterfaceType)theEObject;
-				T result = caseNetworkInterfaceType(networkInterfaceType);
-				if (result == null) result = caseITypedEntity(networkInterfaceType);
-				if (result == null) result = caseNamedElement(networkInterfaceType);
-				if (result == null) result = caseIdentifier(networkInterfaceType);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.NETWORK_INTERFACE_PERFORMANCE_TYPE: {
-				NetworkInterfacePerformanceType networkInterfacePerformanceType = (NetworkInterfacePerformanceType)theEObject;
-				T result = caseNetworkInterfacePerformanceType(networkInterfacePerformanceType);
-				if (result == null) result = caseITypedEntity(networkInterfacePerformanceType);
-				if (result == null) result = caseNamedElement(networkInterfacePerformanceType);
-				if (result == null) result = caseIdentifier(networkInterfacePerformanceType);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.LINK_TYPE: {
-				LinkType linkType = (LinkType)theEObject;
-				T result = caseLinkType(linkType);
-				if (result == null) result = caseITypedEntity(linkType);
-				if (result == null) result = caseNamedElement(linkType);
-				if (result == null) result = caseIdentifier(linkType);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIPackage.LINK_PERFORMANCE_TYPE: {
-				LinkPerformanceType linkPerformanceType = (LinkPerformanceType)theEObject;
-				T result = caseLinkPerformanceType(linkPerformanceType);
-				if (result == null) result = caseITypedEntity(linkPerformanceType);
-				if (result == null) result = caseNamedElement(linkPerformanceType);
-				if (result == null) result = caseIdentifier(linkPerformanceType);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			default: return defaultCase(theEObject);
-		}
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Named Element</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>Named Element</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseNamedElement(NamedElement object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Identifier</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>Identifier</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseIdentifier(Identifier object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>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>Entity</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEntity(Entity object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Network Infrastructure</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 Infrastructure</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseNetworkInfrastructure(NetworkInfrastructure object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Network Structure</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 Structure</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseNetworkStructure(NetworkStructure object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Node</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>Node</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseNode(Node object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>End</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>End</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEnd(End object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Intermediate</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>Intermediate</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseIntermediate(Intermediate object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Link</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>Link</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseLink(Link object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Network Interface</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 Interface</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseNetworkInterface(NetworkInterface object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Network Traffic</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 Traffic</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseNetworkTraffic(NetworkTraffic object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Flow</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>Flow</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseFlow(Flow object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Sdn Control Flow</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>Sdn Control Flow</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseSdnControlFlow(SdnControlFlow object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Flow Traffic</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>Flow Traffic</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseFlowTraffic(FlowTraffic object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Generic Flow Traffic</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>Generic Flow Traffic</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseGenericFlowTraffic(GenericFlowTraffic object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Communicating Application</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>Communicating Application</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseCommunicatingApplication(CommunicatingApplication object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Traffic Source</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>Traffic Source</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseTrafficSource(TrafficSource object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Network Configuration</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 Configuration</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseNetworkConfiguration(NetworkConfiguration object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Protocols Repository</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>Protocols Repository</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseProtocolsRepository(ProtocolsRepository object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Protocol Stack</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>Protocol Stack</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseProtocolStack(ProtocolStack object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Protocol Layer</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>Protocol Layer</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseProtocolLayer(ProtocolLayer object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Network Protocol</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 Protocol</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseNetworkProtocol(NetworkProtocol object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Routes Repository</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>Routes Repository</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseRoutesRepository(RoutesRepository object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Direction</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>Direction</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseDirection(Direction object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Flow Route</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>Flow Route</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseFlowRoute(FlowRoute object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Route</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>Route</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseRoute(Route object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Hop</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>Hop</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseHop(Hop object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Entity Address</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>Entity Address</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEntityAddress(EntityAddress object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Addressable 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>Addressable Entity</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseAddressableEntity(AddressableEntity object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Workload</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>Workload</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseWorkload(Workload object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Generic Workload</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>Generic Workload</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseGenericWorkload(GenericWorkload object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Abstract Action</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>Abstract Action</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseAbstractAction(AbstractAction object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Branch Action</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>Branch Action</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseBranchAction(BranchAction object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Loop Action</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>Loop Action</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseLoopAction(LoopAction object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Sequence Action</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>Sequence Action</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseSequenceAction(SequenceAction object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Start Action</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>Start Action</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseStartAction(StartAction object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Stop Action</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>Stop Action</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseStopAction(StopAction object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Transmit Action</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>Transmit Action</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseTransmitAction(TransmitAction object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Wait Action</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>Wait Action</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseWaitAction(WaitAction object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Performance 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>Performance Specification</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T casePerformanceSpecification(PerformanceSpecification object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Performance Link</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>Performance Link</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T casePerformanceLink(PerformanceLink object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Performance Network Interface</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>Performance Network Interface</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T casePerformanceNetworkInterface(PerformanceNetworkInterface object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Sdn Flow Rule</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>Sdn Flow Rule</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseSdnFlowRule(SdnFlowRule object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Sdn Controller</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>Sdn Controller</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseSdnController(SdnController object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Sdn Controller Application</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>Sdn Controller Application</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseSdnControllerApplication(SdnControllerApplication object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>IType</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>IType</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseIType(IType object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Common</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>Common</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseCommon(Common object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>SDN</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>SDN</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseSDN(SDN object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Intermediate Performance</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>Intermediate Performance</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseIntermediatePerformance(IntermediatePerformance object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>End Performance</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>End Performance</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEndPerformance(EndPerformance object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Performance Sdn Node</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>Performance Sdn Node</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T casePerformanceSdnNode(PerformanceSdnNode object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Unit</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>Unit</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseDNIUnit(DNIUnit object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Speed Unit</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>Speed Unit</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseSpeedUnit(SpeedUnit object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Data Unit</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>Data Unit</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseDataUnit(DataUnit object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Time Unit</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>Time Unit</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseTimeUnit(TimeUnit object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Dependency</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>Dependency</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseDependency(Dependency object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Variable</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>Variable</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseVariable(Variable object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Function</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>Function</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseFunction(Function object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Constant Double Variable</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>Constant Double Variable</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseConstantDoubleVariable(ConstantDoubleVariable object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Constant Long Variable</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>Constant Long Variable</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseConstantLongVariable(ConstantLongVariable object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Random Variable</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>Random Variable</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseRandomVariable(RandomVariable object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Float Coordinate</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>Float Coordinate</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseFloatCoordinate(FloatCoordinate object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Discrete Function</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>Discrete Function</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseDiscreteFunction(DiscreteFunction object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Exponential Function</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>Exponential Function</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseExponentialFunction(ExponentialFunction object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Entity Types</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>Entity Types</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEntityTypes(EntityTypes object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>ITyped 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>ITyped Entity</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseITypedEntity(ITypedEntity object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Node Type</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>Node Type</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseNodeType(NodeType object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>End Performance Type</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>End Performance Type</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEndPerformanceType(EndPerformanceType object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Intermediate Performance Type</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>Intermediate Performance Type</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseIntermediatePerformanceType(IntermediatePerformanceType object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Sdn Node Performance Type</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>Sdn Node Performance Type</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseSdnNodePerformanceType(SdnNodePerformanceType object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Network Interface Type</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 Interface Type</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseNetworkInterfaceType(NetworkInterfaceType object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Network Interface Performance Type</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 Interface Performance Type</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseNetworkInterfacePerformanceType(NetworkInterfacePerformanceType object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Link Type</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>Link Type</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseLinkType(LinkType object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Link Performance Type</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>Link Performance Type</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseLinkPerformanceType(LinkPerformanceType object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch, but this is the last case anyway.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
-	 * @generated
-	 */
-	@Override
-	public T defaultCase(EObject object) {
-		return null;
-	}
-
-} //DNISwitch
diff --git a/tools.descartes.dni.core/text/description.txt b/tools.descartes.dni.core/text/description.txt
deleted file mode 100644
index 7f53d50c..00000000
--- a/tools.descartes.dni.core/text/description.txt
+++ /dev/null
@@ -1,276 +0,0 @@
-Model Dnimm3
-
-This model description is not a real EMF artifact. It was generated by the
-org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's
-code generator can be extended.
-This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
-
-Package dnimm3 <dnimm3/2016/07/07/1729>
-
-  Class NamedElement
-    Attribute description : EString
-    Attribute name : EString<<1..1>>
-
-  Class Identifier
-    Attribute uid : EString
-    Attribute /uid_generated : EString
-
-  Class Entity -> Identifier, NamedElement
-
-  Class NetworkInfrastructure
-    Reference traffic : NetworkTraffic<<1..1>>
-    Reference structure : NetworkStructure<<1..1>>
-    Reference configuration : NetworkConfiguration<<1..1>>
-    Attribute dataCenterName : EString
-    Attribute metaModelVersion : EString
-
-  Class NetworkStructure
-    Reference nodes : Node<<1..*>>
-    Reference links : Link<<0..*>>
-
-  Class Node -> Entity
-    Reference interfaces : NetworkInterface<<0..*>>
-    Reference sdntype : IType<<1..1>>
-    Attribute isPhysical : EBoolean
-    Attribute /isPhysical_derived : EBoolean
-    Reference hosts : Node<<0..*>>
-    Reference isHostedOn : Node
-    Reference end : End
-    Reference intermediate : Intermediate
-
-  Class End -> Identifier
-    Reference performance : EndPerformance
-    Reference software : CommunicatingApplication<<0..*>>
-    Reference node : Node
-    Attribute /name : EString
-
-  Class Intermediate -> Identifier
-    Reference performance : IntermediatePerformance
-    Reference node : Node
-    Attribute /name : EString
-
-  Class Link -> Entity
-    Reference connects : NetworkInterface<<2..2>>
-    Reference performance : PerformanceLink
-    Attribute /name_generated : EString
-
-  Class NetworkInterface -> AddressableEntity, NamedElement, Entity
-    Reference usedProtocolStack : ProtocolStack<<1..1>>
-    Reference performance : PerformanceNetworkInterface
-    Reference node : Node
-    Attribute /name_generated : EString
-
-  Class NetworkTraffic
-    Reference flows : Flow<<0..*>>
-    Reference software : CommunicatingApplication<<0..*>>
-
-  Class Flow -> Entity
-    Reference sourceSoftware : CommunicatingApplication<<1..1>>
-    Reference generatedTraffic : FlowTraffic<<0..*>>
-    Reference destinationSoftware : CommunicatingApplication<<1..*>>
-    Reference destinationAddresses : EntityAddress<<0..*>>
-
-  Class SdnControlFlow -> Flow
-    Reference parentFlow : Flow<<1..1>>
-
-  Class FlowTraffic
-    Reference flow : Flow
-    Attribute /name : EString
-
-  Class GenericFlowTraffic -> FlowTraffic
-    Reference dataSize : Dependency<<1..1>>
-
-  Class CommunicatingApplication -> Entity
-    Reference trafficSources : TrafficSource<<0..*>>
-    Reference deployedOn : End
-
-  Class TrafficSource -> Entity, AddressableEntity
-    Reference workload : Workload<<1..*>>
-    Reference softwareComponent : CommunicatingApplication<<1..1>>
-
-  Class NetworkConfiguration
-    Reference protocolsAndStacks : ProtocolsRepository<<1..1>>
-    Reference routes : RoutesRepository<<1..1>>
-    Reference rules : SdnFlowRule<<0..*>>
-
-  Class ProtocolsRepository
-    Reference stacks : ProtocolStack<<0..*>>
-    Reference protocols : NetworkProtocol<<1..*>>
-
-  Class ProtocolStack -> Entity
-    Reference layers : ProtocolLayer<<1..*>>
-
-  Class ProtocolLayer -> Entity
-    Reference protocol : NetworkProtocol<<1..1>>
-    Reference isCarriedBy : ProtocolLayer
-    Reference carries : ProtocolLayer
-
-  Class NetworkProtocol -> Entity
-    Attribute mtu : EInt<<1..1>>
-    Attribute headersLength : EInt<<1..1>>
-
-  Class RoutesRepository
-    Reference routes : Route<<0..*>>
-    Reference flowRoutes : FlowRoute<<0..*>>
-    Reference directions : Direction<<0..*>>
-
-  Class Direction -> Entity
-    Reference onNode : Node<<1..1>>
-    Reference flow : Flow<<1..1>>
-    Reference via : NetworkInterface<<1..1>>
-    Attribute default : EInt
-    Attribute probability : EFloat<<1..1>>
-
-  Class FlowRoute -> Entity
-    Reference hops : Hop
-    Reference flow : Flow<<1..1>>
-    Reference start : NetworkInterface<<1..1>>
-    Reference end : NetworkInterface<<1..1>>
-    Attribute probability : EFloat<<1..1>>
-
-  Class Route -> Entity
-    Reference hops : Hop
-    Reference start : NetworkInterface<<1..1>>
-    Reference end : NetworkInterface<<1..1>>
-
-  Class Hop
-    Reference nextHop : Hop
-    Reference interfaceref : NetworkInterface<<1..1>>
-
-  Class EntityAddress
-    Attribute address : EString
-    Reference addressGivenBy : NetworkProtocol
-
-  Class AddressableEntity
-    Reference addresses : EntityAddress<<0..*>>
-
-  Class Workload
-
-  Class GenericWorkload -> Workload
-    Reference actions : AbstractAction<<0..*>>
-
-  Class AbstractAction
-
-  Class BranchAction -> AbstractAction
-    Reference intern : AbstractAction<<1..*>>
-
-  Class LoopAction -> AbstractAction
-    Reference intern : AbstractAction<<1..1>>
-    Reference numIterations : Dependency<<1..1>>
-
-  Class SequenceAction -> AbstractAction
-    Reference intern : AbstractAction<<1..*>>
-
-  Class StartAction -> AbstractAction
-
-  Class StopAction -> AbstractAction
-
-  Class TransmitAction -> AbstractAction
-    Reference flowTraffic : FlowTraffic<<1..1>>
-
-  Class WaitAction -> AbstractAction
-    Reference waitTime : Dependency<<1..1>>
-
-  Class PerformanceSpecification
-
-  Class PerformanceLink -> PerformanceSpecification
-    Reference propagationDelay : Dependency<<1..1>>
-    Reference maxSupportedBandwidth : Dependency<<1..1>>
-
-  Class PerformanceNetworkInterface -> PerformanceSpecification
-    Attribute isUp : EBoolean
-    Attribute MTU : EInt<<1..1>>
-    Reference packetProcessingTime : Dependency<<1..1>>
-    Reference interfaceThroughput : Variable<<1..1>>
-
-  Class SdnFlowRule
-    Reference sdnSwitch : Node<<1..1>>
-    Reference flow : Flow<<1..1>>
-    Attribute probabilityHardware : EFloat<<1..1>>
-    Attribute probabilitySoftware : EFloat
-    Attribute probabilityController : EFloat
-    Reference controllerApplication : SdnControllerApplication
-
-  Class SdnController -> CommunicatingApplication
-    Reference applications : SdnControllerApplication<<0..*>>
-    Reference nodes : SDN<<0..*>>
-
-  Class SdnControllerApplication -> CommunicatingApplication
-    Reference belongsTo : SdnController
-    Attribute isDefault : EBoolean<<1..1>>
-    Reference responseDelay : Dependency
-
-  Class IType
-
-  Class Common -> IType
-
-  Class SDN -> IType
-    Reference performance : PerformanceSdnNode<<1..1>>
-    Reference controller : SdnController<<1..*>>
-    Reference openFlowEndPoint : CommunicatingApplication<<1..1>>
-
-  Class IntermediatePerformance -> PerformanceSpecification
-    Reference forwardingLatency : Dependency<<1..1>>
-    Reference forwardingBandwidthBPS : Dependency<<1..1>>
-    Reference switchingCapacityPPS : Dependency<<1..1>>
-
-  Class EndPerformance -> PerformanceSpecification
-    Reference softwareLayersDelay : Dependency<<1..1>>
-
-  Class PerformanceSdnNode -> PerformanceSpecification
-    Reference softwareSwitchingPerformance : IntermediatePerformance
-    Reference hardwareSwitchingPerformance : IntermediatePerformance
-
-  Class DNIUnit
-
-  Class SpeedUnit -> DNIUnit
-    Attribute unit : Speed<<1..1>>
-    Attribute prefix : UnitPrefix<<1..1>>
-
-  Class DataUnit -> DNIUnit
-    Attribute prefix : UnitPrefix<<1..1>>
-
-  Class TimeUnit -> DNIUnit
-    Attribute unit : Time
-
-  Class Dependency
-    Reference unit : DNIUnit
-
-  Class Variable -> Dependency
-
-  Class Function -> Dependency
-
-  Class ConstantDoubleVariable -> Variable
-    Attribute value : EDouble<<1..1>>
-
-  Class ConstantLongVariable -> Variable
-    Attribute value : ELong<<1..1>>
-
-  Class RandomVariable -> Variable
-    Reference cdf : Function<<1..1>>
-
-  Class FloatCoordinate
-    Attribute x : EDouble
-    Attribute y : EDouble
-
-  Class DiscreteFunction -> Function
-    Reference vals : FloatCoordinate<<1..*>>
-
-  Class ExponentialFunction -> Function
-    Attribute lambda : EDouble
-
-  Enum UnitPrefix
-    Literal none = 0
-    Literal K = 1
-    Literal M = 2
-    Literal G = 3
-
-  Enum Speed
-    Literal BytesPerSec = 0
-    Literal bitsPerSec = 1
-    Literal packetsPerSec = 2
-
-  Enum Time
-    Literal Seconds = 0
-    Literal Milliseconds = 1
-    Literal Microseconds = 2
-- 
GitLab