Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'cim-cache/org.eclipse.openk.sourcesystem.mockuptopology')
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/pom.xml32
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/converter/TopologyValueDecoder.java220
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/receiver/TopologyReader.java48
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/receiver/TopologyReceiver.java149
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AbstractCimResponder.java91
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AbstractCimRestResponder.java88
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AbstractMockUpTopologyCimRestResponder.java93
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AbstractMockUpTopologyCimRestResponderOk.java92
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AcLineSegmentsResponderV2.java58
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AcLineSegmentsResponderV3.java63
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BaseVoltagesResponderV2.java58
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BaseVoltagesResponderV3.java63
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BaysResponderV2.java62
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BreakersResponderV2.java58
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BreakersResponderV3.java64
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BusbarSectionsResponderV2.java58
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BusbarSectionsResponderV3.java64
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/CimResponderConfiguration.java16
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/DisconnectorsResponderV2.java58
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/DisconnectorsResponderV3.java64
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/EarthFaultCompensatorsResponderV1.java64
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/EnergyConsumersResponderV2.java58
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/EnergyConsumersResponderV3.java64
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/EnergySourcesResponderV2.java58
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/EnergySourcesResponderV3.java64
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/GeographicalRegionsResponderV3.java64
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/GroundingImpedancesResponderV1.java64
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/GroundsResponderV1.java64
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/ICimRequestParameters.java53
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/JunctionsResponderV2.java59
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/JunctionsResponderV3.java65
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/LinesResponderV2.java58
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/LinesResponderV3.java64
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/LinesTypesResponderV2.java63
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/LoadBreakSwitchesResponderV2.java58
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/LoadBreakSwitchesResponderV3.java64
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/MockUpModelToCimMapper.java264
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/OkRequestParameters.java86
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/PetersenCoilsResponderV1.java64
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/PlantsResponderV2.java59
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/PowerTransformersResponderV2.java58
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/PowerTransformersResponderV3.java64
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/RequestParameters.java138
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/SubGeographicalRegionsResponderV2.java57
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/SubstationsResponderV2.java58
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/SubstationsResponderV3.java64
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/SwitchesResponderV2.java58
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/SwitchesResponderV3.java64
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/TopologyResponderV2.java109
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/VoltageLevelsResponderV2.java56
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/VoltageLevelsResponderV3.java62
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/WriterWrapper.java179
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/resources/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/test/java/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/test/resources/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/pom.xml40
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/src/main/java/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/common/MockUpTopologyDefaults.java46
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/src/main/resources/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/src/test/java/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/src/test/resources/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/pom.xml30
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/AbstractHttpRestEndPoint.java151
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/AcLineSegmentsRestEndPoint.java51
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/BaseVoltagesRestEndPoint.java55
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/BaysRestEndPoint.java52
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/BreakersRestEndPoint.java55
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/BusbarSectionsRestEndPoint.java55
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/DisconnectorsRestEndPoint.java55
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/EarthFaultCompensatorsRestEndPoint.java55
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/EnergyConsumersRestEndPoint.java55
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/EnergySourcesRestEndPoint.java55
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/GeographicalRegionsRestEndPoint.java55
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/GroundingImpedancesRestEndPoint.java55
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/GroundsRestEndPoint.java55
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/JunctionsRestEndPoint.java55
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/LineTypesRestEndPoint.java55
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/LinesRestEndPoint.java55
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/LoadBreakSwitchesRestEndPoint.java55
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/PetersenCoilsRestEndPoint.java55
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/PlantsRestEndPoint.java54
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/PowerTransformersRestEndPoint.java55
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/SubGeographicalRegionsRestEndPoint.java55
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/SubstationsRestEndPoint.java55
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/SwitchesRestEndPoint.java55
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/TopologyIdRestEndPoint.java53
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/TopologyRestEndPoint.java54
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/VoltageLevelsRestEndPoint.java52
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/resources/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/test/java/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/test/resources/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/pom.xml31
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/dataexchange/cim/IObjectGenerator.java19
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/dataexchange/cim/ITopologyElementGenerator.java25
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/dataexchange/cim/ITopologyGenerator.java25
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/AbstractMockUpGenerator.java723
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/AcLineSegmentGenerator.java46
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/BaseVoltageGenerator.java59
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/BayGenerator.java39
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/BreakerGenerator.java31
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/BusbarSectionGenerator.java32
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/DisconnectorGenerator.java31
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/EarthFaultCompensatorGenerator.java37
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/EnergyConsumerGenerator.java31
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/EnergySourceGenerator.java31
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/GeographicalRegionGenerator.java43
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/GroundGenerator.java31
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/GroundingImpedanceGenerator.java42
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/JunctionGenerator.java31
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/LineGenerator.java68
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/LoadBreakSwitchGenerator.java31
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/LowVoltageSubnetGenerator.java97
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/MidVoltageSubnetGenerator.java109
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/PetersenCoilGenerator.java31
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/PlantGenerator.java45
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/PowerTransformerEndGenerator.java65
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/PowerTransformerGenerator.java58
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/RatioTapChangerGenerator.java39
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/SimpleMockUpModel2Generator.java123
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/SimpleMockUpModelGenerator.java124
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/SubGeographicalRegionGenerator.java80
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/SubstationGenerator.java76
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/TopologyGenerator.java161
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/VoltageLevelGenerator.java71
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/AbstractMockUpTopologyView.java87
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/AcLineSegmentsView.java45
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/BaseVoltagesView.java45
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/BaysView.java46
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/BreakersView.java45
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/BusbarSectionsView.java45
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/DisconnectorsView.java45
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/EarthFaultCompensatorsView.java46
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/EnergyConsumersView.java45
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/EnergySourcesView.java45
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/GeographicalRegionsView.java46
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/GroundingImpedancesView.java46
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/GroundsView.java45
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/JunctionsView.java45
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/LineTypesView.java45
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/LinesView.java45
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/LoadBreakSwitchesView.java45
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/PetersenCoilsView.java46
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/PlantsView.java45
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/PowerTransformersView.java45
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/SubGeographicalRegionsView.java45
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/SubstationsView.java45
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/SwitchesView.java45
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/TopologyView.java69
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/VoltageLevelView.java45
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/AbstractConductingEquipmentFactory.java205
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/AbstractTopologyElementFactory.java32
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/AcLineSegmentFactory.java37
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/BaseVoltageFactory.java25
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/BayFactory.java24
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/BreakerFactory.java16
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/BusbarSectionFactory.java29
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/DisconnectorFactory.java17
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/EarthFaultCompensatorFactory.java60
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/EnergyConsumerFactory.java34
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/EnergySourceFactory.java33
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/FactoryParameters.java75
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/GeographicalRegionFactory.java22
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/GroundFactory.java30
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/GroundingImpedanceFactory.java34
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/ITopologyElementFactory.java30
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/JunctionFactory.java32
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/LoadBreakSwitchFactory.java19
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/MockUpUtilities.java413
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/PetersenCoilFactory.java52
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/PowerTransformerFactory.java132
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/PsrTypeFactory.java26
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/SubGeographicalRegionFactory.java22
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/SubstationFactory.java24
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/SwitchFactory.java64
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/TopologyFactory.java86
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/VoltageLevelFactory.java24
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/resources/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/test/java/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/test/resources/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/pom.xml31
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/model/INodeFunctions.java10
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/model/Node.java27
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/model/NodeFactory.java26
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/model/TopologyElement.java94
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/model/TopologyId.java16
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/resources/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/test/java/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/test/resources/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/mock-up-topology.config2
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/pom.xml37
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/MockUpTopology.java191
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/MockUpTopologyContext.java34
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/configuration/ConfigurationDataProvider.java28
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/dataexchange/converter/SerializerFactory.java235
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/dataexchange/processor/ViewFactory.java213
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/dataexchange/receiver/ReceiverFactory.java54
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/dataexchange/responder/ResponderFactory.java272
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/resources/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/resources/application.properties8
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/resources/favicon.icobin0 -> 90814 bytes
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/test/java/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/test/java/org/eclipse/openk/sourcesystem/mockuptopology/service/GetModelTest.java141
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/test/java/org/eclipse/openk/sourcesystem/mockuptopology/service/MockUpTopologyServiceTest.java83
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/test/java/org/eclipse/openk/sourcesystem/mockuptopology/service/MockUpTopologyTest.java41
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/test/java/org/eclipse/openk/sourcesystem/mockuptopology/service/generator/Assertions.java35
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/test/java/org/eclipse/openk/sourcesystem/mockuptopology/service/generator/TopologyGeneratorTest.java65
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/test/resources/.gitignore0
-rw-r--r--cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/pom.xml24
213 files changed, 12496 insertions, 0 deletions
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/pom.xml b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/pom.xml
new file mode 100644
index 00000000..56136c5b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/pom.xml
@@ -0,0 +1,32 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.eclipse.openk.sourcesystem.mock-up-topology</groupId>
+ <artifactId>mock-up-topology-adapter</artifactId>
+ <packaging>jar</packaging>
+
+ <name>${project.groupId}.${project.artifactId}</name>
+
+ <parent>
+ <groupId>org.eclipse.openk.build.build-parentpom</groupId>
+ <artifactId>build-parentpom-adapter</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <relativePath>../../org.eclipse.openk.build/build-parentpom/build-parentpom-adapter/pom.xml</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.openk.sourcesystem.mock-up-topology</groupId>
+ <artifactId>mock-up-topology-logic</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.btc.cab.service</groupId>
+ <artifactId>service</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+</project> \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/.gitignore b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/.gitignore
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/converter/TopologyValueDecoder.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/converter/TopologyValueDecoder.java
new file mode 100644
index 00000000..b59d209d
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/converter/TopologyValueDecoder.java
@@ -0,0 +1,220 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.converter;
+
+import java.lang.reflect.Field;
+import java.text.DateFormat;
+import java.util.Date;
+
+import com.btc.cab.common.dataexchange.converter.IValueDecoder;
+import com.btc.cab.common.dataexchange.converter.ValueDecoder;
+import com.btc.cab.common.date.DateUtilities;
+import com.btc.cab.common.string.StringUtilities;
+import com.btc.cab.common.value.InvalidValueException;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.ActivePower;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.ApparentPower;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.Conductance;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.CurrentFlow;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.PerCent;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.Reactance;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.ReactivePower;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.Resistance;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.Seconds;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.Susceptance;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.UnitMultiplier;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.UnitSymbol;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.Voltage;
+
+/**
+ * The <i>topology</i> value decoder.
+ *
+ * @author Felix Korb
+ */
+public final class TopologyValueDecoder extends ValueDecoder {
+
+ // Constants
+ @SuppressWarnings("hiding")
+ public static final IValueDecoder DEFAULT_INSTANCE = new TopologyValueDecoder();
+
+ public static DateFormat DATE_FORMAT = DateUtilities.createUtcDateFormat("YYYY-MM-dd'T'HH:mm:ss'Z'");
+
+ // Methods
+ private ActivePower decodeActivePower(String valueAsString) throws NumberFormatException {
+
+ ActivePower result = new ActivePower();
+
+ result.setMultiplier(UnitMultiplier.none);
+ result.setUnit(UnitSymbol.W);
+ result.setValue(Double.valueOf(valueAsString));
+
+ return result;
+ }
+
+ private ApparentPower decodeApparentPower(String valueAsString) throws NumberFormatException {
+
+ ApparentPower result = new ApparentPower();
+
+ result.setMultiplier(UnitMultiplier.none);
+ result.setUnit(UnitSymbol.VA);
+ result.setValue(Double.valueOf(valueAsString));
+
+ return result;
+ }
+
+ private Conductance decodeConductance(String valueAsString) throws NumberFormatException {
+
+ Conductance result = new Conductance();
+
+ result.setMultiplier(UnitMultiplier.none);
+ result.setUnit(UnitSymbol.S);
+ result.setValue(Double.valueOf(valueAsString));
+
+ return result;
+ }
+
+ private CurrentFlow decodeCurrentFlow(String valueAsString) throws NumberFormatException {
+
+ CurrentFlow result = new CurrentFlow();
+
+ result.setMultiplier(UnitMultiplier.none);
+ result.setUnit(UnitSymbol.A);
+ result.setValue(Double.valueOf(valueAsString));
+
+ return result;
+ }
+
+ private PerCent decodePerCent(String valueAsString) throws NumberFormatException {
+
+ PerCent result = new PerCent();
+
+ result.setMultiplier(UnitMultiplier.none);
+ result.setUnit(UnitSymbol.none);
+ result.setValue(Double.valueOf(valueAsString));
+
+ return result;
+ }
+
+ private ReactivePower decodeReactivePower(String valueAsString) throws NumberFormatException {
+
+ ReactivePower result = new ReactivePower();
+
+ result.setMultiplier(UnitMultiplier.none);
+ result.setUnit(UnitSymbol.W);
+ result.setValue(Double.valueOf(valueAsString));
+
+ return result;
+ }
+
+ private Resistance decodeResistance(String valueAsString) throws NumberFormatException {
+
+ Resistance result = new Resistance();
+
+ result.setMultiplier(UnitMultiplier.none);
+ result.setUnit(UnitSymbol.ohm);
+ result.setValue(Double.valueOf(valueAsString));
+
+ return result;
+ }
+
+ private Reactance decodeReactance(String valueAsString) throws NumberFormatException {
+
+ Reactance result = new Reactance();
+
+ result.setMultiplier(UnitMultiplier.none);
+ result.setUnit(UnitSymbol.ohm);
+ result.setValue(Double.valueOf(valueAsString));
+
+ return result;
+ }
+
+ private Seconds decodeSeconds(String valueAsString) throws NumberFormatException {
+
+ Seconds result = new Seconds();
+
+ result.setMultiplier(UnitMultiplier.none);
+ result.setUnit(UnitSymbol.s);
+ result.setValue(Double.valueOf(valueAsString));
+
+ return result;
+ }
+
+ private Susceptance decodeSusceptance(String valueAsString) throws NumberFormatException {
+
+ Susceptance result = new Susceptance();
+
+ result.setMultiplier(UnitMultiplier.none);
+ result.setUnit(UnitSymbol.S);
+ result.setValue(Double.valueOf(valueAsString));
+
+ return result;
+ }
+
+ private Voltage decodeVoltage(String valueAsString) throws NumberFormatException {
+
+ Voltage result = new Voltage();
+
+ result.setMultiplier(UnitMultiplier.none);
+ result.setUnit(UnitSymbol.V);
+ result.setValue(Double.valueOf(valueAsString));
+
+ return result;
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public <V> V decodeValue(Field attribute, String valueAsString) {
+
+ V result;
+ Class<?> valueType = attribute.getType();
+
+ if(!StringUtilities.hasContent(valueAsString))
+ result = null;
+ else {
+ try {
+ /* ActivePower */
+ if(ActivePower.class.equals(valueType))
+ result = (V) decodeActivePower(valueAsString);
+ /* ApparentPower */
+ else if(ApparentPower.class.equals(valueType))
+ result = (V) decodeApparentPower(valueAsString);
+ /* Conductance */
+ else if(Conductance.class.equals(valueType))
+ result = (V) decodeConductance(valueAsString);
+ /* CurrentFlow */
+ else if(CurrentFlow.class.equals(valueType))
+ result = (V) decodeCurrentFlow(valueAsString);
+ /* Date */
+ else if(Date.class.equals(valueType))
+ result = (V) DATE_FORMAT.parse(valueAsString);
+ /* PerCent */
+ else if(PerCent.class.equals(valueType))
+ result = (V) decodePerCent(valueAsString);
+ /* Reactance */
+ else if(Reactance.class.equals(valueType))
+ result = (V) decodeReactance(valueAsString);
+ /* ReactivePower */
+ else if(ReactivePower.class.equals(valueType))
+ result = (V) decodeReactivePower(valueAsString);
+ /* Resistance */
+ else if(Resistance.class.equals(valueType))
+ result = (V) decodeResistance(valueAsString);
+ /* Seconds */
+ else if(Seconds.class.equals(valueType))
+ result = (V) decodeSeconds(valueAsString);
+ /* Susceptance */
+ else if(Susceptance.class.equals(valueType))
+ result = (V) decodeSusceptance(valueAsString);
+ /* Voltage */
+ else if(Voltage.class.equals(valueType))
+ result = (V) decodeVoltage(valueAsString);
+
+ /* call super method for other types */
+ else
+ result = super.<V> decodeValue(attribute, valueAsString);
+ }
+ catch(Throwable exception) {
+ throw new InvalidValueException(attribute.getName(), valueAsString, exception);
+ }
+ }
+
+ return result;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/receiver/TopologyReader.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/receiver/TopologyReader.java
new file mode 100644
index 00000000..d097adc5
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/receiver/TopologyReader.java
@@ -0,0 +1,48 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.receiver;
+
+import java.util.Map;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.converter.TopologyValueDecoder;
+
+import com.btc.cab.common.dataexchange.cim.ICimEntity;
+import com.btc.cab.common.dataexchange.cim.message.AbstractRdf1_1PayloadReader;
+import com.btc.cab.common.dataexchange.cim.message.CimMessageDefaults;
+import com.btc.cab.common.dataexchange.xml.XmlNamespaceMapping;
+import com.btc.cab.common.dataexchange.xml.XmlNamespaceSolver;
+import com.btc.cab.common.dataexchange.xml.rdf.IRdfExternalObjectReferenceSolver;
+import com.btc.cab.common.dataexchange.xml.rdf.RdfSubject;
+import com.btc.cab.common.system.type.TypeInformationProvider;
+import com.btc.cim.cim17v07.Cim17v07;
+
+/**
+ * Reads the data from a <i>RDF</i> topology.
+ *
+ * @author Felix Korb
+ */
+public final class TopologyReader extends AbstractRdf1_1PayloadReader<Map<String, RdfSubject<ICimEntity>>> {
+
+ // Constructors
+ /**
+ * @param externalEntityReferenceSolver
+ * the {@link IRdfExternalObjectReferenceSolver} to solve external entity references; can be <code>null</code>
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>externalEntityReferenceSolver</code> is <code>null</code></li>
+ * </ul>
+ */
+ public TopologyReader(IRdfExternalObjectReferenceSolver<ICimEntity> externalEntityReferenceSolver) {
+
+ super(TypeInformationProvider.DEFAULT_INSTANCE, new XmlNamespaceSolver(new XmlNamespaceMapping(CimMessageDefaults.CIM_NAMESPACE, Cim17v07.INSTANCE.getPackage())), TopologyValueDecoder.DEFAULT_INSTANCE, externalEntityReferenceSolver);
+ }
+
+ // Methods
+ @Override
+ protected Map<String, RdfSubject<ICimEntity>> createResult(Map<String, RdfSubject<ICimEntity>> subjects, Map<String, RdfSubject<ICimEntity>> unreferencedSubjects) {
+
+ if(subjects.isEmpty())
+ return null;
+ else
+ return subjects;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/receiver/TopologyReceiver.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/receiver/TopologyReceiver.java
new file mode 100644
index 00000000..8b5d2e20
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/receiver/TopologyReceiver.java
@@ -0,0 +1,149 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.receiver;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.dataexchange.cim.ICimEntity;
+import com.btc.cab.common.dataexchange.cim.ICimIdentifiedObject;
+import com.btc.cab.common.dataexchange.xml.rdf.RdfSubject;
+import com.btc.cab.common.io.FileEvent;
+import com.btc.cab.common.io.FileEvent.Kind;
+import com.btc.cab.common.io.IODefaults;
+import com.btc.cab.common.io.IOUtilities;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cab.service.dataexchange.importer.AbstractFileReceiver;
+import com.btc.cab.service.dataexchange.importer.FileReceiverConfiguration;
+import com.btc.cab.service.repository.api.IRepository;
+
+/**
+ * The <i>topology</i> receiver.
+ *
+ * @author Felix Korb
+ */
+public final class TopologyReceiver extends AbstractFileReceiver<FileReceiverConfiguration, List<ICimIdentifiedObject>, Map<String, RdfSubject<ICimEntity>>, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(TopologyReceiver.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Attributes
+ private File fileToImport;
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public TopologyReceiver(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_TOPOLOGY, VERSION, DataExchangeFormat.FORMAT_XML_1_0_UTF_8_RDF_1_1);
+ }
+
+ // Methods
+ @Override
+ protected Map<String, RdfSubject<ICimEntity>> fetchTransferData(NoParameters receiveParameters) throws IOException {
+
+ Map<String, RdfSubject<ICimEntity>> result;
+
+ {
+ TopologyReader contentHandler = new TopologyReader(null);
+
+ IOUtilities.parse(contentHandler, fileToImport, IODefaults.CHARSET_NAME_UTF_8);
+
+ result = contentHandler.getResult();
+ }
+
+ return result;
+ }
+
+ @Override
+ protected void handleException(Throwable exception) throws Throwable {
+
+ super.handleException(exception);
+
+ if(fileToImport != null) {
+ IOUtilities.deleteFile(fileToImport, 3, 50);
+
+ fileToImport = null;
+ }
+ }
+
+ @Override
+ protected void handleFileEvent(FileEvent event) {
+
+ fileToImport = event.getFile();
+ }
+
+ @Override
+ protected boolean isEventRelevant(FileEvent event) {
+
+ return ((event.getKind() == Kind.Created) && (event.getFile().getName().endsWith(".rdf")));
+ }
+
+ @Override
+ protected List<ICimIdentifiedObject> mapToReceiveData(NoParameters receiveParameters, Map<String, RdfSubject<ICimEntity>> transferData) {
+
+ List<ICimIdentifiedObject> result;
+
+ if((transferData == null) || transferData.isEmpty())
+ result = null;
+ else {
+ result = new ArrayList<>(transferData.size());
+
+ for(RdfSubject<ICimEntity> entity : transferData.values())
+ if(entity.subject instanceof ICimIdentifiedObject)
+ result.add((ICimIdentifiedObject) entity.subject);
+ }
+
+ return result;
+ }
+
+ @Override
+ protected boolean storeReceivedData(NoParameters receiveParameters, List<ICimIdentifiedObject> receivedData) throws IOException {
+
+ IRepository<String, ICimIdentifiedObject> repository = getContext().getServiceController().getRepository(MockUpTopologyDefaults.REPOSITORY_KEY_TOPOLOGY);
+
+ repository.clear();
+ repository.saveAll(receivedData);
+
+ return true;
+ }
+
+ @Override
+ protected void receivingFinished() throws IOException {
+
+ if(getConfiguration().getDeleteAfterReceiving())
+ IOUtilities.deleteFile(fileToImport, 3, 50);
+
+ fileToImport = null;
+ }
+
+ // Properties
+ @Override
+ protected Class<FileReceiverConfiguration> getConfigurationType() {
+
+ return FileReceiverConfiguration.class;
+ }
+
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AbstractCimResponder.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AbstractCimResponder.java
new file mode 100644
index 00000000..0d5f4069
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AbstractCimResponder.java
@@ -0,0 +1,91 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.io.IOException;
+import java.io.Writer;
+import java.util.UUID;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.dataexchange.CommunicationTechnology;
+import com.btc.cab.common.dataexchange.IDataExchangeFormat;
+import com.btc.cab.common.dataexchange.cim.CimModelDefinition;
+import com.btc.cab.common.dataexchange.cim.message.CimMessageHeader;
+import com.btc.cab.service.dataexchange.converter.AbstractSerializer;
+import com.btc.cab.service.dataexchange.converter.ISerializer;
+import com.btc.cab.service.dataexchange.exporter.AbstractResponder;
+
+/**
+ * The base of all <i>CIM</i> responders.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Renko Ortgies
+ *
+ * @param <C>
+ * the configuration type
+ * @param <R>
+ * the response data object type (internal model)
+ * @param <T>
+ * the transfer data object type (interface model)
+ * @param <P>
+ * the request parameters object type
+ */
+public abstract class AbstractCimResponder<C extends CimResponderConfiguration, R, T, P extends ICimRequestParameters> extends AbstractResponder<C, R, T, P> {
+
+ // Constructors
+ /**
+ * @param scope
+ * the scope - specifies the application area
+ * @param version
+ * the {@link IVersion}
+ * @param responseFormat
+ * the format of the response ('XML 1.0 UTF-8', ...)
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>scope</code> is <code>null</code> or <code>""</code></li>
+ * <li><code>version</code> is <code>null</code></li>
+ * <li><code>responseFormat</code> is <code>null</code></li>
+ * </ul>
+ */
+ protected AbstractCimResponder(String scope, IVersion version, IDataExchangeFormat responseFormat) {
+
+ super(scope, version, CommunicationTechnology.REST, responseFormat);
+ }
+
+ // Methods
+ @Override
+ public final void writeResponse(Writer writer, P requestParameters) throws IOException {
+
+ CimMessageHeader cimMessageHeader;
+ ISerializer<?, T, String, CimMessageHeader> serializer;
+ T transferData;
+
+ /* get the transfer data */
+ transferData = getResponse(requestParameters);
+
+ /* create suitable serializer */
+ {
+ serializer = getContext().getServiceController().getSerializerFactory().createSerializer(getScope(), getVersion(), getCimModelDefinition(), getResponseFormat());
+
+ if(serializer == null) {
+ String serializerKey = AbstractSerializer.createKey(getScope(), getVersion(), getCimModelDefinition(), getResponseFormat());
+
+ throw new UnsupportedOperationException("There is no suitable serializer '" + serializerKey + "' available!"); // FIXME 2017-04-23 Felix: geeignete Ausnahme schmeißen
+ }
+ }
+
+ /* create CIM message header from request parameters */
+ // UUID messageId, int revision, String source, LocalDateTime timestamp, UUID topologyId, String userId
+ cimMessageHeader = CimMessageHeader.buildMessageHeader(UUID.randomUUID(), getScope(), requestParameters.getRevision(), getContext().getComponentId(), getContext().getTimer().getCurrentDateTime(), requestParameters.getUserId());
+
+ /* serialize the CIM transfer data */
+ serializer.serialize(writer, transferData, cimMessageHeader);
+ }
+
+ // Properties
+ /**
+ * @return the {@link CimModelDefinition}; not <code>null</code>
+ */
+ public abstract CimModelDefinition getCimModelDefinition();
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AbstractCimRestResponder.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AbstractCimRestResponder.java
new file mode 100644
index 00000000..f8bc511d
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AbstractCimRestResponder.java
@@ -0,0 +1,88 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.io.IOException;
+import java.io.Writer;
+import java.util.UUID;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.dataexchange.IDataExchangeFormat;
+import com.btc.cab.common.dataexchange.cim.CimModelDefinition;
+import com.btc.cab.common.dataexchange.cim.message.CimMessageHeader;
+import com.btc.cab.service.dataexchange.cim.exporter.CimRequestParameters;
+import com.btc.cab.service.dataexchange.cim.exporter.CimRestResponderConfiguration;
+import com.btc.cab.service.dataexchange.converter.AbstractSerializer;
+import com.btc.cab.service.dataexchange.converter.ISerializer;
+import com.btc.cab.service.dataexchange.exporter.AbstractRestResponder;
+
+/**
+ * The base of all <i>CIM</i> <i>REST</i> responders.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Renko Ortgies
+ *
+ * @param <C>
+ * the configuration type
+ * @param <R>
+ * the response data object type (internal model)
+ * @param <T>
+ * the transfer data object type (interface model)
+ * @param <P>
+ * the request parameters object type
+ */
+public abstract class AbstractCimRestResponder<C extends CimRestResponderConfiguration, R, T, P extends CimRequestParameters> extends AbstractRestResponder<C, R, T, P> {
+
+ // Constructors
+ /**
+ * @param scope
+ * the scope - specifies the application area
+ * @param version
+ * the {@link IVersion}
+ * @param responseFormat
+ * the format of the response ('XML 1.0 UTF-8', ...)
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>scope</code> is <code>null</code> or <code>""</code></li>
+ * <li><code>version</code> is <code>null</code></li>
+ * <li><code>responseFormat</code> is <code>null</code></li>
+ * </ul>
+ */
+ protected AbstractCimRestResponder(String scope, IVersion version, IDataExchangeFormat responseFormat) {
+
+ super(scope, version, responseFormat);
+ }
+
+ // Methods
+ @Override
+ protected void writeHttpBody(Writer writer, P requestParameters, T transferData) throws IOException {
+
+ CimMessageHeader cimMessageHeader;
+ ISerializer<?, T, String, CimMessageHeader> serializer;
+
+ /* create suitable serializer */
+ {
+ serializer = getContext().getServiceController().getSerializerFactory().createSerializer(getScope(), new Version(requestParameters.getRevision()), getCimModelDefinition(), getResponseFormat());
+
+ if(serializer == null) {
+ String serializerKey = AbstractSerializer.createKey(getScope(), Version.VERSION_ONE, getCimModelDefinition(), getResponseFormat());
+
+ throw new UnsupportedOperationException("There is no suitable serializer '" + serializerKey + "' available!"); // FIXME 2017-04-23 Felix: geeignete Ausnahme schmeißen
+ }
+ }
+
+ /* create CIM message header from request parameters */
+ cimMessageHeader = CimMessageHeader.buildMessageHeader(UUID.randomUUID(), getScope(), requestParameters.getRevision(), getContext().getComponentId(), getContext().getTimer().getCurrentDateTime(), requestParameters.getUserId());
+
+ /* serialize the CIM transfer data */
+ serializer.serialize(writer, transferData, cimMessageHeader);
+ }
+
+ // Properties
+ /**
+ * @return the {@link CimModelDefinition}; not <code>null</code>
+ */
+ public abstract CimModelDefinition getCimModelDefinition();
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AbstractMockUpTopologyCimRestResponder.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AbstractMockUpTopologyCimRestResponder.java
new file mode 100644
index 00000000..98d6e51c
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AbstractMockUpTopologyCimRestResponder.java
@@ -0,0 +1,93 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.io.IOException;
+import java.util.List;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.dataexchange.cim.CimModelDefinition;
+import com.btc.cab.common.dataexchange.cim.ICimEntity;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cab.service.dataexchange.cim.exporter.AbstractCimRestResponder;
+import com.btc.cab.service.dataexchange.cim.exporter.CimRequestParameters;
+import com.btc.cab.service.dataexchange.cim.exporter.CimRestResponderConfiguration;
+import com.btc.cab.service.dataexchange.processor.IView;
+import com.btc.cim.cim17v07.Cim17v07;
+
+/**
+ * The base of all <i>Mock-Up</i> topology responders.
+ *
+ * @author Felix Korb
+ *
+ * @param <E>
+ * the <i>CIM</i> entity type
+ */
+public abstract class AbstractMockUpTopologyCimRestResponder<E extends ICimEntity> extends AbstractCimRestResponder<CimRestResponderConfiguration, List<E>, List<E>, CimRequestParameters> {
+
+ // Attributes
+ /* injected attributes */
+ private IServiceContext context;
+
+ // Constructors
+ /**
+ * @param context
+ * the context - specifies the application context
+ * @param scope
+ * the scope - specifies the application area
+ * @param version
+ * the {@link IVersion}
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>scope</code> is <code>null</code> or <code>""</code></li>
+ * <li><code>version</code> is <code>null</code></li>
+ * </ul>
+ */
+ protected AbstractMockUpTopologyCimRestResponder(IServiceContext context, String scope, IVersion version) {
+
+ super(scope, version, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ this.context = context;
+ }
+
+ // Methods
+ @Override
+ protected final List<E> fetchResponseData(CimRequestParameters requestParameters) throws IOException {
+
+ List<E> result = null;
+ IView<?, List<E>, CimRequestParameters> view;
+
+ /* create suitable view */
+ view = context.getServiceController().getViewFactory().createView(getScope(), Version.VERSION_ONE);
+
+ /* read data */
+ result = view.executeQuery(requestParameters);
+
+ return result;
+ }
+
+ // Properties
+ @Override
+ public CimModelDefinition getCimModelDefinition() {
+
+ return Cim17v07.INSTANCE;
+ }
+
+ @Override
+ protected final Class<CimRestResponderConfiguration> getConfigurationType() {
+
+ return CimRestResponderConfiguration.class;
+ }
+
+ @Override
+ public final IServiceContext getContext() {
+
+ return context;
+ }
+
+ @Override
+ public final Class<CimRequestParameters> getRequestParametersObjectType() {
+
+ return CimRequestParameters.class;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AbstractMockUpTopologyCimRestResponderOk.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AbstractMockUpTopologyCimRestResponderOk.java
new file mode 100644
index 00000000..653268a0
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AbstractMockUpTopologyCimRestResponderOk.java
@@ -0,0 +1,92 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.io.IOException;
+import java.util.List;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.dataexchange.cim.CimModelDefinition;
+import com.btc.cab.common.dataexchange.cim.ICimEntity;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cab.service.dataexchange.processor.IView;
+import com.btc.cim.cim17v07.Cim17v07;
+
+/**
+ * The base of all <i>Mock-Up</i> topology responders.
+ *
+ * @author Christian Brunzendorf
+ * @author Frank Jäger
+ *
+ * @param <E>
+ * the <i>CIM</i> entity type
+ * @param <P>
+ * the request parameters object type
+ */
+@Deprecated
+public abstract class AbstractMockUpTopologyCimRestResponderOk<E extends ICimEntity, P extends ICimRequestParameters> extends AbstractCimResponder<CimResponderConfiguration, List<E>, List<E>, P> {
+
+ // Attributes
+ private IServiceContext context;
+
+ // Constructors
+ /**
+ * @param context
+ * the context - the application context.
+ * @param scope
+ * the scope - specifies the application area
+ * @param version
+ * the {@link IVersion}
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * <li><code>scope</code> is <code>null</code> or <code>""</code></li>
+ * <li><code>version</code> is <code>null</code></li>
+ * </ul>
+ */
+ protected AbstractMockUpTopologyCimRestResponderOk(IServiceContext context, String scope, IVersion version) {
+
+ super(scope, version, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+
+ if(context == null)
+ throw new IllegalArgumentException("context", new NullPointerException());
+ else
+ this.context = context;
+ }
+
+ // Methods
+ @Override
+ protected final List<E> fetchResponseData(P requestParameters) throws IOException {
+
+ List<E> result = null;
+ IView<?, List<E>, P> view;
+
+ /* create suitable view */
+ view = context.getServiceController().getViewFactory().createView(getScope(), Version.VERSION_ONE);
+
+ /* read data */
+ result = view.executeQuery(requestParameters);
+
+ return result;
+ }
+
+ // Properties
+ @Override
+ public CimModelDefinition getCimModelDefinition() {
+
+ return Cim17v07.INSTANCE;
+ }
+
+ @Override
+ protected final Class<CimResponderConfiguration> getConfigurationType() {
+
+ return CimResponderConfiguration.class;
+ }
+
+ @Override
+ public final IServiceContext getContext() {
+
+ return context;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AcLineSegmentsResponderV2.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AcLineSegmentsResponderV2.java
new file mode 100644
index 00000000..c2ff8078
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AcLineSegmentsResponderV2.java
@@ -0,0 +1,58 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.ACLineSegment;
+
+/**
+ * The <i>REST</i> responder for {@link ACLineSegment}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class AcLineSegmentsResponderV2 extends AbstractMockUpTopologyCimRestResponder<ACLineSegment> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(AcLineSegmentsResponderV2.class);
+ private static final IVersion VERSION = new Version(2);
+
+ // Constructors
+ /**
+ * The Constructor for Ac-Line-Segments responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public AcLineSegmentsResponderV2(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_AC_LINE_SEGMENTS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<ACLineSegment>, List<ACLineSegment>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AcLineSegmentsResponderV3.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AcLineSegmentsResponderV3.java
new file mode 100644
index 00000000..8ece4d41
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/AcLineSegmentsResponderV3.java
@@ -0,0 +1,63 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.ACLineSegment;
+
+/**
+ * The <i>REST</i> responder for {@link ACLineSegment}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Frank Jäger
+ */
+public final class AcLineSegmentsResponderV3 extends AbstractMockUpTopologyCimRestResponderOk<ACLineSegment, OkRequestParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(AcLineSegmentsResponderV3.class);
+ private static final IVersion VERSION = new Version(3);
+
+ // Constructors
+ /**
+ * The Constructor for Ac-Line-Segments responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public AcLineSegmentsResponderV3(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_AC_LINE_SEGMENTS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<ACLineSegment>, List<ACLineSegment>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<OkRequestParameters> getRequestParametersObjectType() {
+
+ return OkRequestParameters.class;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BaseVoltagesResponderV2.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BaseVoltagesResponderV2.java
new file mode 100644
index 00000000..6900f942
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BaseVoltagesResponderV2.java
@@ -0,0 +1,58 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.BaseVoltage;
+
+/**
+ * The <i>REST</i> responder for {@link BaseVoltage}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class BaseVoltagesResponderV2 extends AbstractMockUpTopologyCimRestResponder<BaseVoltage> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(BaseVoltagesResponderV2.class);
+ private static final IVersion VERSION = new Version(2);
+
+ // Constructors
+ /**
+ * The Constructor for Ac-Line-Segments responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public BaseVoltagesResponderV2(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_BASE_VOLTAGES, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<BaseVoltage>, List<BaseVoltage>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BaseVoltagesResponderV3.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BaseVoltagesResponderV3.java
new file mode 100644
index 00000000..79448e2e
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BaseVoltagesResponderV3.java
@@ -0,0 +1,63 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.BaseVoltage;
+
+/**
+ * The <i>REST</i> responder for {@link BaseVoltage}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Frank Jäger
+ */
+public final class BaseVoltagesResponderV3 extends AbstractMockUpTopologyCimRestResponderOk<BaseVoltage, OkRequestParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(BaseVoltagesResponderV3.class);
+ private static final IVersion VERSION = new Version(3);
+
+ // Constructors
+ /**
+ * The Constructor for Ac-Line-Segments responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public BaseVoltagesResponderV3(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_BASE_VOLTAGES, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<BaseVoltage>, List<BaseVoltage>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<OkRequestParameters> getRequestParametersObjectType() {
+
+ return OkRequestParameters.class;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BaysResponderV2.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BaysResponderV2.java
new file mode 100644
index 00000000..1874d756
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BaysResponderV2.java
@@ -0,0 +1,62 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Bay;
+
+/**
+ * The <i>REST</i> responder for {@link Bay}s.
+ *
+ * @author Christian Brunzendorf
+ */
+public final class BaysResponderV2 extends AbstractMockUpTopologyCimRestResponderOk<Bay, OkRequestParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(BaysResponderV2.class);
+ private static final IVersion VERSION = new Version(2);
+
+ // Constructors
+ /**
+ * The Constructor for the {@link Bay}s responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public BaysResponderV2(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_BAYS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<Bay>, List<Bay>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<OkRequestParameters> getRequestParametersObjectType() {
+
+ return OkRequestParameters.class;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BreakersResponderV2.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BreakersResponderV2.java
new file mode 100644
index 00000000..e191624c
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BreakersResponderV2.java
@@ -0,0 +1,58 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Breaker;
+
+/**
+ * The responder for {@link Breaker}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class BreakersResponderV2 extends AbstractMockUpTopologyCimRestResponder<Breaker> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(BreakersResponderV2.class);
+ private static final IVersion VERSION = new Version(3);
+
+ // Constructors
+ /**
+ * The Constructor for {@link Breaker} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public BreakersResponderV2(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_BREAKERS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<Breaker>, List<Breaker>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BreakersResponderV3.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BreakersResponderV3.java
new file mode 100644
index 00000000..ef8feacb
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BreakersResponderV3.java
@@ -0,0 +1,64 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Breaker;
+
+/**
+ * The responder for {@link Breaker}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class BreakersResponderV3 extends AbstractMockUpTopologyCimRestResponderOk<Breaker, OkRequestParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(BreakersResponderV3.class);
+ private static final IVersion VERSION = new Version(3);
+
+ // Constructors
+ /**
+ * The Constructor for {@link Breaker} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public BreakersResponderV3(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_BREAKERS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<Breaker>, List<Breaker>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<OkRequestParameters> getRequestParametersObjectType() {
+
+ return OkRequestParameters.class;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BusbarSectionsResponderV2.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BusbarSectionsResponderV2.java
new file mode 100644
index 00000000..363f6aa6
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BusbarSectionsResponderV2.java
@@ -0,0 +1,58 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.BusbarSection;
+
+/**
+ * The <i>REST</i> responder for {@link BusbarSection}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class BusbarSectionsResponderV2 extends AbstractMockUpTopologyCimRestResponder<BusbarSection> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(BusbarSectionsResponderV2.class);
+ private static final IVersion VERSION = new Version(2);
+
+ // Constructors
+ /**
+ * The Constructor for {@link BusbarSection} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public BusbarSectionsResponderV2(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_BUSBAR_SECTIONS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<BusbarSection>, List<BusbarSection>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BusbarSectionsResponderV3.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BusbarSectionsResponderV3.java
new file mode 100644
index 00000000..d1d8eabe
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/BusbarSectionsResponderV3.java
@@ -0,0 +1,64 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.BusbarSection;
+
+/**
+ * The <i>REST</i> responder for {@link BusbarSection}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class BusbarSectionsResponderV3 extends AbstractMockUpTopologyCimRestResponderOk<BusbarSection, OkRequestParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(BusbarSectionsResponderV3.class);
+ private static final IVersion VERSION = new Version(3);
+
+ // Constructors
+ /**
+ * The Constructor for{@link BusbarSection} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public BusbarSectionsResponderV3(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_BUSBAR_SECTIONS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<BusbarSection>, List<BusbarSection>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<OkRequestParameters> getRequestParametersObjectType() {
+
+ return OkRequestParameters.class;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/CimResponderConfiguration.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/CimResponderConfiguration.java
new file mode 100644
index 00000000..4b599033
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/CimResponderConfiguration.java
@@ -0,0 +1,16 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import com.btc.cab.service.dataexchange.exporter.IResponder;
+import com.btc.cab.service.dataexchange.exporter.ResponderConfiguration;
+
+/**
+ * The <i>CIM</i> {@link IResponder} configuration.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public class CimResponderConfiguration extends ResponderConfiguration {
+
+ /* empty configuration */
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/DisconnectorsResponderV2.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/DisconnectorsResponderV2.java
new file mode 100644
index 00000000..2dfda0d5
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/DisconnectorsResponderV2.java
@@ -0,0 +1,58 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Disconnector;
+
+/**
+ * The <i>REST</i> responder for {@link Disconnector}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class DisconnectorsResponderV2 extends AbstractMockUpTopologyCimRestResponder<Disconnector> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(DisconnectorsResponderV2.class);
+ private static final IVersion VERSION = new Version(2);
+
+ // Constructors
+ /**
+ * The Constructor for {@link Disconnector} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public DisconnectorsResponderV2(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_DISCONNECTORS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<Disconnector>, List<Disconnector>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/DisconnectorsResponderV3.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/DisconnectorsResponderV3.java
new file mode 100644
index 00000000..5f3572a9
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/DisconnectorsResponderV3.java
@@ -0,0 +1,64 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Disconnector;
+
+/**
+ * The <i>REST</i> responder for {@link Disconnector}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class DisconnectorsResponderV3 extends AbstractMockUpTopologyCimRestResponderOk<Disconnector, OkRequestParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(DisconnectorsResponderV3.class);
+ private static final IVersion VERSION = new Version(3);
+
+ // Constructors
+ /**
+ * The Constructor for {@link Disconnector} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public DisconnectorsResponderV3(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_DISCONNECTORS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<Disconnector>, List<Disconnector>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<OkRequestParameters> getRequestParametersObjectType() {
+
+ return OkRequestParameters.class;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/EarthFaultCompensatorsResponderV1.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/EarthFaultCompensatorsResponderV1.java
new file mode 100644
index 00000000..1e5dfdf6
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/EarthFaultCompensatorsResponderV1.java
@@ -0,0 +1,64 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EarthFaultCompensator;
+
+/**
+ * The <i>REST</i> responder for {@link EarthFaultCompensator}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Frank Jäger
+ * @author Inge Seidel
+ */
+public final class EarthFaultCompensatorsResponderV1 extends AbstractMockUpTopologyCimRestResponderOk<EarthFaultCompensator, OkRequestParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(EarthFaultCompensatorsResponderV1.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * The Constructor for {@link EarthFaultCompensator} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public EarthFaultCompensatorsResponderV1(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_EARTH_FAULT_COMPENSATORS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<EarthFaultCompensator>, List<EarthFaultCompensator>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<OkRequestParameters> getRequestParametersObjectType() {
+
+ return OkRequestParameters.class;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/EnergyConsumersResponderV2.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/EnergyConsumersResponderV2.java
new file mode 100644
index 00000000..1436e808
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/EnergyConsumersResponderV2.java
@@ -0,0 +1,58 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EnergyConsumer;
+
+/**
+ * The <i>REST</i> responder for {@link EnergyConsumer}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class EnergyConsumersResponderV2 extends AbstractMockUpTopologyCimRestResponder<EnergyConsumer> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(EnergyConsumersResponderV2.class);
+ private static final IVersion VERSION = new Version(2);
+
+ // Constructors
+ /**
+ * The Constructor for {@link EnergyConsumer} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public EnergyConsumersResponderV2(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_ENERGY_CONSUMERS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<EnergyConsumer>, List<EnergyConsumer>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/EnergyConsumersResponderV3.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/EnergyConsumersResponderV3.java
new file mode 100644
index 00000000..71e15f0b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/EnergyConsumersResponderV3.java
@@ -0,0 +1,64 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EnergyConsumer;
+
+/**
+ * The <i>REST</i> responder for {@link EnergyConsumer}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class EnergyConsumersResponderV3 extends AbstractMockUpTopologyCimRestResponderOk<EnergyConsumer, OkRequestParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(EnergyConsumersResponderV3.class);
+ private static final IVersion VERSION = new Version(3);
+
+ // Constructors
+ /**
+ * The Constructor for {@link EnergyConsumer} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public EnergyConsumersResponderV3(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_ENERGY_CONSUMERS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<EnergyConsumer>, List<EnergyConsumer>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<OkRequestParameters> getRequestParametersObjectType() {
+
+ return OkRequestParameters.class;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/EnergySourcesResponderV2.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/EnergySourcesResponderV2.java
new file mode 100644
index 00000000..0183ccc9
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/EnergySourcesResponderV2.java
@@ -0,0 +1,58 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EnergySource;
+
+/**
+ * The <i>REST</i> responder for {@link EnergySource}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class EnergySourcesResponderV2 extends AbstractMockUpTopologyCimRestResponder<EnergySource> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(EnergySourcesResponderV2.class);
+ private static final IVersion VERSION = new Version(2);
+
+ // Constructors
+ /**
+ * The Constructor for {@link EnergySource} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public EnergySourcesResponderV2(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_ENERGY_SOURCES, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<EnergySource>, List<EnergySource>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/EnergySourcesResponderV3.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/EnergySourcesResponderV3.java
new file mode 100644
index 00000000..d8ee6a58
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/EnergySourcesResponderV3.java
@@ -0,0 +1,64 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EnergySource;
+
+/**
+ * The <i>REST</i> responder for {@link EnergySource}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class EnergySourcesResponderV3 extends AbstractMockUpTopologyCimRestResponderOk<EnergySource, OkRequestParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(EnergySourcesResponderV3.class);
+ private static final IVersion VERSION = new Version(3);
+
+ // Constructors
+ /**
+ * The Constructor for {@link EnergySource} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public EnergySourcesResponderV3(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_ENERGY_SOURCES, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<EnergySource>, List<EnergySource>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<OkRequestParameters> getRequestParametersObjectType() {
+
+ return OkRequestParameters.class;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/GeographicalRegionsResponderV3.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/GeographicalRegionsResponderV3.java
new file mode 100644
index 00000000..ecd83497
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/GeographicalRegionsResponderV3.java
@@ -0,0 +1,64 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.GeographicalRegion;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.ACLineSegment;
+
+/**
+ * The <i>REST</i> responder for {@link GeographicalRegion}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Frank Jäger
+ */
+public final class GeographicalRegionsResponderV3 extends AbstractMockUpTopologyCimRestResponderOk<GeographicalRegion, OkRequestParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(GeographicalRegionsResponderV3.class);
+ private static final IVersion VERSION = new Version(3);
+
+ // Constructors
+ /**
+ * The Constructor for {@link GeographicalRegion} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public GeographicalRegionsResponderV3(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_GEOGRAPHICAL_REGIONS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<GeographicalRegion>, List<GeographicalRegion>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<OkRequestParameters> getRequestParametersObjectType() {
+
+ return OkRequestParameters.class;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/GroundingImpedancesResponderV1.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/GroundingImpedancesResponderV1.java
new file mode 100644
index 00000000..660b7974
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/GroundingImpedancesResponderV1.java
@@ -0,0 +1,64 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.GroundingImpedance;
+
+/**
+ * The <i>REST</i> responder for {@link GroundingImpedance}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Frank Jäger
+ * @author Inge Seidel
+ */
+public final class GroundingImpedancesResponderV1 extends AbstractMockUpTopologyCimRestResponderOk<GroundingImpedance, OkRequestParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(GroundingImpedancesResponderV1.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * The Constructor for {@link GroundingImpedance} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public GroundingImpedancesResponderV1(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_GROUNDING_IMPEDANCES, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<GroundingImpedance>, List<GroundingImpedance>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<OkRequestParameters> getRequestParametersObjectType() {
+
+ return OkRequestParameters.class;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/GroundsResponderV1.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/GroundsResponderV1.java
new file mode 100644
index 00000000..818b391d
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/GroundsResponderV1.java
@@ -0,0 +1,64 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Ground;
+
+/**
+ * The <i>REST</i> responder for {@link Ground}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Frank Jäger
+ * @author Inge Seidel
+ */
+public final class GroundsResponderV1 extends AbstractMockUpTopologyCimRestResponderOk<Ground, OkRequestParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(GroundsResponderV1.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * The Constructor for {@link Ground} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public GroundsResponderV1(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_GROUNDS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<Ground>, List<Ground>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<OkRequestParameters> getRequestParametersObjectType() {
+
+ return OkRequestParameters.class;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/ICimRequestParameters.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/ICimRequestParameters.java
new file mode 100644
index 00000000..2e93ad40
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/ICimRequestParameters.java
@@ -0,0 +1,53 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.time.LocalDateTime;
+import java.util.UUID;
+
+/**
+ * Defines the standard constants and the getter which must be
+ * provided by each Implementation.
+ *
+ * @author Christian Brunzendorf
+ * @author Frank Jäger
+ * @author Inge Seidel
+ */
+public interface ICimRequestParameters {
+
+ // Constants
+ String PARAMETER_MESSAGE_ID = "message-id";
+ String PARAMETER_REVISION = "revision";
+ String PARAMETER_SOURCE = "source";
+ String PARAMETER_TIMESTAMP = "timestamp";
+ String PARAMETER_USER_ID = "user-id";
+
+ // Properties
+ /**
+ * @return the message ID
+ * unique for the this request, created by sender, can be <code>null</code>
+ */
+ public UUID getMessageId();
+
+ /**
+ * @return the revision number; greater or equal than <code>1</code>
+ */
+ public int getRevision();
+
+ /**
+ * @return the source
+ * unique sender of this message, can be <code>null</code> or <code>""</code>
+ */
+ public String getSource();
+
+ /**
+ * @return the timestamp
+ * time when the message was sent (in UTC), can be <code>null</code>
+ */
+ public LocalDateTime getTimestamp();
+
+ /**
+ * @return the user ID
+ * unique identifier of the logged user (sender), can be <code>null</code> or <code>""</code>
+ */
+ public String getUserId();
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/JunctionsResponderV2.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/JunctionsResponderV2.java
new file mode 100644
index 00000000..9f7bf9ca
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/JunctionsResponderV2.java
@@ -0,0 +1,59 @@
+// FIXME 2017-04-15 Felix: illegal commit
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Junction;
+
+/**
+ * The <i>REST</i> responder for {@link Junction}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class JunctionsResponderV2 extends AbstractMockUpTopologyCimRestResponder<Junction> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(JunctionsResponderV2.class);
+ private static final IVersion VERSION = new Version(2);
+
+ // Constructors
+ /**
+ * The Constructor for {@link Junction} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public JunctionsResponderV2(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_JUNCTIONS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<Junction>, List<Junction>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/JunctionsResponderV3.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/JunctionsResponderV3.java
new file mode 100644
index 00000000..b5714e60
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/JunctionsResponderV3.java
@@ -0,0 +1,65 @@
+// FIXME 2017-04-15 Felix: illegal commit
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Junction;
+
+/**
+ * The <i>REST</i> responder for {@link Junction}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class JunctionsResponderV3 extends AbstractMockUpTopologyCimRestResponderOk<Junction, OkRequestParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(JunctionsResponderV3.class);
+ private static final IVersion VERSION = new Version(3);
+
+ // Constructors
+ /**
+ * The Constructor for {@link Junction} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public JunctionsResponderV3(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_JUNCTIONS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<Junction>, List<Junction>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<OkRequestParameters> getRequestParametersObjectType() {
+
+ return OkRequestParameters.class;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/LinesResponderV2.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/LinesResponderV2.java
new file mode 100644
index 00000000..1235683a
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/LinesResponderV2.java
@@ -0,0 +1,58 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Line;
+
+/**
+ * The <i>REST</i> responder for {@link Line}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class LinesResponderV2 extends AbstractMockUpTopologyCimRestResponder<Line> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(LinesResponderV2.class);
+ private static final IVersion VERSION = new Version(2);
+
+ // Constructors
+ /**
+ * The Constructor for {@link Line} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public LinesResponderV2(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_LINES, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<Line>, List<Line>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/LinesResponderV3.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/LinesResponderV3.java
new file mode 100644
index 00000000..085a968b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/LinesResponderV3.java
@@ -0,0 +1,64 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Line;
+
+/**
+ * The <i>REST</i> responder for {@link Line}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class LinesResponderV3 extends AbstractMockUpTopologyCimRestResponderOk<Line, OkRequestParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(LinesResponderV3.class);
+ private static final IVersion VERSION = new Version(3);
+
+ // Constructors
+ /**
+ * The Constructor for {@link Line} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public LinesResponderV3(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_LINES, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<Line>, List<Line>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<OkRequestParameters> getRequestParametersObjectType() {
+
+ return OkRequestParameters.class;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/LinesTypesResponderV2.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/LinesTypesResponderV2.java
new file mode 100644
index 00000000..9ce03c36
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/LinesTypesResponderV2.java
@@ -0,0 +1,63 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.PSRType;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Line;
+
+/**
+ * The <i>REST</i> responder for Lines {@link PSRType}s.
+ *
+ * @author Christian Brunzendorf
+ */
+public final class LinesTypesResponderV2 extends AbstractMockUpTopologyCimRestResponderOk<PSRType, OkRequestParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(LinesTypesResponderV2.class);
+ private static final IVersion VERSION = new Version(2);
+
+ // Constructors
+ /**
+ * The Constructor for {@link PSRType} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public LinesTypesResponderV2(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_LINE_TYPES, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<PSRType>, List<PSRType>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<OkRequestParameters> getRequestParametersObjectType() {
+
+ return OkRequestParameters.class;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/LoadBreakSwitchesResponderV2.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/LoadBreakSwitchesResponderV2.java
new file mode 100644
index 00000000..0c8b4ae6
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/LoadBreakSwitchesResponderV2.java
@@ -0,0 +1,58 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.LoadBreakSwitch;
+
+/**
+ * The <i>REST</i> responder for {@link LoadBreakSwitch}es.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class LoadBreakSwitchesResponderV2 extends AbstractMockUpTopologyCimRestResponder<LoadBreakSwitch> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(LoadBreakSwitchesResponderV2.class);
+ private static final IVersion VERSION = new Version(2);
+
+ // Constructors
+ /**
+ * The Constructor for {@link LoadBreakSwitch} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public LoadBreakSwitchesResponderV2(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_LOAD_BREAK_SWITCHES, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<LoadBreakSwitch>, List<LoadBreakSwitch>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/LoadBreakSwitchesResponderV3.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/LoadBreakSwitchesResponderV3.java
new file mode 100644
index 00000000..0c246a5a
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/LoadBreakSwitchesResponderV3.java
@@ -0,0 +1,64 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.LoadBreakSwitch;
+
+/**
+ * The <i>REST</i> responder for {@link LoadBreakSwitch}es.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class LoadBreakSwitchesResponderV3 extends AbstractMockUpTopologyCimRestResponderOk<LoadBreakSwitch, OkRequestParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(LoadBreakSwitchesResponderV3.class);
+ private static final IVersion VERSION = new Version(3);
+
+ // Constructors
+ /**
+ * The Constructor for {@link LoadBreakSwitch} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public LoadBreakSwitchesResponderV3(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_LOAD_BREAK_SWITCHES, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<LoadBreakSwitch>, List<LoadBreakSwitch>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<OkRequestParameters> getRequestParametersObjectType() {
+
+ return OkRequestParameters.class;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/MockUpModelToCimMapper.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/MockUpModelToCimMapper.java
new file mode 100644
index 00000000..a2540b47
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/MockUpModelToCimMapper.java
@@ -0,0 +1,264 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import com.btc.cab.common.dataexchange.cim.ICimEntity;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.common.system.type.TypeUtilities;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.ConductingEquipment;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.ConnectivityNode;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Equipment;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.EquipmentContainer;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Terminal;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PowerTransformer;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PowerTransformerEnd;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.RatioTapChanger;
+
+/**
+ * Maps a {@link ConductingEquipment} source to a {@link ConductingEquipment} destination with separated {@link Terminal}s
+ *
+ * @author Frank Jäger
+ *
+ * @param <E>
+ * the <i>CIM</i> entity type which is mapped
+ */
+public final class MockUpModelToCimMapper<E extends ICimEntity> implements IModelMapper<List<E>, List<E>> {
+
+ // Methods
+ /**
+ * Separates the specified {@link ConductingEquipment}.<br/>
+ * A separated ConductingEquipment is a copy of the input ConductingEquipment with separated {@link Terminal}s.<br/>
+ *
+ * @param entity
+ * the {@link ConductingEquipment}, that should be separated, not <code>null</code>
+ * @return the separated {@link ConductingEquipment}, not <code>null</code>
+ */
+ @SuppressWarnings("unchecked")
+ private E createSeparatedConductingEquipment(ConductingEquipment entity) {
+
+ ConductingEquipment result = TypeUtilities.createCopy(entity);
+
+ if(entity.getTerminals() != null) {
+ List<Terminal> terminals = new ArrayList<>(entity.getTerminals().size());
+
+ for(Terminal terminal : entity.getTerminals())
+ terminals.add(createSeparatedTerminal(terminal));
+
+ result.setTerminals(terminals);
+ }
+ if(result.getEquipmentContainer() != null) {
+ result.setEquipmentContainer(createSeparatedEquipmentContainer(result.getEquipmentContainer(), false));
+ }
+ return (E) result;
+ }
+
+ /**
+ * Separates the specified {@link EquipmentContainer}.<br/>
+ * A separated EquipmentContainer is a copy of the input EquipmentContainer with separated {@link Terminal}s.<br/>
+ *
+ * @param <C>
+ * the entity-type
+ *
+ * @param entity
+ * the {@link EquipmentContainer}, that should be separated, not <code>null</code>
+ * @param withEquipment
+ * <tt>true</tt>, if the separated container should contain equipment, <tt>false</tt> otherwise.
+ * @return the separated EquipmentContainer, not <code>null</code>
+ */
+ private <C extends EquipmentContainer> C createSeparatedEquipmentContainer(C entity, boolean withEquipment) {
+
+ C result = TypeUtilities.createCopy(entity);
+
+ if(entity.getEquipments() != null && withEquipment) {
+ ConductingEquipment conductingEquipment;
+ List<Equipment> equipments = new ArrayList<>(entity.getEquipments().size());
+
+ for(Equipment equipment : entity.getEquipments()) {
+ conductingEquipment = new ConductingEquipment();
+ conductingEquipment.setMRID(equipment.getMRID());
+
+ equipments.add(conductingEquipment);
+ }
+
+ result.setEquipments(equipments);
+ }
+ else {
+ result.setEquipments(null);
+ }
+ return result;
+ }
+
+ /**
+ * Separates the specified {@link PowerTransformer}.<br/>
+ * A separated PowerTransformer is a copy of the input PowerTransformer with separated {@link Terminal}s.<br/>
+ * The {@link Terminal}s in PowerTransformerEnds are references from the corresponding Terminal in PowerTransformer
+ *
+ * @param entity
+ * the {@link PowerTransformer}, that should be separated, not <code>null</code>
+ * @return the separated PowerTransformer, not <code>null</code>
+ */
+ private PowerTransformer createSeparatedPowerTransformer(PowerTransformer entity) {
+
+ PowerTransformer result = TypeUtilities.createCopy(entity);
+
+ if(entity.getTerminals() != null) {
+ List<Terminal> terminals = new ArrayList<>(entity.getTerminals().size());
+
+ for(Terminal terminal : entity.getTerminals())
+ terminals.add(createSeparatedTerminal(terminal));
+
+ result.setTerminals(terminals);
+ }
+
+ /* separate terminal from PowerTransfoermerEnd */
+ List<PowerTransformerEnd> powerTransformerEnds = entity.getPowerTransformerEnd();
+ if(powerTransformerEnds != null) {
+ List<PowerTransformerEnd> separatedEnds = powerTransformerEnds.stream()//
+ .map(pte -> createSeparatedPowerTransformerEnd(pte))//
+ .collect(Collectors.toList());
+ result.setPowerTransformerEnd(separatedEnds);
+ }
+
+ if(result.getEquipmentContainer() != null) {
+ result.setEquipmentContainer(createSeparatedEquipmentContainer(result.getEquipmentContainer(), false));
+ }
+
+ return result;
+ }
+
+ /**
+ * Separates the specified {@link PowerTransformer}.
+ *
+ * <p>
+ * A separated PowerTransformerEnd is a copy of the input PowerTransformerEnd.
+ * In Contrast to the input PowerTransformerEnd the returned PowerTransformerEnd
+ * is exempted from back references which may cause infinite loops in some traversing
+ * scenarios:
+ * <ul>
+ * <li>The back reference to {@link PowerTransformer} is removed.</li>
+ * <li>The original {@link Terminal} is replaced by a separated one.</li>
+ * <li>The original {@link RatioTapChanger} is replaced by a separated one.</li>
+ * </ul>
+ * </p>
+ *
+ * @param entity
+ * a {@link PowerTransformerEnd}, that should be separated, not <code>null</code>
+ * @return a separated PowerTransformerEnd, not <code>null</code>
+ */
+ private PowerTransformerEnd createSeparatedPowerTransformerEnd(PowerTransformerEnd entity) {
+
+ /* Create a shallow copy of the given PowerTransformerEnd */
+ PowerTransformerEnd separatedEnd = TypeUtilities.createCopy(entity);
+
+ /* Remove the back reference to the enclosing PowerTransformer */
+ separatedEnd.setPowerTransformer(null);
+
+ /* Replace the Terminal with a separated copy */
+ if(separatedEnd.getTerminal() != null)
+ separatedEnd.setTerminal(createTerminalLink(separatedEnd.getTerminal()));
+
+ /* Replace the RatioTapChanger with a separated copy */
+ if(separatedEnd.getRatioTapChanger() != null)
+ separatedEnd.setRatioTapChanger(createSeparatedRatioTapChanger(separatedEnd.getRatioTapChanger()));
+
+ return separatedEnd;
+ }
+
+ /**
+ * Returns a separated version of the given {@link RatioTapChanger}.
+ *
+ * <p>
+ * A separated RatioTapChanger is a copy of the input RatioTapChanger.
+ * In Contrast to the input RatioTapChanger the returned RatioTapChanger
+ * is exempted from the back references to the TransformerEnd which may
+ * cause infinite loops in some traversing scenarios.
+ * </p>
+ *
+ * @param entity
+ * a {@link RatioTapChanger}, that should be separated, not <code>null</code>
+ * @return a separated RatioTapChanger, not <code>null</code>
+ */
+ private RatioTapChanger createSeparatedRatioTapChanger(RatioTapChanger entity) {
+
+ RatioTapChanger separatedRatioTapChanger = TypeUtilities.createCopy(entity);
+ separatedRatioTapChanger.setTransformerEnd(null);
+ return separatedRatioTapChanger;
+ }
+
+ /**
+ * Separates the specified {@link Terminal}.<br/>
+ * A separated {@link Terminal} is a copy of the input terminal with disconnected {@link ConnectivityNode}.
+ *
+ * @param terminal
+ * that should be separated, not <code>null</code>
+ * @return the separated terminal,
+ * a copy of terminal where it's connectivity node only contains a <i>mRID<i> and which has not reference to it's conducting equipment, not <code>null</code>
+ */
+ private Terminal createSeparatedTerminal(Terminal terminal) {
+
+ Terminal result = TypeUtilities.createCopy(terminal);
+
+ /* create separated connectivity node */
+ if(terminal.getConnectivityNode() != null) {
+ ConnectivityNode connectivityNode = new ConnectivityNode();
+
+ connectivityNode.setMRID(terminal.getConnectivityNode().getMRID());
+
+ result.setConnectivityNode(connectivityNode);
+ }
+
+ /* separate terminal from conducting equipment */
+ result.setConductingEquipment(null);
+
+ return result;
+ }
+
+ /**
+ * Creates a link to the specified {@link Terminal}.<br/>
+ * A link to a {@link Terminal}, that just contains a <i>mRID</i> and no {@link ConnectivityNode}.
+ *
+ * @param terminal
+ * that should be separated, not <code>null</code>
+ * @return the separated terminal, not <code>null</code>
+ */
+ private Terminal createTerminalLink(Terminal terminal) {
+
+ Terminal result = new Terminal();
+ result.setMRID(terminal.getMRID());
+ return result;
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public List<E> map(List<E> sourceModel) {
+
+ List<E> result;
+
+ if((sourceModel == null) || sourceModel.isEmpty())
+ result = null;
+ else {
+ ICimEntity entity = null;
+
+ result = new ArrayList<>(sourceModel.size());
+
+ /* distinguish Conducting Equipment (Conductor), Power Transformer and Equipment Container */
+ for(E entry : sourceModel) {
+ if(PowerTransformer.class.isAssignableFrom(entry.getClass()))
+ entity = createSeparatedPowerTransformer((PowerTransformer) entry);
+ else if(ConductingEquipment.class.isAssignableFrom(entry.getClass()))
+ entity = createSeparatedConductingEquipment((ConductingEquipment) entry);
+ else if(EquipmentContainer.class.isAssignableFrom(entry.getClass()))
+ entity = createSeparatedEquipmentContainer((EquipmentContainer) entry, true);
+ else
+ entity = entry;
+
+ result.add((E) entity);
+ }
+ }
+
+ return result;
+ }
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/OkRequestParameters.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/OkRequestParameters.java
new file mode 100644
index 00000000..839b64f0
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/OkRequestParameters.java
@@ -0,0 +1,86 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.time.LocalDateTime;
+import java.util.UUID;
+
+import com.btc.cab.common.dataexchange.cim.message.CimMessageDefaults;
+import com.btc.cab.common.date.DateDefaults;
+import com.btc.cab.common.value.xparameter.annotations.IntegerValidator;
+import com.btc.cab.common.value.xparameter.annotations.LocalDateTimeValidator;
+import com.btc.cab.common.value.xparameter.annotations.Parameter;
+import com.btc.cab.common.value.xparameter.annotations.StringValidator;
+
+/**
+ * The <i>CIM</i> message header for the OK-API requests.
+ *
+ * @author Christian Brunzendorf
+ * @author Frank Jäger
+ * @author Inge Seidel
+ */
+public class OkRequestParameters implements ICimRequestParameters {
+
+ // Constants
+ public static final String PARAMETER_TOPOLOGY_ID = "topology-id";
+
+ // Attributes
+ @Parameter(name = PARAMETER_MESSAGE_ID)
+ private UUID messageId;
+
+ @IntegerValidator(minValue = 1)
+ @Parameter(name = PARAMETER_REVISION, optional = false)
+ private int revision;
+
+ @StringValidator(minLength = 1, maxLength = CimMessageDefaults.MAX_SOURCE_LENGTH)
+ @Parameter(name = PARAMETER_SOURCE, optional = true)
+ private String source;
+
+ @LocalDateTimeValidator(dateFormat = DateDefaults.DATE_TIME_FORMATTER_PATTERN_UTC_TIMESTAMP)
+ @Parameter(name = PARAMETER_TIMESTAMP, optional = true)
+ private LocalDateTime timestamp;
+
+ @Parameter(name = PARAMETER_TOPOLOGY_ID, optional = true)
+ private UUID topologyId;
+
+ @StringValidator(minLength = 1, maxLength = CimMessageDefaults.MAX_USER_ID_LENGTH)
+ @Parameter(name = PARAMETER_USER_ID, optional = true)
+ private String userId;
+
+ // Properties
+ @Override
+ public final UUID getMessageId() {
+
+ return messageId;
+ }
+
+ @Override
+ public final int getRevision() {
+
+ return revision;
+ }
+
+ @Override
+ public final String getSource() {
+
+ return source;
+ }
+
+ @Override
+ public final LocalDateTime getTimestamp() {
+
+ return timestamp;
+ }
+
+ /**
+ * @return the topology-id, can be <code>null</code> or <code>""</code>
+ */
+ public final UUID getTopologyId() {
+
+ return topologyId;
+ }
+
+ @Override
+ public final String getUserId() {
+
+ return userId;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/PetersenCoilsResponderV1.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/PetersenCoilsResponderV1.java
new file mode 100644
index 00000000..aaabff87
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/PetersenCoilsResponderV1.java
@@ -0,0 +1,64 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PetersenCoil;
+
+/**
+ * The <i>REST</i> responder for {@link PetersenCoil}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Frank Jäger
+ * @author Inge Seidel
+ */
+public final class PetersenCoilsResponderV1 extends AbstractMockUpTopologyCimRestResponderOk<PetersenCoil, OkRequestParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(PetersenCoilsResponderV1.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * The Constructor for {@link PetersenCoil} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public PetersenCoilsResponderV1(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_PETERSEN_COILS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<PetersenCoil>, List<PetersenCoil>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<OkRequestParameters> getRequestParametersObjectType() {
+
+ return OkRequestParameters.class;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/PlantsResponderV2.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/PlantsResponderV2.java
new file mode 100644
index 00000000..3afe6744
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/PlantsResponderV2.java
@@ -0,0 +1,59 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EnergySource;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Plant;
+
+/**
+ * The <i>REST</i> responder for {@link Plant}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class PlantsResponderV2 extends AbstractMockUpTopologyCimRestResponder<Plant> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(PlantsResponderV2.class);
+ private static final IVersion VERSION = new Version(2);
+
+ // Constructors
+ /**
+ * The Constructor for {@link Plant} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public PlantsResponderV2(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_PLANTS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<Plant>, List<Plant>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/PowerTransformersResponderV2.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/PowerTransformersResponderV2.java
new file mode 100644
index 00000000..679e2777
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/PowerTransformersResponderV2.java
@@ -0,0 +1,58 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PowerTransformer;
+
+/**
+ * The <i>REST</i> responder for {@link PowerTransformer}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class PowerTransformersResponderV2 extends AbstractMockUpTopologyCimRestResponder<PowerTransformer> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(PowerTransformersResponderV2.class);
+ private static final IVersion VERSION = new Version(2);
+
+ // Constructors
+ /**
+ * The Constructor for {@link PowerTransformer} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public PowerTransformersResponderV2(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_POWER_TRANSFORMERS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<PowerTransformer>, List<PowerTransformer>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/PowerTransformersResponderV3.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/PowerTransformersResponderV3.java
new file mode 100644
index 00000000..23d7f66f
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/PowerTransformersResponderV3.java
@@ -0,0 +1,64 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PowerTransformer;
+
+/**
+ * The <i>REST</i> responder for {@link PowerTransformer}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class PowerTransformersResponderV3 extends AbstractMockUpTopologyCimRestResponderOk<PowerTransformer, OkRequestParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(PowerTransformersResponderV3.class);
+ private static final IVersion VERSION = new Version(3);
+
+ // Constructors
+ /**
+ * The Constructor for {@link PowerTransformer} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public PowerTransformersResponderV3(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_POWER_TRANSFORMERS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<PowerTransformer>, List<PowerTransformer>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<OkRequestParameters> getRequestParametersObjectType() {
+
+ return OkRequestParameters.class;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/RequestParameters.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/RequestParameters.java
new file mode 100644
index 00000000..2c64dcda
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/RequestParameters.java
@@ -0,0 +1,138 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.time.LocalDateTime;
+import java.util.UUID;
+
+import com.btc.cab.common.dataexchange.cim.message.CimMessageDefaults;
+import com.btc.cab.common.date.DateDefaults;
+import com.btc.cab.common.value.xparameter.annotations.IntegerValidator;
+import com.btc.cab.common.value.xparameter.annotations.LocalDateTimeValidator;
+import com.btc.cab.common.value.xparameter.annotations.Parameter;
+import com.btc.cab.common.value.xparameter.annotations.StringValidator;
+
+/**
+ * The <i>CIM</i> message header.
+ *
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public class RequestParameters implements ICimRequestParameters {
+
+ // Constants
+ public static final String PARAMETER_NOUN = "noun";
+
+ // Attributes
+ @Parameter(name = PARAMETER_MESSAGE_ID, optional = false)
+ private UUID messageId;
+
+ @StringValidator(minLength = 1)
+ @Parameter(name = PARAMETER_NOUN, optional = true)
+ private String noun;
+
+ @IntegerValidator(minValue = 1)
+ @Parameter(name = PARAMETER_REVISION, optional = false)
+ private int revision;
+
+ @StringValidator(minLength = 1, maxLength = CimMessageDefaults.MAX_SOURCE_LENGTH)
+ @Parameter(name = PARAMETER_SOURCE, optional = false)
+ private String source;
+
+ @LocalDateTimeValidator(dateFormat = DateDefaults.DATE_TIME_FORMATTER_PATTERN_UTC_TIMESTAMP)
+ @Parameter(name = PARAMETER_TIMESTAMP, optional = false)
+ private LocalDateTime timestamp;
+
+ @StringValidator(minLength = 1, maxLength = CimMessageDefaults.MAX_USER_ID_LENGTH)
+ @Parameter(name = PARAMETER_USER_ID, optional = false)
+ private String userId;
+
+ // Methods
+ /**
+ * Builds the {@link RequestParameters} with the specified parameters.
+ *
+ * @param messageId
+ * the message id
+ * @param noun
+ * the noun
+ * @param revision
+ * the revision
+ * @param source
+ * the source
+ * @param timestamp
+ * the timestamp
+ * @param userId
+ * the user id
+ * @return the {@link RequestParameters}; not <code>null</code>
+ */
+ public static RequestParameters buildMessageHeader(UUID messageId, String noun, int revision, String source, LocalDateTime timestamp, String userId) {
+
+ RequestParameters result = new RequestParameters();
+
+ result.messageId = messageId;
+ result.noun = noun;
+ result.revision = revision;
+ result.source = source;
+ result.timestamp = timestamp;
+ result.userId = userId;
+
+ return result;
+ }
+
+ // Properties
+ /**
+ * @return the message ID
+ * unique for the this request, created by sender, not <code>null</code>
+ */
+ @Override
+ public final UUID getMessageId() {
+
+ return messageId;
+ }
+
+ /**
+ * @return the noun
+ * unique name describing the topology element, not <code>null</code> and not <code>""</code>
+ */
+ public final String getNoun() {
+
+ return noun;
+ }
+
+ /**
+ * @return the revision number; greater or equal than <code>0</code>
+ */
+ @Override
+ public final int getRevision() {
+
+ return revision;
+ }
+
+ /**
+ * @return the source
+ * unique sender of this message, not <code>null</code> and not <code>""</code>
+ */
+ @Override
+ public final String getSource() {
+
+ return source;
+ }
+
+ /**
+ * @return the timestamp
+ * time when the message was sent (in UTC), not <code>null</code>
+ */
+ @Override
+ public final LocalDateTime getTimestamp() {
+
+ return timestamp;
+ }
+
+ /**
+ * @return the user ID
+ * unique identifier of the logged user (sender), not <code>null</code> and not <code>""</code>
+ */
+ @Override
+ public final String getUserId() {
+
+ return userId;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/SubGeographicalRegionsResponderV2.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/SubGeographicalRegionsResponderV2.java
new file mode 100644
index 00000000..810a0a9f
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/SubGeographicalRegionsResponderV2.java
@@ -0,0 +1,57 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.SubGeographicalRegion;
+
+/**
+ * The <i>REST</i> responder for {@link SubGeographicalRegion}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Frank Jäger
+ */
+public final class SubGeographicalRegionsResponderV2 extends AbstractMockUpTopologyCimRestResponder<SubGeographicalRegion> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(SubGeographicalRegionsResponderV2.class);
+ private static final IVersion VERSION = new Version(2);
+
+ // Constructors
+ /**
+ * The Constructor for {@link SubGeographicalRegion} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public SubGeographicalRegionsResponderV2(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_SUB_GEOGRAPHICAL_REGIONS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<SubGeographicalRegion>, List<SubGeographicalRegion>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/SubstationsResponderV2.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/SubstationsResponderV2.java
new file mode 100644
index 00000000..b981b364
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/SubstationsResponderV2.java
@@ -0,0 +1,58 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Substation;
+
+/**
+ * The <i>REST</i> responder for {@link Substation}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public class SubstationsResponderV2 extends AbstractMockUpTopologyCimRestResponder<Substation> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(SubstationsResponderV2.class);
+ private static final IVersion VERSION = new Version(2);
+
+ // Constructors
+ /**
+ * The Constructor for {@link Substation} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ protected SubstationsResponderV2(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_SUBSTATIONS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<Substation>, List<Substation>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/SubstationsResponderV3.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/SubstationsResponderV3.java
new file mode 100644
index 00000000..0421fb1f
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/SubstationsResponderV3.java
@@ -0,0 +1,64 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Substation;
+
+/**
+ * The <i>REST</i> responder for {@link Substation}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public class SubstationsResponderV3 extends AbstractMockUpTopologyCimRestResponderOk<Substation, OkRequestParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(SubstationsResponderV3.class);
+ private static final IVersion VERSION = new Version(3);
+
+ // Constructors
+ /**
+ * The Constructor for {@link Substation} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ protected SubstationsResponderV3(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_SUBSTATIONS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<Substation>, List<Substation>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<OkRequestParameters> getRequestParametersObjectType() {
+
+ return OkRequestParameters.class;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/SwitchesResponderV2.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/SwitchesResponderV2.java
new file mode 100644
index 00000000..dce57a47
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/SwitchesResponderV2.java
@@ -0,0 +1,58 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Switch;
+
+/**
+ * The <i>REST</i> responder for {@link Switch}es.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class SwitchesResponderV2 extends AbstractMockUpTopologyCimRestResponder<Switch> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(SwitchesResponderV2.class);
+ private static final IVersion VERSION = new Version(2);
+
+ // Constructors
+ /**
+ * The Constructor for {@link Switch} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public SwitchesResponderV2(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_SWITCHES, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<Switch>, List<Switch>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/SwitchesResponderV3.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/SwitchesResponderV3.java
new file mode 100644
index 00000000..196544ea
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/SwitchesResponderV3.java
@@ -0,0 +1,64 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Switch;
+
+/**
+ * The <i>REST</i> responder for {@link Switch}es.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ */
+public final class SwitchesResponderV3 extends AbstractMockUpTopologyCimRestResponderOk<Switch, OkRequestParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(SwitchesResponderV3.class);
+ private static final IVersion VERSION = new Version(3);
+
+ // Constructors
+ /**
+ * The Constructor for {@link Switch} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public SwitchesResponderV3(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_SWITCHES, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<Switch>, List<Switch>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<OkRequestParameters> getRequestParametersObjectType() {
+
+ return OkRequestParameters.class;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/TopologyResponderV2.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/TopologyResponderV2.java
new file mode 100644
index 00000000..2fde371e
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/TopologyResponderV2.java
@@ -0,0 +1,109 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.io.IOException;
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.dataexchange.cim.CimModelDefinition;
+import com.btc.cab.common.dataexchange.cim.ICimEntity;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cab.service.dataexchange.cim.exporter.AbstractCimRestResponder;
+import com.btc.cab.service.dataexchange.cim.exporter.CimRequestParameters;
+import com.btc.cab.service.dataexchange.cim.exporter.CimRestResponderConfiguration;
+import com.btc.cab.service.dataexchange.processor.IView;
+import com.btc.cim.cim17v07.Cim17v07;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Switch;
+
+/**
+ * The <i>REST</i> responder for entire topologies.
+ *
+ * @author Felix Korb
+ * @param <E>
+ * the <i>CIM</i> entity type
+ */
+public final class TopologyResponderV2<E extends ICimEntity> extends AbstractCimRestResponder<CimRestResponderConfiguration, List<E>, List<E>, CimRequestParameters> {
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(TopologyResponderV2.class);
+ private static final IVersion VERSION = new Version(2);
+
+ // Attributes
+ private IServiceContext context;
+
+ // Constructors
+ /**
+ * The Constructor for topology responder
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public TopologyResponderV2(IServiceContext context) {
+
+ super(MockUpTopologyDefaults.SCOPE_TOPOLOGY, VERSION, DataExchangeFormat.FORMAT_XML_1_0_UTF_8_RDF_1_1);
+ this.context = context;
+ }
+
+ // Methods
+ @Override
+ protected List<E> fetchResponseData(CimRequestParameters requestParameters) throws IOException {
+
+ List<E> result = null;
+ IView<?, List<E>, CimRequestParameters> view;
+
+ /* create suitable view */
+ view = context.getServiceController().getViewFactory().createView(getScope(), Version.VERSION_ONE);
+
+ /* read data */
+ result = view.executeQuery(requestParameters);
+
+ return result;
+ }
+
+ @Override
+ protected IModelMapper<List<E>, List<E>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public CimModelDefinition getCimModelDefinition() {
+
+ return Cim17v07.INSTANCE;
+ }
+
+ @Override
+ protected Class<CimRestResponderConfiguration> getConfigurationType() {
+
+ return CimRestResponderConfiguration.class;
+ }
+
+ @Override
+ public IServiceContext getContext() {
+
+ return context;
+ }
+
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<CimRequestParameters> getRequestParametersObjectType() {
+
+ return CimRequestParameters.class;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/VoltageLevelsResponderV2.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/VoltageLevelsResponderV2.java
new file mode 100644
index 00000000..9ac6f5b8
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/VoltageLevelsResponderV2.java
@@ -0,0 +1,56 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.VoltageLevel;
+
+/**
+ * The <i>REST</i> responder for {@link VoltageLevel}s.
+ *
+ * @author Christian Brunzendorf
+ */
+public final class VoltageLevelsResponderV2 extends AbstractMockUpTopologyCimRestResponder<VoltageLevel> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(VoltageLevelsResponderV2.class);
+ private static final IVersion VERSION = new Version(2);
+
+ // Constructors
+ /**
+ * The Constructor for the {@link VoltageLevel}s responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public VoltageLevelsResponderV2(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_VOLTAGE_LEVELS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<VoltageLevel>, List<VoltageLevel>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/VoltageLevelsResponderV3.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/VoltageLevelsResponderV3.java
new file mode 100644
index 00000000..dea2bda7
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/VoltageLevelsResponderV3.java
@@ -0,0 +1,62 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.model.IModelMapper;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.VoltageLevel;
+
+/**
+ * The <i>REST</i> responder for {@link VoltageLevel}s.
+ *
+ * @author Christian Brunzendorf
+ */
+public final class VoltageLevelsResponderV3 extends AbstractMockUpTopologyCimRestResponderOk<VoltageLevel, OkRequestParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(VoltageLevelsResponderV3.class);
+ private static final IVersion VERSION = new Version(3);
+
+ // Constructors
+ /**
+ * The Constructor for the {@link VoltageLevel} responder.
+ *
+ * @param context
+ * the context - the application context.
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public VoltageLevelsResponderV3(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_VOLTAGE_LEVELS, VERSION);
+ }
+
+ // Methods
+ @Override
+ protected IModelMapper<List<VoltageLevel>, List<VoltageLevel>> getResponseDataToTransferDataMapper() {
+
+ return new MockUpModelToCimMapper<>();
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public Class<OkRequestParameters> getRequestParametersObjectType() {
+
+ return OkRequestParameters.class;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/WriterWrapper.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/WriterWrapper.java
new file mode 100644
index 00000000..c83d70ab
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/adapter/dataexchange/responder/WriterWrapper.java
@@ -0,0 +1,179 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder;
+
+import java.io.IOException;
+import java.io.Writer;
+import java.net.HttpURLConnection;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * A Wrapper for {@link Writer} to be able to set <i>HTTP</i> status code after write method is called.
+ *
+ * @author Christian Brunzendorf
+ * @author Frank Jäger
+ */
+public final class WriterWrapper extends Writer {
+
+ // Attributes
+ private HttpServletResponse response;
+ private Writer writer;
+ private boolean writingStarted;
+
+ // Constructors
+ /**
+ * The Constructor for the write wrapper.
+ *
+ * @param response
+ * the response
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>response</code> is <code>null</code></li>
+ * </ul>
+ * @throws IOException
+ */
+ public WriterWrapper(HttpServletResponse response) throws IOException {
+
+ if(response == null)
+ throw new IllegalArgumentException("response", new NullPointerException());
+ else {
+ this.response = response;
+ this.writer = response.getWriter();
+ this.writingStarted = false;
+ }
+ }
+
+ // Methods
+ @Override
+ public Writer append(CharSequence csq) throws IOException {
+
+ /* set HTTP status OK */
+ if(!writingStarted) {
+ response.setStatus(HttpURLConnection.HTTP_OK);
+ writingStarted = true;
+ }
+
+ /* delegate write to wrapped writer */
+ return writer.append(csq);
+ }
+
+ @Override
+ public Writer append(CharSequence csq, int start, int end) throws IOException {
+
+ /* set HTTP status OK */
+ if(!writingStarted) {
+ response.setStatus(HttpURLConnection.HTTP_OK);
+ writingStarted = true;
+ }
+
+ /* delegate write to wrapped writer */
+ return writer.append(csq, start, end);
+ }
+
+ @Override
+ public Writer append(char c) throws IOException {
+
+ /* set HTTP status OK */
+ if(!writingStarted) {
+ response.setStatus(HttpURLConnection.HTTP_OK);
+ writingStarted = true;
+ }
+
+ /* delegate write to wrapped writer */
+ return writer.append(c);
+ }
+
+ @Override
+ public void close() throws IOException {
+
+ writer.close();
+ }
+
+ @Override
+ public void flush() throws IOException {
+
+ writer.flush();
+ }
+
+ @Override
+ public void write(String str) throws IOException {
+
+ /* set HTTP status OK */
+ if(!writingStarted) {
+ response.setStatus(HttpURLConnection.HTTP_OK);
+ writingStarted = true;
+ }
+
+ /* delegate write to wrapped writer */
+ writer.write(str);
+ }
+
+ @Override
+ public void write(String str, int off, int len) throws IOException {
+
+ /* set HTTP status OK */
+ if(!writingStarted) {
+ response.setStatus(HttpURLConnection.HTTP_OK);
+ writingStarted = true;
+ }
+
+ /* delegate write to wrapped writer */
+ writer.write(str, off, len);
+ }
+
+ @Override
+ public void write(int c) throws IOException {
+
+ /* set HTTP status OK */
+ if(!writingStarted) {
+ response.setStatus(HttpURLConnection.HTTP_OK);
+ writingStarted = true;
+ }
+
+ /* delegate write to wrapped writer */
+ writer.write(c);
+ }
+
+ @Override
+ public void write(char[] cbuf) throws IOException {
+
+ /* set HTTP status OK */
+ if(!writingStarted) {
+ response.setStatus(HttpURLConnection.HTTP_OK);
+ writingStarted = true;
+ }
+
+ /* delegate write to wrapped writer */
+ writer.write(cbuf);
+ }
+
+ @Override
+ public void write(char[] cbuf, int off, int len) throws IOException {
+
+ /* set HTTP status OK */
+ if(!writingStarted) {
+ response.setStatus(HttpURLConnection.HTTP_OK);
+ writingStarted = true;
+ }
+
+ /* delegate write to wrapped writer */
+ writer.write(cbuf, off, len);
+ }
+
+ // Properties
+ /**
+ * @return the {@link HttpServletResponse}, not <code>null</code>
+ */
+ public HttpServletResponse getResponse() {
+
+ return response;
+ }
+
+ /**
+ * @return the {@link Writer}, not <code>null</code>
+ */
+ public Writer getWriter() {
+
+ return writer;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/resources/.gitignore b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/resources/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/main/resources/.gitignore
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/test/java/.gitignore b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/test/java/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/test/java/.gitignore
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/test/resources/.gitignore b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/test/resources/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-adapter/src/test/resources/.gitignore
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/pom.xml b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/pom.xml
new file mode 100644
index 00000000..9f61468c
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/pom.xml
@@ -0,0 +1,40 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.eclipse.openk.sourcesystem.mock-up-topology</groupId>
+ <artifactId>mock-up-topology-common</artifactId>
+ <packaging>jar</packaging>
+
+ <name>${project.groupId}.${project.artifactId}</name>
+
+ <parent>
+ <groupId>org.eclipse.openk.build.build-parentpom</groupId>
+ <artifactId>build-parentpom-core</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <relativePath>../../org.eclipse.openk.build/build-parentpom/build-parentpom-core/pom.xml</relativePath>
+ </parent>
+
+ <dependencies>
+ <!-- com.btc -->
+ <dependency>
+ <groupId>com.btc.cim</groupId>
+ <artifactId>cim17v07</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.btc.cab.service</groupId>
+ <artifactId>service</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.btc.cab</groupId>
+ <artifactId>common</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+</project> \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/src/main/java/.gitignore b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/src/main/java/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/src/main/java/.gitignore
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/common/MockUpTopologyDefaults.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/common/MockUpTopologyDefaults.java
new file mode 100644
index 00000000..c1ce9590
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/common/MockUpTopologyDefaults.java
@@ -0,0 +1,46 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.common;
+
+/**
+ * Defines some defaults.
+ *
+ * @author Felix Korb
+ */
+public final class MockUpTopologyDefaults {
+
+ // Constants
+ /* repository-keys */
+ public static final String REPOSITORY_KEY_TOPOLOGY = "topology";
+
+ /* scopes */
+ public static final String SCOPE_AC_LINE_SEGMENTS = "AcLineSegments";
+ public static final String SCOPE_BASE_VOLTAGES = "BaseVoltages";
+ public static final String SCOPE_BAYS = "Bays";
+ public static final String SCOPE_BREAKERS = "Breakers";
+ public static final String SCOPE_BUSBAR_SECTIONS = "BusbarSections";
+ public static final String SCOPE_DISCONNECTORS = "Disconnectors";
+ public static final String SCOPE_EARTH_FAULT_COMPENSATORS = "EarthFaultCompensators";
+ public static final String SCOPE_ENERGY_CONSUMERS = "EnergyConsumers";
+ public static final String SCOPE_ENERGY_SOURCES = "EnergySources";
+ public static final String SCOPE_GEOGRAPHICAL_REGIONS = "GeographicalRegions";
+ public static final String SCOPE_GROUNDING_IMPEDANCES = "GroundingImpedances";
+ public static final String SCOPE_GROUNDS = "Grounds";
+ public static final String SCOPE_JUNCTIONS = "Junctions";
+ public static final String SCOPE_LINES = "Lines";
+ public static final String SCOPE_LINE_TYPES = "LineTypes";
+ public static final String SCOPE_LOAD_BREAK_SWITCHES = "LoadBreakSwitches";
+ public static final String SCOPE_PETERSEN_COILS = "PetersenCoils";
+ public static final String SCOPE_PLANTS = "Plants";
+ public static final String SCOPE_POWER_TRANSFORMERS = "PowerTransformers";
+ public static final String SCOPE_SUBSTATIONS = "Substations";
+ public static final String SCOPE_SUB_GEOGRAPHICAL_REGIONS = "SubGeographicalRegions";
+ public static final String SCOPE_SWITCHES = "Switches";
+ public static final String SCOPE_TOPOLOGY = "Topology";
+ public static final String SCOPE_TOPOLOGY_ID = "TopologyId";
+ public static final String SCOPE_VOLTAGE_LEVELS = "VoltageLevels";
+
+ // Constructors
+ private MockUpTopologyDefaults() {
+
+ /* suppresses the instantiation! */
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/src/main/resources/.gitignore b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/src/main/resources/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/src/main/resources/.gitignore
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/src/test/java/.gitignore b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/src/test/java/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/src/test/java/.gitignore
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/src/test/resources/.gitignore b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/src/test/resources/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-common/src/test/resources/.gitignore
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/pom.xml b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/pom.xml
new file mode 100644
index 00000000..ee4d6e32
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/pom.xml
@@ -0,0 +1,30 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.eclipse.openk.sourcesystem.mock-up-topology</groupId>
+ <artifactId>mock-up-topology-infrastructure</artifactId>
+ <packaging>jar</packaging>
+
+ <name>${project.groupId}.${project.artifactId}</name>
+
+ <parent>
+ <groupId>org.eclipse.openk.build.build-parentpom</groupId>
+ <artifactId>build-parentpom-infrastructure</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <relativePath>../../org.eclipse.openk.build/build-parentpom/build-parentpom-infrastructure/pom.xml</relativePath>
+ </parent>
+
+ <build>
+ <finalName>${project.artifactId}-${project.version}</finalName>
+ </build>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.openk.sourcesystem.mock-up-topology</groupId>
+ <artifactId>mock-up-topology-adapter</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+</project> \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/.gitignore b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/.gitignore
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/AbstractHttpRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/AbstractHttpRestEndPoint.java
new file mode 100644
index 00000000..f8dd57d5
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/AbstractHttpRestEndPoint.java
@@ -0,0 +1,151 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder.ICimRequestParameters;
+import org.eclipse.openk.sourcesystem.mockuptopology.adapter.dataexchange.responder.WriterWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import com.btc.cab.common.Version;
+import com.btc.cab.common.dataexchange.CommunicationTechnology;
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.messages.FailedToCreateException;
+import com.btc.cab.common.messaging.messages.InvalidParameterException;
+import com.btc.cab.common.string.StringUtilities;
+import com.btc.cab.common.value.parameter.MissingParameterException;
+import com.btc.cab.common.value.xparameter.ParameterUtilities;
+import com.btc.cab.common.value.xparameter.exceptions.InvalidParametersException;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cab.service.dataexchange.exporter.AbstractRestResponder;
+import com.btc.cab.service.dataexchange.exporter.IResponder;
+
+/**
+ * The base class for all mock up topology <i>HTTP REST</i> responder end points.
+ *
+ * @author Christian Brunzendorf
+ * @author Frank Jäger
+ */
+public abstract class AbstractHttpRestEndPoint {
+
+ // Attributes
+ @Autowired
+ private IServiceContext context;
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param <P>
+ * the request parameters object type
+ * @param response
+ * the HTTP servlet response
+ * @param requestProperties
+ * the request parameter values
+ * @param scope
+ * the scope - specifies the application area<br/>
+ * for example: 'BaseVoltages'
+ * @param exchangeFormat
+ * the exchange format, i.e. <i>XML<(i> or <i>RDF</i>
+ */
+ @SuppressWarnings("unchecked")
+ public <P> void writeHttpRestResponse(HttpServletResponse response, @RequestParam Map<String, String> requestProperties, String scope, DataExchangeFormat exchangeFormat) {
+
+ IResponder<?, ?, P> responder;
+
+ try(WriterWrapper writerWrapper = new WriterWrapper(response)) {
+
+ P requestParameters = null;
+ Version version = getVersion(requestProperties);
+
+ /* create suitable responder */
+ {
+ responder = context.getServiceController().getResponderFactory().createResponder(scope, version, CommunicationTechnology.REST, exchangeFormat);
+
+ if(responder == null) {
+ getLogger().warn(new FailedToCreateException("Failed to create a suitable responder."));
+ response.setStatus(HttpURLConnection.HTTP_BAD_REQUEST);
+ }
+ }
+
+ /* create request parameters */
+ {
+ if(responder != null)
+ requestParameters = ParameterUtilities.createParameters(responder.getRequestParametersObjectType(), requestProperties);
+ }
+
+ /* write response */
+ {
+ if(responder != null)
+
+ if(responder instanceof AbstractRestResponder)
+ ((AbstractRestResponder<?, ?, ?, P>) responder).writeHttpResponse(response, requestProperties);
+ else
+ responder.writeResponse(writerWrapper, requestParameters);
+ }
+ }
+ catch(InvalidParametersException | MissingParameterException exception) {
+ getLogger().warn(exception);
+ response.setStatus(HttpURLConnection.HTTP_BAD_REQUEST);
+ }
+ catch(IOException exception) {
+ getLogger().fatal(exception); // REMIND 2017-08-11 Felix: Logger für anderes Loglevel anpassen: Hier eher "warn"
+ response.setStatus(HttpURLConnection.HTTP_INTERNAL_ERROR);
+ }
+ catch(Throwable exception) {
+ getLogger().fatal(exception);
+ response.setStatus(HttpURLConnection.HTTP_INTERNAL_ERROR);
+ }
+ }
+
+ /**
+ * Gets the version from the request properties attribute 'revision'.
+ *
+ * @param requestProperties
+ * the parameter values
+ * @return the version; not <code>null</code>
+ * @throws MissingParameterException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>requestProperties</code> is <code>null</code> or empty</li>
+ * </ul>
+ * @throws InvalidParameterException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>requestProperties</code> has an invalid {@link ICimRequestParameters#PARAMETER_REVISION} value</li>
+ * </ul>
+ */
+ private Version getVersion(Map<String, String> requestProperties) throws InvalidParameterException, MissingParameterException {
+
+ if((requestProperties == null) || requestProperties.isEmpty())
+ throw new MissingParameterException(ICimRequestParameters.PARAMETER_REVISION);
+ else {
+ Version result = null;
+ String revision = requestProperties.get(ICimRequestParameters.PARAMETER_REVISION);
+
+ if(StringUtilities.hasContent(revision))
+ try {
+ int version = Integer.parseInt(revision);
+
+ result = new Version(version);
+ }
+ catch(NumberFormatException exception) {
+ throw new InvalidParameterException(ICimRequestParameters.PARAMETER_REVISION, revision, exception);
+ }
+ else
+ throw new MissingParameterException(ICimRequestParameters.PARAMETER_REVISION);
+
+ return result;
+ }
+ }
+
+ /**
+ * @return the Logger for each instance of the implementation class
+ */
+ public abstract ILogger getLogger();
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/AcLineSegmentsRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/AcLineSegmentsRestEndPoint.java
new file mode 100644
index 00000000..540a92a2
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/AcLineSegmentsRestEndPoint.java
@@ -0,0 +1,51 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.ACLineSegment;
+
+/**
+ * The <i>REST</i> endpoint for {@link ACLineSegment}s.
+ *
+ * @author Christian Brunzendorf
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class AcLineSegmentsRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(AcLineSegmentsRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/ac-line-segments", produces = "application/xml")
+ public void getAcLineSegments(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_AC_LINE_SEGMENTS, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/BaseVoltagesRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/BaseVoltagesRestEndPoint.java
new file mode 100644
index 00000000..55387e32
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/BaseVoltagesRestEndPoint.java
@@ -0,0 +1,55 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.BaseVoltage;
+
+/**
+ * The <i>REST</i> endpoint for {@link BaseVoltage}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Inge Seidel
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class BaseVoltagesRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(BaseVoltagesRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/base-voltages", produces = "application/xml")
+ public void getBaseVoltages(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_BASE_VOLTAGES, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/BaysRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/BaysRestEndPoint.java
new file mode 100644
index 00000000..919581d9
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/BaysRestEndPoint.java
@@ -0,0 +1,52 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.BaseVoltage;
+
+/**
+ * The <i>REST</i> endpoint for {@link Bay}s.
+ *
+ * @author Christian Brunzendorf
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class BaysRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(BaysRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/bays", produces = "application/xml")
+ public void getBays(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_BAYS, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/BreakersRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/BreakersRestEndPoint.java
new file mode 100644
index 00000000..784758ba
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/BreakersRestEndPoint.java
@@ -0,0 +1,55 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Breaker;
+
+/**
+ * The <i>REST</i> endpoint for {@link Breaker}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Inge Seidel
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class BreakersRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(BreakersRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/breakers", produces = "application/xml")
+ public void getBreakers(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_BREAKERS, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/BusbarSectionsRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/BusbarSectionsRestEndPoint.java
new file mode 100644
index 00000000..33429054
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/BusbarSectionsRestEndPoint.java
@@ -0,0 +1,55 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.BusbarSection;
+
+/**
+ * The <i>REST</i> endpoint for {@link BusbarSection}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Inge Seidel
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class BusbarSectionsRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(BusbarSectionsRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/busbar-sections", produces = "application/xml")
+ public void getBusbarSections(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_BUSBAR_SECTIONS, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/DisconnectorsRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/DisconnectorsRestEndPoint.java
new file mode 100644
index 00000000..2740f825
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/DisconnectorsRestEndPoint.java
@@ -0,0 +1,55 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Disconnector;
+
+/**
+ * The <i>REST</i> endpoint for {@link Disconnector}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Inge Seidel
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class DisconnectorsRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(DisconnectorsRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/disconnectors", produces = "application/xml")
+ public void getDisconnectors(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_DISCONNECTORS, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/EarthFaultCompensatorsRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/EarthFaultCompensatorsRestEndPoint.java
new file mode 100644
index 00000000..488cc0ef
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/EarthFaultCompensatorsRestEndPoint.java
@@ -0,0 +1,55 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EarthFaultCompensator;
+
+/**
+ * The <i>REST</i> endpoint for {@link EarthFaultCompensator}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Inge Seidel
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class EarthFaultCompensatorsRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(EarthFaultCompensatorsRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/earth-fault-compensators", produces = "application/xml")
+ public void getEarthFaultCompensators(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_EARTH_FAULT_COMPENSATORS, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/EnergyConsumersRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/EnergyConsumersRestEndPoint.java
new file mode 100644
index 00000000..00012de6
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/EnergyConsumersRestEndPoint.java
@@ -0,0 +1,55 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EnergyConsumer;
+
+/**
+ * The <i>REST</i> endpoint for {@link EnergyConsumer}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Inge Seidel
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class EnergyConsumersRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(EnergyConsumersRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/energy-consumers", produces = "application/xml")
+ public void getEnergyConsumers(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_ENERGY_CONSUMERS, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/EnergySourcesRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/EnergySourcesRestEndPoint.java
new file mode 100644
index 00000000..eb7b8bc3
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/EnergySourcesRestEndPoint.java
@@ -0,0 +1,55 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EnergySource;
+
+/**
+ * The <i>REST</i> endpoint for {@link EnergySource}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Inge Seidel
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class EnergySourcesRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(EnergySourcesRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/energy-sources", produces = "application/xml")
+ public void getEnergySources(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_ENERGY_SOURCES, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/GeographicalRegionsRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/GeographicalRegionsRestEndPoint.java
new file mode 100644
index 00000000..2eb2ec5a
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/GeographicalRegionsRestEndPoint.java
@@ -0,0 +1,55 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.GeographicalRegion;
+
+/**
+ * The <i>REST</i> endpoint for {@link GeographicalRegion}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Inge Seidel
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class GeographicalRegionsRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(GeographicalRegionsRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/geographical-regions", produces = "application/xml")
+ public void getGeographicalRegions(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_GEOGRAPHICAL_REGIONS, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/GroundingImpedancesRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/GroundingImpedancesRestEndPoint.java
new file mode 100644
index 00000000..7f2665fa
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/GroundingImpedancesRestEndPoint.java
@@ -0,0 +1,55 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.GroundingImpedance;
+
+/**
+ * The <i>REST</i> endpoint for {@link GroundingImpedance}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Inge Seidel
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class GroundingImpedancesRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(GroundingImpedancesRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/grounding-impedances", produces = "application/xml")
+ public void getGroundingImpedances(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_GROUNDING_IMPEDANCES, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/GroundsRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/GroundsRestEndPoint.java
new file mode 100644
index 00000000..fcd31e6d
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/GroundsRestEndPoint.java
@@ -0,0 +1,55 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Ground;
+
+/**
+ * The <i>REST</i> endpoint for {@link Ground}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Inge Seidel
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class GroundsRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(GroundsRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/grounds", produces = "application/xml")
+ public void getGrounds(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_GROUNDS, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/JunctionsRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/JunctionsRestEndPoint.java
new file mode 100644
index 00000000..f5a8973a
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/JunctionsRestEndPoint.java
@@ -0,0 +1,55 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Junction;
+
+/**
+ * The <i>REST</i> endpoint for {@link Junction}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Inge Seidel
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class JunctionsRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(JunctionsRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/junctions", produces = "application/xml")
+ public void getJunctions(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_JUNCTIONS, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/LineTypesRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/LineTypesRestEndPoint.java
new file mode 100644
index 00000000..f7805eb5
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/LineTypesRestEndPoint.java
@@ -0,0 +1,55 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Line;
+
+/**
+ * The <i>REST</i> endpoint for {@link Line}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Inge Seidel
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class LineTypesRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(LineTypesRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/line-types", produces = "application/xml")
+ public void getLines(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_LINE_TYPES, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/LinesRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/LinesRestEndPoint.java
new file mode 100644
index 00000000..4082f28c
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/LinesRestEndPoint.java
@@ -0,0 +1,55 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Line;
+
+/**
+ * The <i>REST</i> endpoint for {@link Line}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Inge Seidel
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class LinesRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(LinesRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/lines", produces = "application/xml")
+ public void getLines(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_LINES, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/LoadBreakSwitchesRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/LoadBreakSwitchesRestEndPoint.java
new file mode 100644
index 00000000..f2f4e635
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/LoadBreakSwitchesRestEndPoint.java
@@ -0,0 +1,55 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.LoadBreakSwitch;
+
+/**
+ * The <i>REST</i> endpoint for {@link LoadBreakSwitch}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Inge Seidel
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class LoadBreakSwitchesRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(LoadBreakSwitchesRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/load-break-switches", produces = "application/xml")
+ public void getLoadBreakSwitches(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_SWITCHES, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/PetersenCoilsRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/PetersenCoilsRestEndPoint.java
new file mode 100644
index 00000000..178c2581
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/PetersenCoilsRestEndPoint.java
@@ -0,0 +1,55 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PetersenCoil;
+
+/**
+ * The <i>REST</i> endpoint for {@link PetersenCoil}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Inge Seidel
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class PetersenCoilsRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(PetersenCoilsRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/petersen-coils", produces = "application/xml")
+ public void getPetersonCoils(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_PETERSEN_COILS, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/PlantsRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/PlantsRestEndPoint.java
new file mode 100644
index 00000000..0f4c4321
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/PlantsRestEndPoint.java
@@ -0,0 +1,54 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Plant;
+
+/**
+ * The <i>REST</i> endpoint for {@link Plant}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class PlantsRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(PlantsRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/plants", produces = "application/xml")
+ public void getPlants(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_PLANTS, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/PowerTransformersRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/PowerTransformersRestEndPoint.java
new file mode 100644
index 00000000..a346b430
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/PowerTransformersRestEndPoint.java
@@ -0,0 +1,55 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PowerTransformer;
+
+/**
+ * The <i>REST</i> endpoint for {@link PowerTransformer}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Inge Seidel
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class PowerTransformersRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(PowerTransformersRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/power-transformers", produces = "application/xml")
+ public void getPowerTransformers(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_POWER_TRANSFORMERS, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/SubGeographicalRegionsRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/SubGeographicalRegionsRestEndPoint.java
new file mode 100644
index 00000000..797e3f69
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/SubGeographicalRegionsRestEndPoint.java
@@ -0,0 +1,55 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.SubGeographicalRegion;
+
+/**
+ * The <i>REST</i> endpoint for {@link SubGeographicalRegion}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Inge Seidel
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class SubGeographicalRegionsRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(SubGeographicalRegionsRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/sub-geographical-regions", produces = "application/xml")
+ public void getGeographicalRegions(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_SUB_GEOGRAPHICAL_REGIONS, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/SubstationsRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/SubstationsRestEndPoint.java
new file mode 100644
index 00000000..0b06a60c
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/SubstationsRestEndPoint.java
@@ -0,0 +1,55 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Substation;
+
+/**
+ * The <i>REST</i> endpoint for {@link Substation}s.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Inge Seidel
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class SubstationsRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(SubstationsRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/substations", produces = "application/xml")
+ public void getSubstations(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_SUBSTATIONS, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/SwitchesRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/SwitchesRestEndPoint.java
new file mode 100644
index 00000000..d594662d
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/SwitchesRestEndPoint.java
@@ -0,0 +1,55 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Switch;
+
+/**
+ * The <i>REST</i> endpoint for {@link Switch}es.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Inge Seidel
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class SwitchesRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(SwitchesRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/switches", produces = "application/xml")
+ public void getSwitches(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_SWITCHES, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/TopologyIdRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/TopologyIdRestEndPoint.java
new file mode 100644
index 00000000..b2d82fe2
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/TopologyIdRestEndPoint.java
@@ -0,0 +1,53 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+
+/**
+ * The <i>REST</i> endpoint for a whole Topology.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Inge Seidel
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class TopologyIdRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(TopologyIdRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/topology-id", produces = "application/xml")
+ public void getTopologyId(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_TOPOLOGY_ID, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/TopologyRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/TopologyRestEndPoint.java
new file mode 100644
index 00000000..78e2cf37
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/TopologyRestEndPoint.java
@@ -0,0 +1,54 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+
+/**
+ * The <i>REST</i> endpoint for a whole Topology.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ * @author Frank Jäger
+ * @author Inge Seidel
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class TopologyRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(TopologyRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/topology", produces = "application/xml")
+ public void getTopology(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_TOPOLOGY, DataExchangeFormat.FORMAT_XML_1_0_UTF_8_RDF_1_1);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/VoltageLevelsRestEndPoint.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/VoltageLevelsRestEndPoint.java
new file mode 100644
index 00000000..a0016758
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/infrastructure/dataexchange/responder/VoltageLevelsRestEndPoint.java
@@ -0,0 +1,52 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.infrastructure.dataexchange.responder;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.VoltageLevel;
+
+/**
+ * The <i>REST</i> endpoint for {@link VoltageLevel}s.
+ *
+ * @author Christian Brunzendorf
+ *
+ */
+@RestController
+@RequestMapping(path = "/source-system/topology")
+public final class VoltageLevelsRestEndPoint extends AbstractHttpRestEndPoint {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(VoltageLevelsRestEndPoint.class);
+
+ // Methods
+ /**
+ * Provides the <i>REST</i> interface method.
+ *
+ * @param response
+ * the HttpServletResponse
+ * @param requestProperties
+ * the parameter values
+ */
+ @GetMapping(path = "/voltage-levels", produces = "application/xml")
+ public void getBays(HttpServletResponse response, @RequestParam Map<String, String> requestProperties) {
+
+ writeHttpRestResponse(response, requestProperties, MockUpTopologyDefaults.SCOPE_VOLTAGE_LEVELS, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/resources/.gitignore b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/resources/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/main/resources/.gitignore
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/test/java/.gitignore b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/test/java/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/test/java/.gitignore
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/test/resources/.gitignore b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/test/resources/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-infrastructure/src/test/resources/.gitignore
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/pom.xml b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/pom.xml
new file mode 100644
index 00000000..cadbf733
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/pom.xml
@@ -0,0 +1,31 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.eclipse.openk.sourcesystem.mock-up-topology</groupId>
+ <artifactId>mock-up-topology-logic</artifactId>
+
+ <name>${project.groupId}.${project.artifactId}</name>
+
+ <parent>
+ <groupId>org.eclipse.openk.build.build-parentpom</groupId>
+ <artifactId>build-parentpom-logic</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <relativePath>../../org.eclipse.openk.build/build-parentpom/build-parentpom-logic/pom.xml</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.openk.sourcesystem.mock-up-topology</groupId>
+ <artifactId>mock-up-topology-model</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.btc.cab.service</groupId>
+ <artifactId>service</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+</project> \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/.gitignore b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/.gitignore
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/dataexchange/cim/IObjectGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/dataexchange/cim/IObjectGenerator.java
new file mode 100644
index 00000000..d1618e80
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/dataexchange/cim/IObjectGenerator.java
@@ -0,0 +1,19 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim;
+
+/**
+ * A Generator.
+ *
+ * @author Christian Brunzendorf
+ *
+ * @param <T>
+ * the element type
+ */
+public interface IObjectGenerator<T> {
+
+ /**
+ * Returns a object from type <code>T</code>.
+ *
+ * @return the instance of the generated type <code>T</code>; not <code>null</code>
+ */
+ T generate();
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/dataexchange/cim/ITopologyElementGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/dataexchange/cim/ITopologyElementGenerator.java
new file mode 100644
index 00000000..1c07453f
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/dataexchange/cim/ITopologyElementGenerator.java
@@ -0,0 +1,25 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim;
+
+import com.btc.cab.common.dataexchange.cim.ICimEntity;
+
+/**
+ * A Generator of a topology element.
+ *
+ * @author Christian Brunzendorf
+ *
+ * @param <T>
+ * the topology element type
+ */
+public interface ITopologyElementGenerator<T extends ICimEntity> extends IObjectGenerator<T> {
+
+ /**
+ * Returns a topology element.
+ *
+ * @return the generated topology element of type <code>T</code>; not <code>null</code>
+ */
+ @Override
+ T generate();
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/dataexchange/cim/ITopologyGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/dataexchange/cim/ITopologyGenerator.java
new file mode 100644
index 00000000..b9cc2ca2
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/dataexchange/cim/ITopologyGenerator.java
@@ -0,0 +1,25 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim;
+
+import com.btc.cab.common.dataexchange.cim.ICimEntity;
+
+/**
+ * A Generator of a topology grid.
+ *
+ * @author Olaf Prins
+ *
+ * @param <T>
+ * the topology type
+ */
+public interface ITopologyGenerator<T extends ICimEntity> extends IObjectGenerator<T> {
+
+ /**
+ * Returns a topology.
+ *
+ * @return the instance of the generated type <code>T</code>; not <code>null</code>
+ */
+ @Override
+ T generate();
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/AbstractMockUpGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/AbstractMockUpGenerator.java
new file mode 100644
index 00000000..b1abcd14
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/AbstractMockUpGenerator.java
@@ -0,0 +1,723 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.model.TopologyElement;
+
+import com.btc.cab.common.dataexchange.cim.ICimEntity;
+import com.btc.cab.common.dataexchange.cim.ICimIdentifiedObject;
+import com.btc.cab.common.string.StringUtilities;
+import com.btc.cab.common.system.FatalException;
+import com.btc.cim.cim17v07.TC57CIM.IEC61968.AssetInfo.WireInfo;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.BaseVoltage;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.ConductingEquipment;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.ConnectivityNode;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Equipment;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Name;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Substation;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Terminal;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.ApparentPower;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.CurrentFlow;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.Length;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.ReactancePerLength;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.ResistancePerLength;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.UnitMultiplier;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.UnitSymbol;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.Voltage;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.ACLineSegment;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Line;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PerLengthSequenceImpedance;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PowerTransformer;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PowerTransformerEnd;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.RatioTapChanger;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Switch;
+
+/**
+ * Base class for all self generated mock-up models
+ *
+ * @author Frank Jäger
+ *
+ */
+public abstract class AbstractMockUpGenerator {
+
+ // Constants
+ private static final String SEPARATOR = "-";
+
+ // Attributes
+ private Map<String, ConnectivityNode> allConnectivityNodes;
+ private Map<Double, BaseVoltage> baseVoltages;
+ protected Map<String, ICimIdentifiedObject> topologyElements;
+
+ // Methods
+ /**
+ * Set some attributes for {@link ACLineSegment}
+ *
+ * @param model
+ * parameter, not <code>null</code> or <code>""</code>
+ * @param element
+ * of type {@link ACLineSegment}, not <code>null</code>
+ */
+ private void addAcLineSegmentAttributes(String model, ACLineSegment element) {
+
+ Length length = new Length();
+ length.setMultiplier(UnitMultiplier.k);
+ length.setUnit(UnitSymbol.V);
+ length.setValue(Double.valueOf(1000.0));
+
+ element.setLength(length);
+
+ PerLengthSequenceImpedance perLengthSequenceImpedance = new PerLengthSequenceImpedance();
+
+ perLengthSequenceImpedance.setMRID(getMRID(model, TopologyElement.PER_LENGTH_SEQUENCE_IMPENDANCE.getUuidString(), "0"));
+
+ ResistancePerLength resistancePerLength = new ResistancePerLength();
+ resistancePerLength.setMultiplier(UnitMultiplier.M);
+ resistancePerLength.setUnit(UnitSymbol.ohm);
+ resistancePerLength.setValue(Double.valueOf(555.0));
+
+ perLengthSequenceImpedance.setR(resistancePerLength);
+
+ ReactancePerLength reactancePerLength = new ReactancePerLength();
+ reactancePerLength.setMultiplier(UnitMultiplier.M);
+ reactancePerLength.setUnit(UnitSymbol.ohm);
+ reactancePerLength.setValue(Double.valueOf(111.0));
+
+ perLengthSequenceImpedance.setX(reactancePerLength);
+
+ WireInfo wireInfo = new WireInfo();
+ List<WireInfo> wireInfos = new ArrayList<>();
+
+ CurrentFlow currentFlow = new CurrentFlow();
+ currentFlow.setMultiplier(UnitMultiplier.m);
+ currentFlow.setUnit(UnitSymbol.A);
+ currentFlow.setValue(Double.valueOf(123.0D));
+
+ wireInfo.setRatedCurrent(currentFlow);
+ wireInfo.setMRID(getMRID(model, TopologyElement.WIRE_INFO.getUuidString(), "0"));
+ wireInfos.add(wireInfo);
+
+ perLengthSequenceImpedance.setWireInfos(wireInfos);
+
+ element.setPerLengthImpedance(perLengthSequenceImpedance);
+ }
+
+ /**
+ * Set the default attribute normalOpen and open for {@link Switch} to <code>false</code>
+ *
+ * @param model
+ * the model parameter, not <code>null</code> or <code>""</code>
+ * @param element
+ * the element of type switch, not <code>null</code>
+ */
+ private void addSwitchAttributes(String model, Switch element) {
+
+ element.setNormalOpen(Boolean.valueOf(false));
+ element.setOpen(Boolean.valueOf(false));
+ }
+
+ /**
+ * Add an element to the topology map
+ *
+ * @param topologyElementType
+ * a topology element of type {@link ConductingEquipment}, not <code>null</code>
+ * @param model
+ * identifier for the model, not <code>null</code> or <code>""</code>
+ * @param name
+ * the name of the topology element, not <code>null</code> or <code>""</code>
+ * @param mRid
+ * the mRID of the topology element, not <code>null</code> or <code>""</code>
+ * @param mRidNode1
+ * the mRID of Node 1, not <code>null</code> or <code>""</code>
+ * @param mRidNode2
+ * the mRID of NOde 2, not <code>null</code> or <code>""</code>
+ */
+ protected void addTopologyElement(Class<? extends ConductingEquipment> topologyElementType, String model, String name, String mRid, String mRidNode1, String mRidNode2) {
+
+ List<ConnectivityNode> connectivityNodes = generateConnectivityNodes(mRidNode1, mRidNode2);
+
+ if(PowerTransformer.class.isAssignableFrom(topologyElementType))
+ topologyElements.put(mRid, generatePowerTransformer(model, name, mRid, connectivityNodes));
+ else
+ topologyElements.put(mRid, generateTopologyElement(topologyElementType, model, name, mRid, connectivityNodes));
+ }
+
+ /**
+ * Generate the connectivity nodes of the net
+ *
+ * @param model
+ * the model parameter, not <code>null</code> or <code>""</code>
+ * @param startNumber
+ * the start number of the connectivity nodes, integer value <code>startNumber > 0</code>
+ * @param endNumber
+ * the end number of the connectivity nodes, integer value <code>startNumber < endNumber</code>
+ */
+ protected void generateAllConnectivityNodes(String model, int startNumber, int endNumber) {
+
+ allConnectivityNodes = new HashMap<>();
+
+ /* generate all connectivity nodes */
+ for(int i = startNumber; i <= (startNumber + endNumber); i++) {
+
+ String mRID = getMRID(model, TopologyElement.CONNECTIVITY_NODE.getUuidString(), String.valueOf(i));
+
+ allConnectivityNodes.put(mRID, generateConnectivityNode(mRID));
+ }
+ }
+
+ /**
+ * Get or generate a {@link ConnectivityNode} with given mRID and empty terminal list
+ *
+ * @param mRID
+ * the unique identifier, can be <code>null</code> or <code>""</code>
+ * @return
+ * one {@link ConnectivityNode}, not <code>null</code>
+ */
+ protected ConnectivityNode generateConnectivityNode(String mRID) {
+
+ ConnectivityNode connectivityNode = null;
+
+ if(StringUtilities.hasContent(mRID))
+ if(allConnectivityNodes.get(mRID) == null) {
+
+ connectivityNode = new ConnectivityNode();
+ connectivityNode.setMRID(mRID);
+
+ List<Terminal> terminals = new ArrayList<>();
+ connectivityNode.setTerminals(terminals);
+ }
+ else
+ connectivityNode = allConnectivityNodes.get(mRID);
+
+ return connectivityNode;
+ }
+
+ /**
+ * Get or generate a List of {@link ConnectivityNode}s with given mRIDs
+ *
+ * @param mRID1
+ * the 1st unique identifier, can be <code>null</code> or <code>""</code>
+ * @param mRID2
+ * the 2nd unique identifier, can be <code>null</code> or <code>""</code>
+ * @return
+ * a list of {@link ConnectivityNode}s, which has 0, 1 or 2 elements, not <code>null</code>
+ */
+ protected List<ConnectivityNode> generateConnectivityNodes(String mRID1, String mRID2) {
+
+ List<ConnectivityNode> connectivityNodes = new ArrayList<>();
+
+ String[] mRids = { mRID1, mRID2 };
+
+ for(String mRid : mRids)
+ if(mRid != null)
+ connectivityNodes.add(generateConnectivityNode(mRid));
+
+ return connectivityNodes;
+ }
+
+ /**
+ * Generate one {@link Line} from line segments
+ *
+ * @param name
+ * the name, not <code>null</code> or <code>""</code>
+ * @param mRID
+ * the unique identifier, not <code>null</code> or <code>""</code>
+ * @param equipments
+ * a list of equipment elements of type {@link ACLineSegment}
+ * @return
+ * an instance of {@link Line}, not <code>null</code>
+ */
+ protected Line generateLine(String name, String mRID, List<Equipment> equipments) {
+
+ Line line = new Line();
+
+ line.setName(name);
+ line.setMRID(mRID);
+
+ /* add name to Names */
+ // line.setNames(generateNames(name));
+
+ if(equipments != null)
+ line.setEquipments(equipments);
+
+ return line;
+ }
+
+ /**
+ * Generates a String out of 5 sub strings to be converted to a UUID
+ *
+ * @param first
+ * 1st part, not <code>null</code>, or <code>""</code>
+ * @param second
+ * 2nd part, not <code>null</code>, or <code>""</code>
+ * @param third
+ * 3rd part, not <code>null</code>, or <code>""</code>
+ * @param fourth
+ * 4th part, not <code>null</code>, or <code>""</code>
+ * @param fifth
+ * 5th part, not <code>null</code>, or <code>""</code>
+ * @return
+ * a String representing a uuid, not <code>null</code>, or <code>""</code>
+ */
+ private final String generateMRID(String first, String second, String third, String fourth, String fifth) {
+
+ return first + SEPARATOR + second + SEPARATOR + third + SEPARATOR + fourth + SEPARATOR + fifth;
+ }
+
+ /**
+ * Adds <i>name</i> to an empty list of {@link Name}s
+ *
+ * @param name
+ * the name, not <code>null</code> or <code>""</code>
+ * @return
+ * a list of {@link Name}s with one element
+ */
+ protected List<Name> generateNames(String name) {
+
+ Name name1 = new Name();
+ name1.setName(name);
+ List<Name> names = new ArrayList<>();
+ names.add(name1);
+
+ return names;
+ }
+
+ /**
+ * Generates one {@link Terminal} with given name and mRID and {@link ConnectivityNode}
+ *
+ * @param name
+ * the name, not <code>null</code> or <code>""</code>
+ * @param mRID
+ * the unique identifier, not <code>null</code> or <code>""</code>
+ * @param connectivityNode
+ * the connectivityNode, can be <code>null</code>
+ * @return
+ * one {@link Terminal}, not <code>null</code>
+ */
+ protected Terminal generateTerminal(String name, String mRID, ConnectivityNode connectivityNode) {
+
+ Terminal terminal = new Terminal();
+
+ if(connectivityNode != null) {
+ terminal.setName(name);
+ terminal.setMRID(mRID);
+ terminal.setConnectivityNode(connectivityNode);
+
+ /* add the back reference in connectivity node */
+ connectivityNode.getTerminals().add(terminal);
+ }
+
+ return terminal;
+ }
+
+ /**
+ * Generates a list of one or two {@link Terminal}s with given name and mRID and {@link ConnectivityNode}s
+ *
+ * @param name
+ * the name, not <code>null</code> or <code>""</code>
+ * @param mRID1
+ * the 1st unique identifier, not <code>null</code> or <code>""</code>
+ * @param mRID2
+ * the 2nd unique identifier, not <code>null</code> or <code>""</code>
+ * @param connectivityNodes
+ * a list of connectivity nodes, not <code>null</code>
+ * @return
+ * a list of {@link Terminal}s, not <code>null</code>
+ */
+ protected List<Terminal> generateTerminals(String name, String mRID1, String mRID2, List<ConnectivityNode> connectivityNodes) {
+
+ List<Terminal> terminals = new ArrayList<>();
+
+ if(StringUtilities.hasContent(name) && connectivityNodes != null) {
+
+ if(connectivityNodes.size() >= 1 && StringUtilities.hasContent(mRID1))
+ terminals.add(generateTerminal(name + "_T1", mRID1, connectivityNodes.get(0)));
+
+ if(connectivityNodes.size() >= 2 && StringUtilities.hasContent(mRID2))
+ terminals.add(generateTerminal(name + "_T2", mRID2, connectivityNodes.get(1)));
+ }
+
+ return terminals;
+ }
+
+ /**
+ * Generates selected topology element from <i>CIM<i> model Version 17.07
+ *
+ * @param toplogyElementType
+ * the <i>CIM<i> element which is of type {@link ConductingEquipment}
+ * @param model
+ * the model parameter, not <code>null</code> or <code>""</code>
+ * @param name
+ * the name, not <code>null</code> or <code>""</code>
+ * @param mRID
+ * the unique identifier, not <code>null</code> or <code>""</code>
+ * @param connectivityNodes
+ * the {@link ConnectivityNode}s which are specified in the {@link Terminal}s of this topology element, not <code>null</code>
+ * @return
+ * an instance of the topology element, not <code>null</code>
+ */
+ private ConductingEquipment generateTopologyElement(Class<? extends ConductingEquipment> toplogyElementType, String model, String name, String mRID, List<ConnectivityNode> connectivityNodes) {
+
+ ConductingEquipment element = null;
+
+ try {
+ element = toplogyElementType.newInstance();
+
+ element.setName(name);
+ element.setMRID(mRID);
+ String[] parentMRID = mRID.split(SEPARATOR);
+ String mRID1 = getMRID(model, parentMRID[1], parentMRID[2], TopologyElement.TERMINAL.getUuidString(), "1");
+ String mRID2 = getMRID(model, parentMRID[1], parentMRID[2], TopologyElement.TERMINAL.getUuidString(), "2");
+ element.setTerminals(generateTerminals(name, mRID1, mRID2, connectivityNodes));
+
+ /* add back reference from terminal to conducting equipment */
+ for(Terminal terminal : element.getTerminals())
+ if(terminal != null)
+ terminal.setConductingEquipment(element); // element
+
+ /* add name to Names */
+ // element.setNames(generateNames(name));
+
+ /* set base voltage */
+ element.setBaseVoltage(getBaseVoltage(model, Double.valueOf(123.0)));
+
+ if(ACLineSegment.class.isAssignableFrom(element.getClass()))
+ addAcLineSegmentAttributes(model, (ACLineSegment) element);
+ if(Switch.class.isAssignableFrom(element.getClass()))
+ addSwitchAttributes(model, (Switch) element);
+ }
+ catch(InstantiationException | IllegalAccessException exception) {
+ throw new FatalException(exception); /* should be unreachable code */
+ }
+
+ return element;
+ }
+
+ /**
+ * Generates the {@link PowerTransformer} including {@link PowerTransformerEnd}s and {@link RatioTapChanger}
+ *
+ * @param model
+ * the model parameter, not <code>null</code> or <code>""</code>
+ * @param name
+ * the name, not <code>null</code> or <code>""</code>
+ * @param mRID
+ * the unique identifier, not <code>null</code> or <code>""</code>
+ * @param connectivityNodes
+ * the {@link ConnectivityNode}s which are specified in the {@link Terminal}s of the {@link PowerTransformer} and {@link PowerTransformerEnd}s, not <code>null</code>
+ * @return
+ * an instance of {@link PowerTransformer}, not <code>null</code>
+ */
+ protected PowerTransformer generatePowerTransformer(String model, String name, String mRID, List<ConnectivityNode> connectivityNodes) {
+
+ /* generate power transformer ends */
+ List<PowerTransformerEnd> powerTransformerEnds = new ArrayList<>();
+
+ String[] bothEnds = { name + "_End1", name + "_End2" };
+
+ for(String endName : bothEnds) {
+
+ int number = endName.contains("End1") ? 1 : 2;
+
+ PowerTransformerEnd powerTransformerEnd = new PowerTransformerEnd();
+
+ powerTransformerEnd.setName(endName);
+ powerTransformerEnd.setMRID(getMRID(model, TopologyElement.POWER_TRANSFORMER_END.getUuidString(), String.valueOf(number)));
+
+ /* base voltage for high and low voltage side */
+ Double voltValue = endName.contains("End1") ? Double.valueOf(123.4) : Double.valueOf(10.1);
+ powerTransformerEnd.setBaseVoltage(getBaseVoltage(model, voltValue));
+
+ /* terminal */
+ Terminal terminal = generateTerminal(endName, getMRID(model, TopologyElement.POWER_TRANSFORMER_END.getUuidString(), String.valueOf(number), TopologyElement.TERMINAL.getUuidString(), String.valueOf(number)), connectivityNodes.get(number - 1));
+ powerTransformerEnd.setTerminal(terminal);
+
+ /* ratio tap changer only for low voltage side */
+ if(number == 2)
+ powerTransformerEnd.setRatioTapChanger(generateRatioTapChanger(name + "_End2_TapChanger", getMRID(model, TopologyElement.POWER_TRANSFORMER_END.getUuidString(), String.valueOf(number), TopologyElement.RATIO_TAP_CHANGER.getUuidString(), String.valueOf(number))));
+
+ /* rated U and rated S */
+ Double volt = endName.contains("End1") ? Double.valueOf(222.2) : Double.valueOf(11.11);
+ Double voltAmpere = endName.contains("End1") ? Double.valueOf(23.4) : Double.valueOf(46.8);
+
+ ApparentPower apparentPower = new ApparentPower();
+ apparentPower.setMultiplier(UnitMultiplier.M);
+ apparentPower.setUnit(UnitSymbol.VA);
+ apparentPower.setValue(voltAmpere);
+
+ BaseVoltage voltage = getBaseVoltage(model, volt);
+
+ /* add rated U */
+ powerTransformerEnd.setRatedU(voltage.getNominalVoltage());
+ /* add rated S */
+ powerTransformerEnd.setRatedS(apparentPower);
+
+ powerTransformerEnds.add(powerTransformerEnd);
+ }
+
+ /* generate PowerTransfromer with PowerTransformerEnds */
+ PowerTransformer powerTransformer = new PowerTransformer();
+
+ powerTransformer.setName(name);
+ powerTransformer.setMRID(mRID);
+ powerTransformer.setPowerTransformerEnd(powerTransformerEnds);
+ powerTransformer.setBaseVoltage(null);
+
+ /* set the terminals for power transformer, which are identical to those from power transformer end */
+ List<Terminal> terminals = new ArrayList<>();
+ if(powerTransformer.getPowerTransformerEnd() != null) {
+ terminals.add(powerTransformer.getPowerTransformerEnd().get(0).getTerminal());
+ terminals.add(powerTransformer.getPowerTransformerEnd().get(1).getTerminal());
+ }
+ powerTransformer.setTerminals(terminals);
+
+ /* add back reference from terminal to conducting equipment */
+ for(Terminal terminal : powerTransformer.getTerminals())
+ if(terminal != null)
+ terminal.setConductingEquipment(powerTransformer); // powerTransformer
+
+ /* add name to Names */
+ // powerTransformer.setNames(generateNames(name));
+
+ return powerTransformer;
+ }
+
+ /**
+ * Generates the {@link RatioTapChanger} for the power transformer end
+ *
+ * @param name
+ * the name, not <code>null</code> or <code>""</code>
+ * @param mRID
+ * the unique identifier, not <code>null</code> or <code>""</code>
+ * @return
+ * an instance of the {@link RatioTapChanger}, not <code>null</code>
+ */
+ private RatioTapChanger generateRatioTapChanger(String name, String mRID) {
+
+ RatioTapChanger ratioTapChanger = new RatioTapChanger();
+
+ ratioTapChanger.setName(name);
+ ratioTapChanger.setMRID(mRID);
+
+ /* add name to Names */
+ // ratioTapChanger.setNames(generateNames(name));
+
+ return ratioTapChanger;
+ }
+
+ /**
+ * Generates one {@link Substation} of the net
+ *
+ * @param name
+ * the name, not <code>null</code> or <code>""</code>
+ * @param mRID
+ * the unique identifier, not <code>null</code> or <code>""</code>
+ * @param equipments
+ * a list of equipment elements, can be <code>null</code>
+ * @return
+ * an instance of {@link Substation}, not <code>null</code>
+ */
+ protected Substation generateSubstation(String name, String mRID, List<Equipment> equipments) {
+
+ Substation substation = new Substation();
+
+ substation.setName(name);
+ substation.setMRID(mRID);
+
+ /* add name to Names */
+ // substation.setNames(generateNames(name));
+
+ if(equipments != null)
+ substation.setEquipments(equipments);
+
+ return substation;
+ }
+
+ /**
+ * Get or generate the {@link BaseVoltage} and add to baseVoltages
+ *
+ * @param model
+ * the model parameter, not <code>null</code> or <code>""</code>
+ * @param value
+ * the voltage value, not <code>null</code>
+ * @return
+ * an instance of {@link BaseVoltage} in units of <i>kV</i>, not <code>null</code>
+ */
+ @SuppressWarnings("boxing")
+ private BaseVoltage getBaseVoltage(String model, Double value) {
+
+ BaseVoltage baseVoltage;
+
+ if(baseVoltages == null)
+ baseVoltages = new HashMap<>();
+
+ if(baseVoltages.get(value) == null) {
+
+ baseVoltage = new BaseVoltage();
+
+ Voltage voltage = new Voltage();
+ voltage.setMultiplier(UnitMultiplier.k);
+ voltage.setUnit(UnitSymbol.V);
+ voltage.setValue(value);
+ baseVoltage.setNominalVoltage(voltage);
+ baseVoltage.setMRID(getMRID(model, TopologyElement.BASE_VOLTAGE.getUuidString(), "0", "0", String.format("%1.0f", Double.valueOf(10 * value))));
+ baseVoltage.setName("Nennspannung");
+
+ /* add name to Names */
+ // baseVoltage.setNames(generateNames("Nennspannung"));
+
+ baseVoltages.put(value, baseVoltage);
+ }
+ else
+ baseVoltage = baseVoltages.get(value);
+
+ return baseVoltage;
+ }
+
+ // Properties
+ /**
+ * Returns a Map of all connectivity nodes of the net
+ *
+ * @return
+ * a HashMap of {@link ConnectivityNode}'s with the identifier as key
+ */
+ public Map<String, ConnectivityNode> getAllConnectivityNodes() {
+
+ return allConnectivityNodes;
+ }
+
+ /**
+ *
+ * @return baseVoltages
+ * a map of {@link BaseVoltage}s with the voltage value as key
+ */
+ public Map<Double, BaseVoltage> getBaseVoltages() {
+
+ return baseVoltages;
+ }
+
+ /**
+ * Generates a String out of 5 sub strings to be converted to a UUID
+ *
+ * @param first
+ * 1st part, not <code>null</code>, or <code>""</code>
+ * @param second
+ * 2nd part, not <code>null</code>, or <code>""</code>
+ * @param third
+ * 3rd part, not <code>null</code>, or <code>""</code>
+ * @param fourth
+ * 4th part, not <code>null</code>, or <code>""</code>
+ * @param fifth
+ * 5th part, not <code>null</code>, or <code>""</code>
+ * @return
+ * a String representing a uuid, not <code>null</code>, or <code>""</code>
+ */
+ protected final String getMRID(String first, String second, String third, String fourth, String fifth) {
+
+ return generateMRID(first, second, third, fourth, fifth);
+ }
+
+ /**
+ * Generates a String out of 5 sub strings to be converted to a UUID
+ *
+ * @param first
+ * 1st part, not <code>null</code>, or <code>""</code>
+ * @param second
+ * 2nd part, not <code>null</code>, or <code>""</code>
+ * @param third
+ * 3rd part, not <code>null</code>, or <code>""</code>
+ * @param fourth
+ * 4th part, not <code>null</code>, or <code>""</code>
+ * @return
+ * a String representing a uuid, not <code>null</code>, or <code>""</code>
+ */
+ protected final String getMRID(String first, String second, String third, String fourth) {
+
+ return generateMRID(first, second, third, fourth, "0");
+ }
+
+ /**
+ * Generates a String out of 5 sub strings to be converted to a UUID
+ *
+ * @param first
+ * 1st part, not <code>null</code>, or <code>""</code>
+ * @param second
+ * 2nd part, not <code>null</code>, or <code>""</code>
+ * @param third
+ * 3rd part, not <code>null</code>, or <code>""</code>
+ * @return
+ * a String representing a uuid, not <code>null</code>, or <code>""</code>
+ */
+ protected final String getMRID(String first, String second, String third) {
+
+ return generateMRID(first, second, third, "0", "0");
+ }
+
+ /**
+ * Generates a String out of 5 sub strings to be converted to a UUID
+ *
+ * @param first
+ * 1st part, not <code>null</code>, or <code>""</code>
+ * @param second
+ * 2nd part, not <code>null</code>, or <code>""</code>
+ * @return
+ * a String representing a uuid, not <code>null</code>, or <code>""</code>
+ */
+ protected final String getMRID(String first, String second) {
+
+ return generateMRID(first, second, "0", "0", "0");
+ }
+
+ /**
+ * Returns a Map of all topology elements of the net including {@link BaseVoltage}s
+ *
+ * @return
+ * a Map of {@link ICimEntity}'s with the identifier as key, not <code>null</code>
+ */
+ public Map<String, ICimIdentifiedObject> getEntities() {
+
+ Map<String, ICimIdentifiedObject> result = new HashMap<>();
+
+ result.putAll(topologyElements);
+
+ if(baseVoltages != null)
+ for(BaseVoltage baseVoltage : baseVoltages.values())
+ result.put(baseVoltage.getMRID(), baseVoltage);
+
+ return result;
+ }
+
+ /**
+ * Set the {@link BaseVoltage}s
+ *
+ * @param baseVoltages
+ */
+ public void setBaseVoltages(Map<Double, BaseVoltage> baseVoltages) {
+
+ this.baseVoltages = baseVoltages;
+ }
+
+ /**
+ * Set the {@link ConnectivityNode}s
+ *
+ * @param allConnectivityNodes
+ * a map of {@link ConnectivityNode}s with the identifier as key
+ */
+ public void setAllConnectivityNodes(Map<String, ConnectivityNode> allConnectivityNodes) {
+
+ this.allConnectivityNodes = allConnectivityNodes;
+ }
+
+ /**
+ * Set the topology elements of type {@link ICimIdentifiedObject}
+ *
+ * @param topologyElements
+ * a map of {@link ICimIdentifiedObject}s with the identifier as key
+ */
+ public void setTopologyElements(Map<String, ICimIdentifiedObject> topologyElements) {
+
+ this.topologyElements = topologyElements;
+ }
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/AcLineSegmentGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/AcLineSegmentGenerator.java
new file mode 100644
index 00000000..5471b3d0
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/AcLineSegmentGenerator.java
@@ -0,0 +1,46 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.Length;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.Reactance;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.UnitMultiplier;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.UnitSymbol;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.ACLineSegment;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PerLengthSequenceImpedance;
+
+/**
+ * Generator for {@link ACLineSegment}'s.
+ *
+ * @author Olaf Prins
+ */
+public class AcLineSegmentGenerator implements ITopologyElementGenerator<ACLineSegment> {
+
+ // Methods
+ @Override
+ public ACLineSegment generate() {
+
+ ACLineSegment acLineSegment = new ACLineSegment();
+
+ acLineSegment.setMRID(UUID.randomUUID().toString());
+ acLineSegment.setName("ACLineSegment " + acLineSegment.getMRID());
+ acLineSegment.setDescription("ein Leitungssegment");
+ acLineSegment.setLength(new Length());
+ acLineSegment.getLength().setValue(Double.valueOf(Math.random() * 1000d));
+ acLineSegment.getLength().setMultiplier(UnitMultiplier.k);
+ acLineSegment.getLength().setUnit(UnitSymbol.m);
+ acLineSegment.setX(new Reactance());
+ acLineSegment.getX().setValue(Double.valueOf(Math.random()));
+ acLineSegment.getX().setMultiplier(UnitMultiplier.none);
+ acLineSegment.getX().setUnit(UnitSymbol.ohm);
+ acLineSegment.setPerLengthImpedance(new PerLengthSequenceImpedance());
+ acLineSegment.getPerLengthImpedance().setMRID(UUID.randomUUID().toString());
+
+ return acLineSegment;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/BaseVoltageGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/BaseVoltageGenerator.java
new file mode 100644
index 00000000..7ce8b55d
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/BaseVoltageGenerator.java
@@ -0,0 +1,59 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.BaseVoltage;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.UnitMultiplier;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.UnitSymbol;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.Voltage;
+
+/**
+ * Generator for {@link BaseVoltage}'s.
+ *
+ * @author Olaf Prins
+ */
+public class BaseVoltageGenerator implements ITopologyElementGenerator<BaseVoltage> {
+
+ // Attributes
+ private double voltage;
+
+ // Constructors
+ /**
+ * Constructor.
+ *
+ * @param voltage
+ * the voltage, must not be {@code null}
+ */
+ public BaseVoltageGenerator(double voltage) {
+ this.voltage = voltage;
+ }
+
+ // Methods
+ @Override
+ public BaseVoltage generate() {
+
+ BaseVoltage baseVoltage = new BaseVoltage();
+
+ baseVoltage.setMRID(UUID.randomUUID().toString());
+ baseVoltage.setName("BaseVoltage " + baseVoltage.getMRID());
+ baseVoltage.setDescription("eine Nennspannung");
+ baseVoltage.setNominalVoltage(new Voltage());
+ baseVoltage.getNominalVoltage().setUnit(UnitSymbol.V);
+
+ if(voltage >= 1000) {
+ baseVoltage.getNominalVoltage().setValue(Double.valueOf(voltage / 1000));
+ baseVoltage.getNominalVoltage().setMultiplier(UnitMultiplier.k);
+ }
+ else {
+ baseVoltage.getNominalVoltage().setValue(Double.valueOf(voltage));
+ baseVoltage.getNominalVoltage().setMultiplier(UnitMultiplier.none);
+ }
+
+ return baseVoltage;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/BayGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/BayGenerator.java
new file mode 100644
index 00000000..c0137408
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/BayGenerator.java
@@ -0,0 +1,39 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Bay;
+
+/**
+ * Generator for {@link Bay}'s.
+ *
+ * @author Christian Brunzendorf
+ */
+public class BayGenerator implements ITopologyElementGenerator<Bay> {
+
+ // Constructors
+ /**
+ * Constructor.
+ *
+ */
+ public BayGenerator() {
+ }
+
+ // Methods
+ @Override
+ public Bay generate() {
+
+ Bay bay = new Bay();
+
+ bay.setMRID(UUID.randomUUID().toString());
+ bay.setName("bay " + bay.getMRID());
+ bay.setDescription("ein Feld");
+
+ return bay;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/BreakerGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/BreakerGenerator.java
new file mode 100644
index 00000000..e446817a
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/BreakerGenerator.java
@@ -0,0 +1,31 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Breaker;
+
+/**
+ * Generator for {@link Breaker}'s.
+ *
+ * @author Olaf Prins
+ */
+public class BreakerGenerator implements ITopologyElementGenerator<Breaker> {
+
+ // Methods
+ @Override
+ public Breaker generate() {
+
+ Breaker breaker = new Breaker();
+
+ breaker.setMRID(UUID.randomUUID().toString());
+ breaker.setName("Breaker " + breaker.getMRID());
+ breaker.setDescription("ein Lastschalter");
+
+ return breaker;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/BusbarSectionGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/BusbarSectionGenerator.java
new file mode 100644
index 00000000..8ff05449
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/BusbarSectionGenerator.java
@@ -0,0 +1,32 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.BusbarSection;
+
+/**
+ * Generator for {@link BusbarSection}'s.
+ *
+ * @author Olaf Prins
+ */
+public class BusbarSectionGenerator implements ITopologyElementGenerator<BusbarSection> {
+
+ // Methods
+ @Override
+ public BusbarSection generate() {
+
+ BusbarSection busbarSection = new BusbarSection();
+
+ busbarSection.setMRID(UUID.randomUUID().toString());
+ busbarSection.setName("BusbarSection " + busbarSection.getMRID());
+ busbarSection.setDescription("eine Sammelschiene");
+
+ return busbarSection;
+ }
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/DisconnectorGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/DisconnectorGenerator.java
new file mode 100644
index 00000000..4c718341
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/DisconnectorGenerator.java
@@ -0,0 +1,31 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Disconnector;
+
+/**
+ * Generator for {@link Disconnector}'s.
+ *
+ * @author Olaf Prins
+ */
+public class DisconnectorGenerator implements ITopologyElementGenerator<Disconnector> {
+
+ // Methods
+ @Override
+ public Disconnector generate() {
+
+ Disconnector disconnector = new Disconnector();
+
+ disconnector.setMRID(UUID.randomUUID().toString());
+ disconnector.setName("Disconnector " + disconnector.getMRID());
+ disconnector.setDescription("ein Trenner");
+
+ return disconnector;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/EarthFaultCompensatorGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/EarthFaultCompensatorGenerator.java
new file mode 100644
index 00000000..a3a3c508
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/EarthFaultCompensatorGenerator.java
@@ -0,0 +1,37 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EarthFaultCompensator;
+
+/**
+ * Generator for {@link EarthFaultCompensator}'s.
+ *
+ * @author Inge Seidel
+ */
+public class EarthFaultCompensatorGenerator implements ITopologyElementGenerator<EarthFaultCompensator> {
+
+ // Methods
+ @Override
+ public EarthFaultCompensator generate() {
+
+ EarthFaultCompensator earthFaultCompensator = new EarthFaultCompensator();
+
+ // TODO 2017-08-04 Inge Attribute anpassen, wenn Schnittstelle freigegeben ist
+ earthFaultCompensator.setMRID(UUID.randomUUID().toString());
+ earthFaultCompensator.setName("earthFaultCompensator " + earthFaultCompensator.getMRID());
+ earthFaultCompensator.setDescription("ein Erdungswiderstand");
+
+ // earthFaultCompensator.setR(new Resistance());
+ // earthFaultCompensator.getR().setValue(Double.valueOf(Math.random()));
+ // earthFaultCompensator.getR().setMultiplier(UnitMultiplier.none);
+ // earthFaultCompensator.getR().setUnit(UnitSymbol.ohm);
+
+ return earthFaultCompensator;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/EnergyConsumerGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/EnergyConsumerGenerator.java
new file mode 100644
index 00000000..6b9b75d6
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/EnergyConsumerGenerator.java
@@ -0,0 +1,31 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EnergyConsumer;
+
+/**
+ * Generator for {@link EnergyConsumer}'s.
+ *
+ * @author Olaf Prins
+ */
+public class EnergyConsumerGenerator implements ITopologyElementGenerator<EnergyConsumer> {
+
+ @Override
+ public EnergyConsumer generate() {
+
+ EnergyConsumer energyConsumer = new EnergyConsumer();
+
+ energyConsumer.setMRID(UUID.randomUUID().toString());
+ energyConsumer.setName("EnergyConsumer " + energyConsumer.getMRID());
+ energyConsumer.setDescription("ein Energieverbraucher");
+
+ return energyConsumer;
+ }
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/EnergySourceGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/EnergySourceGenerator.java
new file mode 100644
index 00000000..f5bb8501
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/EnergySourceGenerator.java
@@ -0,0 +1,31 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EnergySource;
+
+/**
+ * Generator for {@link EnergySource}'s.
+ *
+ * @author Olaf Prins
+ */
+public class EnergySourceGenerator implements ITopologyElementGenerator<EnergySource> {
+
+ // Methods
+ @Override
+ public EnergySource generate() {
+
+ EnergySource energySource = new EnergySource();
+
+ energySource.setMRID(UUID.randomUUID().toString());
+ energySource.setName("EnergySource " + energySource.getMRID());
+ energySource.setDescription("ein Kraftwerk");
+
+ return energySource;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/GeographicalRegionGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/GeographicalRegionGenerator.java
new file mode 100644
index 00000000..d8c0880d
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/GeographicalRegionGenerator.java
@@ -0,0 +1,43 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.GeographicalRegion;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.SubGeographicalRegion;
+
+/**
+ * Generator for {@link GeographicalRegion}'s.
+ *
+ * @author Frank Jäger
+ *
+ */
+public class GeographicalRegionGenerator implements ITopologyElementGenerator<GeographicalRegion> {
+
+ // Methods
+ @Override
+ public GeographicalRegion generate() {
+
+ GeographicalRegion geographicalRegion = new GeographicalRegion();
+
+ geographicalRegion.setMRID(UUID.randomUUID().toString());
+ geographicalRegion.setName("GeographicalRegion " + geographicalRegion.getMRID());
+ geographicalRegion.setDescription("eine geographische Region");
+
+ /* generate a list of sub geographical regions */
+ SubGeographicalRegion subGeographicalRegion1 = new SubGeographicalRegionGenerator().generate();
+ SubGeographicalRegion subGeographicalRegion2 = new SubGeographicalRegionGenerator(new Double(30000.0), new Double(400.0), new Integer(3)).generate();
+
+ List<SubGeographicalRegion> regions = new ArrayList<>();
+ regions.add(subGeographicalRegion1);
+ regions.add(subGeographicalRegion2);
+
+ geographicalRegion.setRegions(regions);
+
+ return geographicalRegion;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/GroundGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/GroundGenerator.java
new file mode 100644
index 00000000..dfb2d35a
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/GroundGenerator.java
@@ -0,0 +1,31 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Ground;
+
+/**
+ * Generator for {@link Ground}'s.
+ *
+ * @author Inge Seidel
+ *
+ */
+public class GroundGenerator implements ITopologyElementGenerator<Ground> {
+
+ // Methods
+ @Override
+ public Ground generate() {
+
+ Ground ground = new Ground();
+
+ // TODO 2017-08-04 Inge Attribute anpassen, wenn Schnittstelle freigegeben ist
+ ground.setMRID(UUID.randomUUID().toString());
+ ground.setName("Ground " + ground.getMRID());
+ ground.setDescription("eine Erdung");
+ // ground.setBaseVoltage(new BaseVoltage());
+
+ return ground;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/GroundingImpedanceGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/GroundingImpedanceGenerator.java
new file mode 100644
index 00000000..2dd617e8
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/GroundingImpedanceGenerator.java
@@ -0,0 +1,42 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.GroundingImpedance;
+
+/**
+ * Generator for {@link GroundingImpedance}'s.
+ *
+ * @author Inge Seidel
+ *
+ */
+public class GroundingImpedanceGenerator implements ITopologyElementGenerator<GroundingImpedance> {
+
+ // Methods
+ @Override
+ public GroundingImpedance generate() {
+
+ // TODO 2017-08-04 Inge Attribute anpassen, wenn Schnittstelle freigegeben ist
+ GroundingImpedance groundingImpedance = new GroundingImpedance();
+
+ groundingImpedance.setMRID(UUID.randomUUID().toString());
+ groundingImpedance.setName("GroundingImpedance " + groundingImpedance.getMRID());
+ groundingImpedance.setDescription("eine Erdschlussdrossel");
+ // groundingImpedance.setBaseVoltage(new BaseVoltage());
+ //
+ // groundingImpedance.setX(new Reactance());
+ // groundingImpedance.getX().setValue(Double.valueOf(Math.random()));
+ // groundingImpedance.getX().setMultiplier(UnitMultiplier.none);
+ // groundingImpedance.getX().setUnit(UnitSymbol.ohm);
+ //
+ //
+ // groundingImpedance.setR(new Resistance());
+ // groundingImpedance.getR().setValue(Double.valueOf(Math.random()));
+ // groundingImpedance.getR().setMultiplier(UnitMultiplier.none);
+ // groundingImpedance.getR().setUnit(UnitSymbol.ohm);
+
+ return groundingImpedance;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/JunctionGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/JunctionGenerator.java
new file mode 100644
index 00000000..5db1ddfa
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/JunctionGenerator.java
@@ -0,0 +1,31 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Junction;
+
+/**
+ * Generator for {@link Junction}'s.
+ *
+ * @author Olaf Prins
+ */
+public class JunctionGenerator implements ITopologyElementGenerator<Junction> {
+
+ // Methods
+ @Override
+ public Junction generate() {
+
+ Junction junction = new Junction();
+
+ junction.setMRID(UUID.randomUUID().toString());
+ junction.setName("Junction " + junction.getMRID());
+ junction.setDescription("eine Muffe");
+
+ return junction;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/LineGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/LineGenerator.java
new file mode 100644
index 00000000..8fff877b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/LineGenerator.java
@@ -0,0 +1,68 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.ArrayList;
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.ConductingEquipment;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.ACLineSegment;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Line;
+
+/**
+ * Generator for {@link Line}'s.
+ *
+ * @author Olaf Prins
+ */
+public class LineGenerator implements ITopologyElementGenerator<Line> {
+
+ // Constants
+ private static final int DEFAULT_NUMBER_OF_LINE_SEGMENTS_PER_LINE = 3;
+
+ // Attributes
+ private int numberOfLineSegmentsPerLine;
+ private AcLineSegmentGenerator acLineSegmentGenerator = new AcLineSegmentGenerator();
+
+ // Constructors
+ /**
+ * Default Constructor.
+ */
+ public LineGenerator() {
+ this(DEFAULT_NUMBER_OF_LINE_SEGMENTS_PER_LINE);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param numberOfLineSegmentsPerLine
+ * the number of {@link ACLineSegment}'s per {@link Line}
+ */
+ public LineGenerator(int numberOfLineSegmentsPerLine) {
+ this.numberOfLineSegmentsPerLine = numberOfLineSegmentsPerLine;
+ }
+
+ // Methods
+ @Override
+ public Line generate() {
+
+ Line line = new Line();
+
+ line.setMRID(UUID.randomUUID().toString());
+ line.setName("Line " + line.getMRID());
+ line.setDescription("ein Leitung");
+ line.setEquipments(new ArrayList<>());
+
+ for(int i = 0; i < numberOfLineSegmentsPerLine; i++) {
+ ACLineSegment lineSegment = acLineSegmentGenerator.generate();
+ lineSegment.setEquipmentContainer(line);
+ if(!line.getEquipments().isEmpty())
+ TopologyGenerator.connect((ConductingEquipment) line.getEquipments().get(line.getEquipments().size() - 1), lineSegment);
+ line.getEquipments().add(lineSegment);
+ }
+
+ return line;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/LoadBreakSwitchGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/LoadBreakSwitchGenerator.java
new file mode 100644
index 00000000..d63ad01b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/LoadBreakSwitchGenerator.java
@@ -0,0 +1,31 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.LoadBreakSwitch;
+
+/**
+ * Generator for {@link LoadBreakSwitch}'s.
+ *
+ * @author Olaf Prins
+ */
+public class LoadBreakSwitchGenerator implements ITopologyElementGenerator<LoadBreakSwitch> {
+
+ // Methods
+ @Override
+ public LoadBreakSwitch generate() {
+
+ LoadBreakSwitch loadBreakSwitch = new LoadBreakSwitch();
+
+ loadBreakSwitch.setMRID(UUID.randomUUID().toString());
+ loadBreakSwitch.setName("LoadBreakSwitch " + loadBreakSwitch.getMRID());
+ loadBreakSwitch.setDescription("ein Lastgangschalter");
+
+ return loadBreakSwitch;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/LowVoltageSubnetGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/LowVoltageSubnetGenerator.java
new file mode 100644
index 00000000..2bbd1aca
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/LowVoltageSubnetGenerator.java
@@ -0,0 +1,97 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import static org.eclipse.openk.sourcesystem.mockuptopology.logic.generator.TopologyGenerator.connect;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.BaseVoltage;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.ConductingEquipment;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Substation;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EnergyConsumer;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Junction;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Line;
+
+/**
+ * Generator for {@link Substation}'s.
+ *
+ * @author Olaf Prins
+ */
+public class LowVoltageSubnetGenerator implements ITopologyElementGenerator<Substation> {
+
+ // Constants
+ public static final int APPROXIMATE_NUMBER_OF_GENERATED_EQUIPMENT_PER_ENERGY_CONSUMER = 4;
+ public static final int DEFAULT_NUMBER_OF_ENERGY_CONSUMERS = 1000;
+
+ // Attributes
+ private EnergyConsumerGenerator energyConsumerGenerator = new EnergyConsumerGenerator();
+ private JunctionGenerator junctionGenerator = new JunctionGenerator();
+ private LineGenerator lineGenerator = new LineGenerator();
+ private int numberOfEnergyConsumers;
+ private SubstationGenerator substationGenerator;
+
+ // Constructors
+ /**
+ * Constructor.
+ *
+ * @param midVoltage
+ * the mid {@link BaseVoltage voltage}, must not be {@code null}
+ * @param lowVoltage
+ * the low {@link BaseVoltage voltage}, must not be {@code null}
+ */
+ public LowVoltageSubnetGenerator(BaseVoltage midVoltage, BaseVoltage lowVoltage) {
+ this(midVoltage, lowVoltage, DEFAULT_NUMBER_OF_ENERGY_CONSUMERS);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param midVoltage
+ * the mid {@link BaseVoltage voltage}, must not be {@code null}
+ * @param lowVoltage
+ * the low {@link BaseVoltage voltage}, must not be {@code null}
+ * @param numberOfEnergyConsumers
+ * the number of {@link EnergyConsumer}'s
+ */
+ public LowVoltageSubnetGenerator(BaseVoltage midVoltage, BaseVoltage lowVoltage, int numberOfEnergyConsumers) {
+ if(midVoltage == null) {
+ throw new NullPointerException("midVoltage");
+ }
+ if(lowVoltage == null) {
+ throw new NullPointerException("lowVoltage");
+ }
+ this.numberOfEnergyConsumers = numberOfEnergyConsumers;
+ substationGenerator = new SubstationGenerator(midVoltage, lowVoltage);
+ }
+
+ // Methods
+ @Override
+ public Substation generate() {
+
+ Substation substation = substationGenerator.generate();
+
+ Line line = lineGenerator.generate();
+ connect((ConductingEquipment) substation.getEquipments().get(substation.getEquipments().size() - 1), (ConductingEquipment) line.getEquipments().get(0));
+
+ List<ConductingEquipment> equipment = new ArrayList<>();
+ Junction junction = junctionGenerator.generate();
+ equipment.add((ConductingEquipment) line.getEquipments().get(line.getEquipments().size() - 1));
+ equipment.add(junction);
+
+ for(int i = 0; i < numberOfEnergyConsumers; i++) {
+ Line l = lineGenerator.generate();
+ equipment.add((ConductingEquipment) l.getEquipments().get(0));
+ EnergyConsumer energyConsumer = energyConsumerGenerator.generate();
+ connect((ConductingEquipment) l.getEquipments().get(l.getEquipments().size() - 1), energyConsumer);
+ }
+
+ connect(equipment);
+
+ return substation;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/MidVoltageSubnetGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/MidVoltageSubnetGenerator.java
new file mode 100644
index 00000000..e0b1ee3c
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/MidVoltageSubnetGenerator.java
@@ -0,0 +1,109 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import static java.lang.Math.ceil;
+import static java.lang.Math.sqrt;
+import static org.eclipse.openk.sourcesystem.mockuptopology.logic.generator.TopologyGenerator.connect;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.BaseVoltage;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.ConductingEquipment;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Substation;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Junction;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Line;
+
+/**
+ * Generator for {@link Substation}'s.
+ *
+ * @author Olaf Prins
+ */
+public class MidVoltageSubnetGenerator implements ITopologyElementGenerator<Substation> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(MidVoltageSubnetGenerator.class);
+
+ public static final int APPROXIMATE_NUMBER_OF_GENERATED_EQUIPMENT_PER_SUBNET = LowVoltageSubnetGenerator.APPROXIMATE_NUMBER_OF_GENERATED_EQUIPMENT_PER_ENERGY_CONSUMER * LowVoltageSubnetGenerator.DEFAULT_NUMBER_OF_ENERGY_CONSUMERS;
+ public static final int DEFAULT_NUMBER_OF_LOW_VOLTAGE_SUBNETS = 1000;
+
+ // Attributes
+ private JunctionGenerator junctionGenerator = new JunctionGenerator();
+ private LineGenerator lineGenerator = new LineGenerator();
+ private LowVoltageSubnetGenerator lowVoltageSubnetGenerator;
+ private int numberOfLowVoltageSubnets;
+ private SubstationGenerator substationGenerator;
+
+ // Constructors
+ /**
+ * Create a grid of approximately three million topology elements.
+ *
+ * @param highVoltage
+ * the high {@link BaseVoltage voltage}, must not be {@code null}
+ * @param midVoltage
+ * the mid {@link BaseVoltage voltage}, must not be {@code null}
+ * @param lowVoltage
+ * the low {@link BaseVoltage voltage}, must not be {@code null}
+ */
+ public MidVoltageSubnetGenerator(BaseVoltage highVoltage, BaseVoltage midVoltage, BaseVoltage lowVoltage) {
+ this(highVoltage, midVoltage, lowVoltage, DEFAULT_NUMBER_OF_LOW_VOLTAGE_SUBNETS);
+ }
+
+ /**
+ * Create a grid consisting of approximately of the given number of topology elements.
+ *
+ * @param highVoltage
+ * the high {@link BaseVoltage voltage}, must not be {@code null}
+ * @param midVoltage
+ * the mid {@link BaseVoltage voltage}, must not be {@code null}
+ * @param lowVoltage
+ * the low {@link BaseVoltage voltage}, must not be {@code null}
+ * @param approximateNumberOfEquipment
+ * the number of generated topology elements, the number may be slightly different
+ */
+ public MidVoltageSubnetGenerator(BaseVoltage highVoltage, BaseVoltage midVoltage, BaseVoltage lowVoltage, int approximateNumberOfEquipment) {
+ int count = (int) ceil(sqrt(approximateNumberOfEquipment) / sqrt(5));
+ substationGenerator = new SubstationGenerator(highVoltage, midVoltage);
+ lowVoltageSubnetGenerator = new LowVoltageSubnetGenerator(midVoltage, lowVoltage, count);
+ this.numberOfLowVoltageSubnets = count;
+ }
+
+ // Methods
+ @Override
+ public Substation generate() {
+
+ LOGGER.debug("generating...");
+
+ Substation substation = substationGenerator.generate();
+
+ Line line = lineGenerator.generate();
+ connect((ConductingEquipment) substation.getEquipments().get(substation.getEquipments().size() - 1), (ConductingEquipment) line.getEquipments().get(0));
+
+ List<ConductingEquipment> equipment = new ArrayList<>();
+ Junction junction = junctionGenerator.generate();
+ equipment.add((ConductingEquipment) line.getEquipments().get(line.getEquipments().size() - 1));
+ equipment.add(junction);
+
+ int step = (int) ceil(numberOfLowVoltageSubnets / 100f);
+ for(int i = 0; i < numberOfLowVoltageSubnets; i++) {
+ if(i % step == 0)
+ LOGGER.debug(i / step + " %");
+ Line l = lineGenerator.generate();
+ equipment.add((ConductingEquipment) l.getEquipments().get(0));
+ Substation s = lowVoltageSubnetGenerator.generate();
+ connect((ConductingEquipment) l.getEquipments().get(l.getEquipments().size() - 1), (ConductingEquipment) s.getEquipments().get(0));
+ }
+
+ LOGGER.debug("100 %");
+
+ connect(equipment);
+
+ return substation;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/PetersenCoilGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/PetersenCoilGenerator.java
new file mode 100644
index 00000000..b71b9952
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/PetersenCoilGenerator.java
@@ -0,0 +1,31 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PetersenCoil;
+
+/**
+ * Generator for {@link PetersenCoil}'s.
+ *
+ * @author Inge Seidel
+ *
+ */
+public class PetersenCoilGenerator implements ITopologyElementGenerator<PetersenCoil> {
+
+ // Methods
+ @Override
+ public PetersenCoil generate() {
+
+ PetersenCoil petersenCoil = new PetersenCoil();
+
+ // TODO 2017-08-04 Inge Attribute anpassen, wenn Schnittstelle freigegeben ist
+ petersenCoil.setMRID(UUID.randomUUID().toString());
+ petersenCoil.setName("PetersenCoil " + petersenCoil.getMRID());
+ petersenCoil.setDescription("eine Petersenspule");
+ // petersenCoil.setBaseVoltage(new BaseVoltage());
+
+ return petersenCoil;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/PlantGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/PlantGenerator.java
new file mode 100644
index 00000000..38a57047
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/PlantGenerator.java
@@ -0,0 +1,45 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Equipment;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EnergySource;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Plant;
+
+/**
+ * Generator for {@link Plant}'s.
+ *
+ * @author Olaf Prins
+ */
+public class PlantGenerator implements ITopologyElementGenerator<Plant> {
+
+ // Methods
+ @Override
+ public Plant generate() {
+
+ Plant plant = new Plant();
+
+ plant.setMRID(UUID.randomUUID().toString());
+ plant.setName("Plant " + plant.getMRID());
+ plant.setDescription("ein Kraftwerk");
+
+ /* collect all energy sources in a list and add to Plant container */
+ EnergySource energySource1 = new EnergySourceGenerator().generate();
+ EnergySource energySource2 = new EnergySourceGenerator().generate();
+
+ List<Equipment> energySources = new ArrayList<>();
+ energySources.add(energySource1);
+ energySources.add(energySource2);
+
+ plant.setEquipments(energySources);
+
+ return plant;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/PowerTransformerEndGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/PowerTransformerEndGenerator.java
new file mode 100644
index 00000000..529ccda3
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/PowerTransformerEndGenerator.java
@@ -0,0 +1,65 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.BaseVoltage;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PowerTransformerEnd;
+
+/**
+ * Generator for {@link PowerTransformerEnd}'s.
+ *
+ * @author Olaf Prins
+ */
+public class PowerTransformerEndGenerator implements ITopologyElementGenerator<PowerTransformerEnd> {
+
+ // Attributes
+ private BaseVoltage baseVoltage;
+ private boolean primary;
+ private RatioTapChangerGenerator ratioTapChangerGenerator = new RatioTapChangerGenerator();
+
+ // Constructors
+ /**
+ * Creates a PowerTransformerEndGenerator.
+ *
+ * @param baseVoltage
+ * the base voltage of the generated ends, may be <tt>null</tt>
+ * @param primary
+ * an indicator, whether the generated ends are primary or secondary ends
+ * @throws NullPointerException
+ * when baseVoltage is <tt>null</tt>
+ */
+ public PowerTransformerEndGenerator(BaseVoltage baseVoltage, boolean primary) {
+ if(baseVoltage == null)
+ throw new NullPointerException("baseVoltage");
+ this.baseVoltage = baseVoltage;
+ this.primary = primary;
+ }
+
+ // Methods
+ @Override
+ public PowerTransformerEnd generate() {
+
+ PowerTransformerEnd powerTransformerEnd = new PowerTransformerEnd();
+
+ powerTransformerEnd.setMRID(UUID.randomUUID().toString());
+ powerTransformerEnd.setName("PowerTransformerEnd " + powerTransformerEnd.getMRID());
+ powerTransformerEnd.setDescription("ein Transformatoranschluss");
+ powerTransformerEnd.setBaseVoltage(baseVoltage);
+
+ if(baseVoltage != null)
+ powerTransformerEnd.setRatedU(baseVoltage.getNominalVoltage());
+
+ if(primary) {
+ powerTransformerEnd.setRatioTapChanger(ratioTapChangerGenerator.generate());
+ powerTransformerEnd.getRatioTapChanger().setTransformerEnd(powerTransformerEnd);
+ }
+
+ return powerTransformerEnd;
+ }
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/PowerTransformerGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/PowerTransformerGenerator.java
new file mode 100644
index 00000000..a0e1da73
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/PowerTransformerGenerator.java
@@ -0,0 +1,58 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import static java.util.Arrays.asList;
+
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.BaseVoltage;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PowerTransformer;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PowerTransformerEnd;
+
+/**
+ * Generator for {@link PowerTransformer}'s.
+ *
+ * @author Olaf Prins
+ */
+public class PowerTransformerGenerator implements ITopologyElementGenerator<PowerTransformer> {
+
+ // Attributes
+ private PowerTransformerEndGenerator primaryPowerTransformerEndGenerator;
+ private PowerTransformerEndGenerator secondaryPowerTransformerEndGenerator;
+
+ // Constructors
+ /**
+ * Constructor.
+ *
+ * @param primaryBaseVoltage
+ * the primary {@link BaseVoltage base voltage}, must not be {@code null}
+ * @param secondaryBaseVoltage
+ * the secondary {@link BaseVoltage base voltage}, must not be {@code null}
+ */
+ public PowerTransformerGenerator(BaseVoltage primaryBaseVoltage, BaseVoltage secondaryBaseVoltage) {
+ primaryPowerTransformerEndGenerator = new PowerTransformerEndGenerator(primaryBaseVoltage, true);
+ secondaryPowerTransformerEndGenerator = new PowerTransformerEndGenerator(secondaryBaseVoltage, false);
+ }
+
+ // Methods
+ @Override
+ public PowerTransformer generate() {
+
+ PowerTransformer powerTransformer = new PowerTransformer();
+
+ powerTransformer.setMRID(UUID.randomUUID().toString());
+ powerTransformer.setName("PowerTransformer " + powerTransformer.getMRID());
+ powerTransformer.setDescription("ein Transformator");
+
+ PowerTransformerEnd primaryPowerTransformerEnd = primaryPowerTransformerEndGenerator.generate();
+ PowerTransformerEnd secondaryVoltagePowerTransformerEnd = secondaryPowerTransformerEndGenerator.generate();
+ powerTransformer.setPowerTransformerEnd(asList(primaryPowerTransformerEnd, secondaryVoltagePowerTransformerEnd));
+
+ return powerTransformer;
+ }
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/RatioTapChangerGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/RatioTapChangerGenerator.java
new file mode 100644
index 00000000..a7684cea
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/RatioTapChangerGenerator.java
@@ -0,0 +1,39 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.PerCent;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.RatioTapChanger;
+
+/**
+ * Generator for {@link RatioTapChanger}'s.
+ *
+ * @author Olaf Prins
+ */
+public class RatioTapChangerGenerator implements ITopologyElementGenerator<RatioTapChanger> {
+
+ // Methods
+ @Override
+ public RatioTapChanger generate() {
+
+ RatioTapChanger ratioTapChanger = new RatioTapChanger();
+
+ ratioTapChanger.setMRID(UUID.randomUUID().toString());
+ ratioTapChanger.setName("RatioTapChanger " + ratioTapChanger.getMRID());
+ ratioTapChanger.setDescription("ein Stufenschalter");
+ ratioTapChanger.setHighStep(Integer.valueOf(3));
+ ratioTapChanger.setNormalStep(Integer.valueOf(2));
+ ratioTapChanger.setLowStep(Integer.valueOf(1));
+ ratioTapChanger.setNeutralStep(Integer.valueOf(1));
+ ratioTapChanger.setStepVoltageIncrement(new PerCent());
+ ratioTapChanger.getStepVoltageIncrement().setValue(Double.valueOf(-2.5));
+
+ return ratioTapChanger;
+ }
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/SimpleMockUpModel2Generator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/SimpleMockUpModel2Generator.java
new file mode 100644
index 00000000..23063bb5
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/SimpleMockUpModel2Generator.java
@@ -0,0 +1,123 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.model.TopologyElement;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Equipment;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.ACLineSegment;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Breaker;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.BusbarSection;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Disconnector;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EnergyConsumer;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EnergySource;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Junction;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.LoadBreakSwitch;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PowerTransformer;
+
+/**
+ * Build a simple (non realistic) model of an electric grid.
+ * Modifications to SimpleMockUpModel:
+ * - no line segment between node 7 and 11
+ * - no junctions on node 7
+ *
+ * @author Frank Jäger
+ *
+ */
+public class SimpleMockUpModel2Generator extends AbstractMockUpGenerator {
+
+ // Constants
+ private static final int FIRST_NODE = 1;
+ private static final int LAST_NODE = 11;
+ private static final String MODEL = "1b";
+
+ // Constructors
+ /**
+ * A simple model for an electric grid to check consistency of the internal <i>TDM<i> model
+ */
+ public SimpleMockUpModel2Generator() {
+
+ /* Generate all connectivity nodes in the net without connecting information */
+ generateAllConnectivityNodes(MODEL, FIRST_NODE, LAST_NODE);
+
+ /* Map that holds all topology elements */
+ topologyElements = new HashMap<>();
+
+ /* add topology elements to the map */
+ /* conducting equipment */
+ /* node 1 */
+ addTopologyElement(EnergySource.class, MODEL, TopologyElement.ENERGY_SOURCE.getNotation() + "-1", getMRID(MODEL, TopologyElement.ENERGY_SOURCE.getUuidString(), "1"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "1"), null);
+
+ /* node 1 - 2 */
+ addTopologyElement(ACLineSegment.class, MODEL, TopologyElement.AC_LINE_SEGMENT.getNotation() + "-1", getMRID(MODEL, TopologyElement.AC_LINE_SEGMENT.getUuidString(), "1"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "1"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "2"));
+
+ /* node 2 - 3 */
+ addTopologyElement(Breaker.class, MODEL, TopologyElement.BREAKER.getNotation() + "-1", getMRID(MODEL, TopologyElement.BREAKER.getUuidString(), "1"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "2"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "3"));
+
+ /* node 3 - 4 */
+ addTopologyElement(Disconnector.class, MODEL, TopologyElement.DISCONNECTOR.getNotation() + "-1", getMRID(MODEL, TopologyElement.DISCONNECTOR.getUuidString(), "1"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "3"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "4"));
+
+ /* node 3 */
+ addTopologyElement(BusbarSection.class, MODEL, TopologyElement.BUSBAR_SECTION.getNotation() + "-1", getMRID(MODEL, TopologyElement.BUSBAR_SECTION.getUuidString(), "1"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "3"), null);
+
+ /* node 4 - 5 */
+ addTopologyElement(PowerTransformer.class, MODEL, TopologyElement.POWER_TRANSFORMER.getNotation() + "-1", getMRID(MODEL, TopologyElement.POWER_TRANSFORMER.getUuidString(), "1"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "4"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "5"));
+
+ /* node 5 - 6 */
+ addTopologyElement(LoadBreakSwitch.class, MODEL, TopologyElement.LOAD_BREAK_SWITCH.getNotation() + "-1", getMRID(MODEL, TopologyElement.LOAD_BREAK_SWITCH.getUuidString(), "1"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "5"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "6"));
+
+ /* node 6 - 7 */
+ addTopologyElement(ACLineSegment.class, MODEL, TopologyElement.AC_LINE_SEGMENT.getNotation() + "-2", getMRID(MODEL, TopologyElement.AC_LINE_SEGMENT.getUuidString(), "2"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "6"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "7"));
+
+ /* node 7 - 8 */
+ addTopologyElement(ACLineSegment.class, MODEL, TopologyElement.AC_LINE_SEGMENT.getNotation() + "-3", getMRID(MODEL, TopologyElement.AC_LINE_SEGMENT.getUuidString(), "3"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "7"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "8"));
+
+ /* node 7 */
+ //addTopologyElement(Junction.class, MODEL, TopologyElement.JUNCTION.notation() + "-1", getMRID(MODEL, TopologyElement.JUNCTION.uuidString(), "1"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.uuidString(), "7"), null);
+
+ /* node 8 - 9 */
+ addTopologyElement(Disconnector.class, MODEL, TopologyElement.DISCONNECTOR.getNotation() + "-2", getMRID(MODEL, TopologyElement.DISCONNECTOR.getUuidString(), "2"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "8"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "9"));
+
+ /* node 9 - 10 */
+ addTopologyElement(ACLineSegment.class, MODEL, TopologyElement.AC_LINE_SEGMENT.getNotation() + "-4", getMRID(MODEL, TopologyElement.AC_LINE_SEGMENT.getUuidString(), "4"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "9"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "10"));
+
+ /* node 10 - 11 */
+ addTopologyElement(ACLineSegment.class, MODEL, TopologyElement.AC_LINE_SEGMENT.getNotation() + "-5", getMRID(MODEL, TopologyElement.AC_LINE_SEGMENT.getUuidString(), "5"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "10"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "11"));
+
+ /* node 7 - 11 */
+ //addTopologyElement(ACLineSegment.class, MODEL, TopologyElement.AC_LINE_SEGMENT.notation() + "-6", getMRID(MODEL, TopologyElement.AC_LINE_SEGMENT.uuidString(), "6"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.uuidString(), "7"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.uuidString(), "11"));
+
+ /* node 11 */
+ addTopologyElement(EnergyConsumer.class, MODEL, TopologyElement.ENERGY_CONSUMER.getNotation() + "-1", getMRID(MODEL, TopologyElement.ENERGY_CONSUMER.getUuidString(), "1"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "11"), null);
+ addTopologyElement(Junction.class, MODEL, TopologyElement.JUNCTION.getNotation() + "-2", getMRID(MODEL, TopologyElement.JUNCTION.getUuidString(), "2"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "11"), null);
+ //addTopologyElement(BusbarSection.class, MODEL, TopologyElement.BUSBAR_SECTION.notation() + "-2", getMRID(MODEL, TopologyElement.BUSBAR_SECTION.uuidString(), "2"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.uuidString(), "11"), null);
+
+ /* containers */
+ /* get all elements for the sub station */
+ List<Equipment> substationEquipment = new ArrayList<>();
+ substationEquipment.add((Equipment) topologyElements.get(getMRID(MODEL, TopologyElement.POWER_TRANSFORMER.getUuidString(), "1")));
+ substationEquipment.add((Equipment) topologyElements.get(getMRID(MODEL, TopologyElement.BREAKER.getUuidString(), "1")));
+ substationEquipment.add((Equipment) topologyElements.get(getMRID(MODEL, TopologyElement.DISCONNECTOR.getUuidString(), "1")));
+ substationEquipment.add((Equipment) topologyElements.get(getMRID(MODEL, TopologyElement.LOAD_BREAK_SWITCH.getUuidString(), "1")));
+ substationEquipment.add((Equipment) topologyElements.get(getMRID(MODEL, TopologyElement.BUSBAR_SECTION.getUuidString(), "1")));
+
+ /* add the sub station */
+ topologyElements.put(getMRID(MODEL, TopologyElement.SUBSTATION.getUuidString(), "1"), generateSubstation(TopologyElement.SUBSTATION.getNotation() + "-1", getMRID(MODEL, TopologyElement.SUBSTATION.getUuidString(), "1"), substationEquipment));
+
+ /* get all elements of the line */
+ List<Equipment> lineEqupment = new ArrayList<>();
+ lineEqupment.add((Equipment) topologyElements.get(getMRID(MODEL, TopologyElement.AC_LINE_SEGMENT.getUuidString(), "4")));
+ lineEqupment.add((Equipment) topologyElements.get(getMRID(MODEL, TopologyElement.AC_LINE_SEGMENT.getUuidString(), "5")));
+
+ /* add the line */
+ topologyElements.put(getMRID(MODEL, TopologyElement.LINE.getUuidString(), "1"), generateLine(TopologyElement.LINE.getNotation() + "-1", getMRID(MODEL, TopologyElement.LINE.getUuidString(), "1"), lineEqupment));
+
+ /* individual setttings */
+ /* open disconnector 2 */
+ Disconnector disconnector2 = (Disconnector) topologyElements.get(getMRID(MODEL, TopologyElement.DISCONNECTOR.getUuidString(), "2"));
+ disconnector2.setNormalOpen(Boolean.valueOf(true));
+ disconnector2.setOpen(Boolean.valueOf(true));
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/SimpleMockUpModelGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/SimpleMockUpModelGenerator.java
new file mode 100644
index 00000000..659a4643
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/SimpleMockUpModelGenerator.java
@@ -0,0 +1,124 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.model.TopologyElement;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Equipment;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.ACLineSegment;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Breaker;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.BusbarSection;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Disconnector;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EnergyConsumer;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EnergySource;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Ground;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Junction;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.LoadBreakSwitch;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PowerTransformer;
+
+/**
+ * Build a simple (non realistic) model of an electric grid
+ *
+ * @author Frank Jäger
+ *
+ */
+public class SimpleMockUpModelGenerator extends AbstractMockUpGenerator {
+
+ // Constants
+ private static final int FIRST_NODE = 1;
+ private static final int LAST_NODE = 12;
+ private static final String MODEL = "1a";
+
+ // Constructors
+ /**
+ * A simple model for an electric grid to check consistency of the internal <i>TDM<i> model
+ */
+ public SimpleMockUpModelGenerator() {
+
+ /* Generate all connectivity nodes in the net without connecting information */
+ generateAllConnectivityNodes(MODEL, FIRST_NODE, LAST_NODE);
+
+ /* Map that holds all topology elements */
+ topologyElements = new HashMap<>();
+
+ /* add topology elements to the map */
+ /* conducting equipment */
+ /* node 1 */
+ addTopologyElement(EnergySource.class, MODEL, TopologyElement.ENERGY_SOURCE.getNotation() + "-1", getMRID(MODEL, TopologyElement.ENERGY_SOURCE.getUuidString(), "1"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "1"), null);
+
+ /* node 1 - 2 */
+ addTopologyElement(ACLineSegment.class, MODEL, TopologyElement.AC_LINE_SEGMENT.getNotation() + "-1", getMRID(MODEL, TopologyElement.AC_LINE_SEGMENT.getUuidString(), "1"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "1"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "2"));
+
+ /* node 2 - 3 */
+ addTopologyElement(Breaker.class, MODEL, TopologyElement.BREAKER.getNotation() + "-1", getMRID(MODEL, TopologyElement.BREAKER.getUuidString(), "1"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "2"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "3"));
+
+ /* node 3 - 4 */
+ addTopologyElement(Disconnector.class, MODEL, TopologyElement.DISCONNECTOR.getNotation() + "-1", getMRID(MODEL, TopologyElement.DISCONNECTOR.getUuidString(), "1"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "3"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "4"));
+
+ /* node 3 */
+ addTopologyElement(BusbarSection.class, MODEL, TopologyElement.BUSBAR_SECTION.getNotation() + "-1", getMRID(MODEL, TopologyElement.BUSBAR_SECTION.getUuidString(), "1"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "3"), null);
+
+ /* node 4 - 5 */
+ addTopologyElement(PowerTransformer.class, MODEL, TopologyElement.POWER_TRANSFORMER.getNotation() + "-1", getMRID(MODEL, TopologyElement.POWER_TRANSFORMER.getUuidString(), "1"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "4"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "5"));
+
+ /* node 5 - 6 */
+ addTopologyElement(LoadBreakSwitch.class, MODEL, TopologyElement.LOAD_BREAK_SWITCH.getNotation() + "-1", getMRID(MODEL, TopologyElement.LOAD_BREAK_SWITCH.getUuidString(), "1"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "5"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "6"));
+
+ /* node 6 - 7 */
+ addTopologyElement(ACLineSegment.class, MODEL, TopologyElement.AC_LINE_SEGMENT.getNotation() + "-2", getMRID(MODEL, TopologyElement.AC_LINE_SEGMENT.getUuidString(), "2"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "6"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "7"));
+
+ /* node 7 - 8 */
+ addTopologyElement(ACLineSegment.class, MODEL, TopologyElement.AC_LINE_SEGMENT.getNotation() + "-3", getMRID(MODEL, TopologyElement.AC_LINE_SEGMENT.getUuidString(), "3"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "7"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "8"));
+
+ /* node 7 */
+ addTopologyElement(Junction.class, MODEL, TopologyElement.JUNCTION.getNotation() + "-1", getMRID(MODEL, TopologyElement.JUNCTION.getUuidString(), "1"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "7"), null);
+
+ /* node 8 - 9 */
+ addTopologyElement(Disconnector.class, MODEL, TopologyElement.DISCONNECTOR.getNotation() + "-2", getMRID(MODEL, TopologyElement.DISCONNECTOR.getUuidString(), "2"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "8"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "9"));
+
+ /* node 9 - 10 */
+ addTopologyElement(ACLineSegment.class, MODEL, TopologyElement.AC_LINE_SEGMENT.getNotation() + "-4", getMRID(MODEL, TopologyElement.AC_LINE_SEGMENT.getUuidString(), "4"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "9"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "10"));
+
+ /* node 10 - 11 */
+ addTopologyElement(ACLineSegment.class, MODEL, TopologyElement.AC_LINE_SEGMENT.getNotation() + "-5", getMRID(MODEL, TopologyElement.AC_LINE_SEGMENT.getUuidString(), "5"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "10"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "11"));
+
+ /* node 7 - 11 */
+ addTopologyElement(ACLineSegment.class, MODEL, TopologyElement.AC_LINE_SEGMENT.getNotation() + "-6", getMRID(MODEL, TopologyElement.AC_LINE_SEGMENT.getUuidString(), "6"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "7"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "11"));
+
+ /* node 11 */
+ addTopologyElement(EnergyConsumer.class, MODEL, TopologyElement.ENERGY_CONSUMER.getNotation() + "-1", getMRID(MODEL, TopologyElement.ENERGY_CONSUMER.getUuidString(), "1"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "11"), null);
+ addTopologyElement(Junction.class, MODEL, TopologyElement.JUNCTION.getNotation() + "-2", getMRID(MODEL, TopologyElement.JUNCTION.getUuidString(), "2"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "11"), null);
+
+ /* node 12 */
+ // TODO 2107-08-03 Inge -> Frank Informationen für richtige Verknüpfung
+ addTopologyElement(Ground.class, MODEL, TopologyElement.GROUND.getNotation() + "-1", getMRID(MODEL, TopologyElement.GROUND.getUuidString(), "2"), getMRID(MODEL, TopologyElement.CONNECTIVITY_NODE.getUuidString(), "12"), null);
+
+ /* containers */
+ /* get all elements for the sub station */
+ List<Equipment> substationEquipment = new ArrayList<>();
+ substationEquipment.add((Equipment) topologyElements.get(getMRID(MODEL, TopologyElement.POWER_TRANSFORMER.getUuidString(), "1")));
+ substationEquipment.add((Equipment) topologyElements.get(getMRID(MODEL, TopologyElement.BREAKER.getUuidString(), "1")));
+ substationEquipment.add((Equipment) topologyElements.get(getMRID(MODEL, TopologyElement.DISCONNECTOR.getUuidString(), "1")));
+ substationEquipment.add((Equipment) topologyElements.get(getMRID(MODEL, TopologyElement.LOAD_BREAK_SWITCH.getUuidString(), "1")));
+ substationEquipment.add((Equipment) topologyElements.get(getMRID(MODEL, TopologyElement.BUSBAR_SECTION.getUuidString(), "1")));
+
+ /* add the sub station */
+ topologyElements.put(getMRID(TopologyElement.SUBSTATION.getUuidString(), "1"), generateSubstation(TopologyElement.SUBSTATION.getNotation() + "-1", getMRID(MODEL, TopologyElement.SUBSTATION.getUuidString(), "1"), substationEquipment));
+
+ /* get all elements of the line */
+ List<Equipment> lineEqupment = new ArrayList<>();
+ lineEqupment.add((Equipment) topologyElements.get(getMRID(MODEL, TopologyElement.AC_LINE_SEGMENT.getUuidString(), "4")));
+ lineEqupment.add((Equipment) topologyElements.get(getMRID(MODEL, TopologyElement.AC_LINE_SEGMENT.getUuidString(), "5")));
+
+ /* add the line */
+ topologyElements.put(getMRID(MODEL, TopologyElement.LINE.getUuidString(), "1"), generateLine(TopologyElement.LINE.getNotation() + "-1", getMRID(MODEL, TopologyElement.LINE.getUuidString(), "1"), lineEqupment));
+
+ /* individual setttings */
+ /* open disconnector 2 */
+ Disconnector disconnector2 = (Disconnector) topologyElements.get(getMRID(MODEL, TopologyElement.DISCONNECTOR.getUuidString(), "2"));
+ disconnector2.setNormalOpen(Boolean.valueOf(true));
+ disconnector2.setOpen(Boolean.valueOf(true));
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/SubGeographicalRegionGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/SubGeographicalRegionGenerator.java
new file mode 100644
index 00000000..9b2cd987
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/SubGeographicalRegionGenerator.java
@@ -0,0 +1,80 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.SubGeographicalRegion;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Substation;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Line;
+
+/**
+ * Generator for {@link SubGeographicalRegion}'s.
+ *
+ * @author Frank Jäger
+ *
+ */
+public class SubGeographicalRegionGenerator implements ITopologyElementGenerator<SubGeographicalRegion> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(SubGeographicalRegionGenerator.class);
+
+ private final static Double DEFAULT_HIGH_VOLTAGE = new Double(110000.0);
+ private final static Double DEFAULT_LOW_VOLTAGE = new Double(400.0);
+ private final static Integer NUMBER_OF_LINE_SEGMENTS = new Integer(5);
+
+ // Constructors
+ public SubGeographicalRegionGenerator() {
+ this(DEFAULT_HIGH_VOLTAGE, DEFAULT_LOW_VOLTAGE, NUMBER_OF_LINE_SEGMENTS);
+ }
+
+ public SubGeographicalRegionGenerator(Double highVoltage, Double lowVoltage) {
+ this(highVoltage, lowVoltage, NUMBER_OF_LINE_SEGMENTS);
+ }
+
+ public SubGeographicalRegionGenerator(Double highVoltage, Double lowVoltage, Integer numberOfLineSegments) {
+
+ if(highVoltage == null)
+ throw new NullPointerException("highVoltage");
+ if(lowVoltage == null)
+ throw new NullPointerException("lowVoltage");
+ if(numberOfLineSegments == null)
+ throw new NullPointerException("numberOfLineSegments");
+ }
+
+ // Methods
+ @Override
+ public SubGeographicalRegion generate() {
+
+ LOGGER.debug("generating...");
+
+ SubGeographicalRegion subGeographicalRegion = new SubGeographicalRegion();
+
+ subGeographicalRegion.setMRID(UUID.randomUUID().toString());
+ subGeographicalRegion.setName("SubGeographicalRegion " + subGeographicalRegion.getMRID());
+ subGeographicalRegion.setDescription("eine untergeordnete geographische Region");
+
+ /* generate substations */
+ Substation substation = new SubstationGenerator(new BaseVoltageGenerator(DEFAULT_HIGH_VOLTAGE.doubleValue()).generate(), new BaseVoltageGenerator(DEFAULT_LOW_VOLTAGE.doubleValue()).generate()).generate();
+
+ List<Substation> substations = new ArrayList<>();
+ substations.add(substation);
+
+ subGeographicalRegion.setSubstations(substations);
+
+ /* generate lines */
+ Line line1 = new LineGenerator().generate();
+ Line line2 = new LineGenerator(NUMBER_OF_LINE_SEGMENTS.intValue()).generate();
+ List<Line> lines = new ArrayList<>();
+ lines.add(line1);
+ lines.add(line2);
+
+ subGeographicalRegion.setLines(lines);
+
+ return subGeographicalRegion;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/SubstationGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/SubstationGenerator.java
new file mode 100644
index 00000000..982f7be6
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/SubstationGenerator.java
@@ -0,0 +1,76 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import static java.util.Arrays.asList;
+
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.BaseVoltage;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Substation;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Breaker;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.BusbarSection;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Disconnector;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.LoadBreakSwitch;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PowerTransformer;
+
+/**
+ * Generator for {@link Substation}'s.
+ *
+ * @author Olaf Prins
+ */
+public class SubstationGenerator implements ITopologyElementGenerator<Substation> {
+
+ // Attributes
+ private BreakerGenerator breakerGenerator = new BreakerGenerator();
+ private BusbarSectionGenerator busbarSectionGenerator = new BusbarSectionGenerator();
+ private DisconnectorGenerator disconnectorGenerator = new DisconnectorGenerator();
+ private LoadBreakSwitchGenerator loadBreakSwitchGenerator = new LoadBreakSwitchGenerator();
+ private PowerTransformerGenerator powerTransformerGenerator;
+
+ // Constructors
+ /**
+ * Constructor.
+ *
+ * @param baseVoltageHigh
+ * the high {@link BaseVoltage voltage}, must not be {@code null}
+ * @param baseVoltageLow
+ * the low {@link BaseVoltage voltage}, must not be {@code null}
+ */
+ public SubstationGenerator(BaseVoltage baseVoltageHigh, BaseVoltage baseVoltageLow) {
+ powerTransformerGenerator = new PowerTransformerGenerator(baseVoltageHigh, baseVoltageLow);
+ }
+
+ // Methods
+ @Override
+ public Substation generate() {
+
+ Substation substation = new Substation();
+
+ substation.setMRID(UUID.randomUUID().toString());
+ substation.setName("Substation " + substation.getMRID());
+ substation.setDescription("ein Umspannwerk");
+
+ BusbarSection lowVoltageBusbarSection = busbarSectionGenerator.generate();
+ Breaker breaker = breakerGenerator.generate();
+ PowerTransformer powerTransformer = powerTransformerGenerator.generate();
+ BusbarSection highVoltageBusbarSection = busbarSectionGenerator.generate();
+ Disconnector disconnector = disconnectorGenerator.generate();
+ LoadBreakSwitch loadBreakSwitch = loadBreakSwitchGenerator.generate();
+
+ substation.setEquipments(asList(lowVoltageBusbarSection, breaker, powerTransformer, highVoltageBusbarSection, disconnector, loadBreakSwitch));
+
+ lowVoltageBusbarSection.setEquipmentContainer(substation);
+ breaker.setEquipmentContainer(substation);
+ powerTransformer.setEquipmentContainer(substation);
+ highVoltageBusbarSection.setEquipmentContainer(substation);
+ disconnector.setEquipmentContainer(substation);
+ loadBreakSwitch.setEquipmentContainer(substation);
+
+ return substation;
+ }
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/TopologyGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/TopologyGenerator.java
new file mode 100644
index 00000000..b683c229
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/TopologyGenerator.java
@@ -0,0 +1,161 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import static java.util.Arrays.asList;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyGenerator;
+
+import com.btc.cab.common.dataexchange.cim.ICimIdentifiedObject;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.ConductingEquipment;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.ConnectivityNode;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Substation;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Terminal;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EarthFaultCompensator;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EnergySource;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Ground;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.GroundingImpedance;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Junction;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Line;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PetersenCoil;
+
+/**
+ * Mockup topology generator.
+ *
+ * @author Olaf Prins
+ * @author Arne Limburg
+ */
+public class TopologyGenerator implements ITopologyGenerator<ICimIdentifiedObject> {
+
+ // Constants
+ private static final int DEFAULT_APPROXIMATE_NUMBER_OF_EQUIPMENT = 3000000;
+ private static final int DEFAULT_NUMBER_OF_ENERGY_SOURCES = 1000;
+
+ // Attributes
+ private BaseVoltageGenerator highVoltageGenerator = new BaseVoltageGenerator(110000);
+ private EarthFaultCompensatorGenerator earthFaultCompensatorGenerator = new EarthFaultCompensatorGenerator();
+ private EnergySourceGenerator energySourceGenerator = new EnergySourceGenerator();
+ private GroundGenerator groundGenerator = new GroundGenerator();
+ private GroundingImpedanceGenerator groundingImpedanceGenerator = new GroundingImpedanceGenerator();
+ private JunctionGenerator junctionGenerator = new JunctionGenerator();
+ private LineGenerator lineGenerator = new LineGenerator();
+ private BaseVoltageGenerator lowVoltageGenerator = new BaseVoltageGenerator(400);
+ private MidVoltageSubnetGenerator midVoltageSubnetGenerator;
+ private BaseVoltageGenerator midVoltageGenerator = new BaseVoltageGenerator(30000);
+ private int numberOfEnergySources;
+ private PetersenCoilGenerator petersenCoilGenerator = new PetersenCoilGenerator();
+
+ // Constructors
+ /**
+ * This TopologyGenerator is capable of creating a grid of approximately
+ * 3,000,000 topology elements and 1,000 {@link EnergySource}'s.
+ */
+ public TopologyGenerator() {
+ this(DEFAULT_APPROXIMATE_NUMBER_OF_EQUIPMENT, DEFAULT_NUMBER_OF_ENERGY_SOURCES);
+ }
+
+ /**
+ * This TopologyGenerator is capable of creating a grid of topology elements.
+ *
+ * <p>
+ * The extent of the grid is determined by the given parameters.
+ * </p>
+ *
+ * @param approximateNumberOfEquipment
+ * the number of topology elements (the real number may be slightly different)
+ * @param numberOfEnergySources
+ * the number of {@link EnergySource}'s
+ */
+ public TopologyGenerator(int approximateNumberOfEquipment, int numberOfEnergySources) {
+ midVoltageSubnetGenerator = new MidVoltageSubnetGenerator(//
+ highVoltageGenerator.generate(), //
+ midVoltageGenerator.generate(), //
+ lowVoltageGenerator.generate(), //
+ approximateNumberOfEquipment);
+ this.numberOfEnergySources = numberOfEnergySources;
+ }
+
+ // Methods
+ @Override
+ public ICimIdentifiedObject generate() {
+
+ List<ConductingEquipment> equipment = new ArrayList<>();
+ for(int i = 0; i < numberOfEnergySources; i++) {
+ EnergySource energySource = energySourceGenerator.generate();
+ Line l = lineGenerator.generate();
+ connect(energySource, (ConductingEquipment) l.getEquipments().get(0));
+ equipment.add((ConductingEquipment) l.getEquipments().get(l.getEquipments().size() - 1));
+ }
+
+ /* new Elements for 1.3 */
+ {
+ Ground ground = groundGenerator.generate();
+ equipment.add(ground);
+
+ GroundingImpedance groundingImpedance = groundingImpedanceGenerator.generate();
+ equipment.add(groundingImpedance);
+
+ EarthFaultCompensator earthFaultCompensator = earthFaultCompensatorGenerator.generate();
+ equipment.add(earthFaultCompensator);
+
+ PetersenCoil petersenCoil = petersenCoilGenerator.generate();
+ equipment.add(petersenCoil);
+ }
+
+ Junction junction = junctionGenerator.generate();
+ equipment.add(junction);
+ Line line = lineGenerator.generate();
+ equipment.add((ConductingEquipment) line.getEquipments().get(0));
+ connect(equipment);
+
+ Substation substation = midVoltageSubnetGenerator.generate();
+ connect((ConductingEquipment) substation.getEquipments().get(0), (ConductingEquipment) line.getEquipments().get(line.getEquipments().size() - 1));
+
+ return substation;
+ }
+
+ /**
+ * Connects the given topology elements .
+ *
+ * @param conductingEquipment
+ * a list of {@link ConductingEquipment}'s
+ */
+ public static void connect(ConductingEquipment... conductingEquipment) {
+
+ connect(asList(conductingEquipment));
+ }
+
+ /**
+ * Connects the given topology elements .
+ *
+ * @param conductingEquipment
+ * a list of {@link ConductingEquipment}'s
+ */
+ public static void connect(Collection<? extends ConductingEquipment> conductingEquipment) {
+
+ ConnectivityNode connectivityNode = new ConnectivityNode();
+ connectivityNode.setMRID(UUID.randomUUID().toString());
+ connectivityNode.setTerminals(new ArrayList<>());
+
+ for(ConductingEquipment equipment : conductingEquipment) {
+
+ Terminal terminal = new Terminal();
+ terminal.setMRID(UUID.randomUUID().toString());
+ terminal.setConductingEquipment(equipment);
+ terminal.setConnectivityNode(connectivityNode);
+
+ connectivityNode.getTerminals().add(terminal);
+
+ if(equipment.getTerminals() == null)
+ equipment.setTerminals(new ArrayList<>());
+
+ equipment.getTerminals().add(terminal);
+ }
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/VoltageLevelGenerator.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/VoltageLevelGenerator.java
new file mode 100644
index 00000000..9da6aa8d
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/generator/VoltageLevelGenerator.java
@@ -0,0 +1,71 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.generator;
+
+import static java.util.Arrays.asList;
+
+import java.util.UUID;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.ITopologyElementGenerator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.BaseVoltage;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Bay;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Substation;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.VoltageLevel;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Breaker;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.BusbarSection;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Disconnector;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.LoadBreakSwitch;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PowerTransformer;
+
+/**
+ * Generator for {@link VoltageLevel}'s.
+ *
+ * @author Christian Brunzendorf
+ */
+public class VoltageLevelGenerator implements ITopologyElementGenerator<VoltageLevel> {
+
+ // Attributes
+ private BaseVoltage baseVoltage;
+ private BayGenerator bayGenerator = new BayGenerator();
+
+ // Constructors
+ /**
+ * Constructor.
+ *
+ * @param baseVoltage
+ * the {@link BaseVoltage voltage}, must not be {@code null}
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>baseVoltage</code> is <code>null</code></li>
+ * </ul>
+ */
+ public VoltageLevelGenerator(BaseVoltage baseVoltage) throws IllegalArgumentException {
+ if(baseVoltage == null)
+ throw new IllegalArgumentException("baseVoltage", new NullPointerException());
+ else
+ this.baseVoltage = baseVoltage;
+ }
+
+ // Methods
+ @Override
+ public VoltageLevel generate() {
+
+ VoltageLevel voltageLevel = new VoltageLevel();
+
+ voltageLevel.setMRID(UUID.randomUUID().toString());
+ voltageLevel.setName("Voltage-level " + voltageLevel.getMRID());
+ voltageLevel.setDescription("eine Spannungsebene");
+
+ Bay bay = bayGenerator.generate();
+
+ voltageLevel.setEquipments(bay.getEquipments());
+ voltageLevel.setBaseVoltage(this.baseVoltage);
+ bay.setVoltageLevel(voltageLevel);
+
+ return voltageLevel;
+ }
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/AbstractMockUpTopologyView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/AbstractMockUpTopologyView.java
new file mode 100644
index 00000000..0ab0e077
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/AbstractMockUpTopologyView.java
@@ -0,0 +1,87 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.dataexchange.cim.ICimEntity;
+import com.btc.cab.common.dataexchange.cim.ICimIdentifiedObject;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cab.service.dataexchange.processor.AbstractView;
+import com.btc.cab.service.dataexchange.processor.ViewConfiguration;
+import com.btc.cab.service.repository.api.IRepository;
+
+/**
+ * The base of all <i>Mock-Up</i> topology views.
+ *
+ * @author Felix Korb
+ *
+ * @param <E>
+ * the <i>CIM</i> entity type
+ * @param <Q>
+ * the query parameters object type
+ */
+public abstract class AbstractMockUpTopologyView<E extends ICimEntity, Q> extends AbstractView<ViewConfiguration, List<E>, Q> {
+
+ // Attributes
+ private Class<E> entityType;
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @param scope
+ * the scope - specifies the application area
+ * @param version
+ * the {@link IVersion}
+ * @param entityType
+ * the <i>CIM</i> entity type
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * <li><code>scope</code> is <code>null</code> or <code>""</code></li>
+ * <li><code>version</code> is <code>null</code></li>
+ * <li><code>entityType</code> is <code>null</code></li>
+ * </ul>
+ */
+ protected AbstractMockUpTopologyView(IServiceContext context, String scope, IVersion version, Class<E> entityType) {
+
+ super(context, scope, version);
+
+ if(entityType == null)
+ throw new IllegalArgumentException("entityType", new NullPointerException());
+ else
+ this.entityType = entityType;
+ }
+
+ // Methods
+ @Override
+ @SuppressWarnings("unchecked")
+ public final List<E> executeQuery(Q parameters) {
+
+ List<E> result = null;
+ IRepository<String, ICimIdentifiedObject> repository = getContext().getServiceController().<String, ICimIdentifiedObject> getRepository(MockUpTopologyDefaults.REPOSITORY_KEY_TOPOLOGY);
+
+ /* filter entity type */
+ if(repository != null)
+ for(ICimIdentifiedObject entity : repository.findAll())
+ if(entityType.equals(entity.getClass())) {
+ if(result == null)
+ result = new ArrayList<>();
+
+ result.add((E) entity);
+ }
+
+ return result;
+ }
+
+ // Properties
+ @Override
+ protected final Class<ViewConfiguration> getConfigurationType() {
+
+ return ViewConfiguration.class;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/AcLineSegmentsView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/AcLineSegmentsView.java
new file mode 100644
index 00000000..cb26bfdb
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/AcLineSegmentsView.java
@@ -0,0 +1,45 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.ACLineSegment;
+
+/**
+ * The view for {@link ACLineSegment}s.
+ *
+ * @author Felix Korb
+ */
+public final class AcLineSegmentsView extends AbstractMockUpTopologyView<ACLineSegment, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(AcLineSegmentsView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public AcLineSegmentsView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_AC_LINE_SEGMENTS, VERSION, ACLineSegment.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/BaseVoltagesView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/BaseVoltagesView.java
new file mode 100644
index 00000000..d2a4e6c4
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/BaseVoltagesView.java
@@ -0,0 +1,45 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.BaseVoltage;
+
+/**
+ * The view for {@link BaseVoltage}s.
+ *
+ * @author Felix Korb
+ */
+public final class BaseVoltagesView extends AbstractMockUpTopologyView<BaseVoltage, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(BaseVoltagesView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public BaseVoltagesView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_BASE_VOLTAGES, VERSION, BaseVoltage.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/BaysView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/BaysView.java
new file mode 100644
index 00000000..32c5a995
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/BaysView.java
@@ -0,0 +1,46 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.BaseVoltage;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Bay;
+
+/**
+ * The view for {@link Bay}s.
+ *
+ * @author Christian Brunzendorf
+ */
+public final class BaysView extends AbstractMockUpTopologyView<Bay, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(BaysView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public BaysView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_BAYS, VERSION, Bay.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/BreakersView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/BreakersView.java
new file mode 100644
index 00000000..9f34f5ef
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/BreakersView.java
@@ -0,0 +1,45 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Breaker;
+
+/**
+ * The view for {@link Breaker}s.
+ *
+ * @author Felix Korb
+ */
+public final class BreakersView extends AbstractMockUpTopologyView<Breaker, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(BreakersView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public BreakersView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_BREAKERS, VERSION, Breaker.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/BusbarSectionsView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/BusbarSectionsView.java
new file mode 100644
index 00000000..051bc713
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/BusbarSectionsView.java
@@ -0,0 +1,45 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.BusbarSection;
+
+/**
+ * The view for {@link BusbarSection}s.
+ *
+ * @author Felix Korb
+ */
+public final class BusbarSectionsView extends AbstractMockUpTopologyView<BusbarSection, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(BusbarSectionsView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public BusbarSectionsView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_BUSBAR_SECTIONS, VERSION, BusbarSection.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/DisconnectorsView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/DisconnectorsView.java
new file mode 100644
index 00000000..e1b1aa08
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/DisconnectorsView.java
@@ -0,0 +1,45 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Disconnector;
+
+/**
+ * The view for {@link Disconnector}s.
+ *
+ * @author Felix Korb
+ */
+public final class DisconnectorsView extends AbstractMockUpTopologyView<Disconnector, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(DisconnectorsView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public DisconnectorsView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_DISCONNECTORS, VERSION, Disconnector.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/EarthFaultCompensatorsView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/EarthFaultCompensatorsView.java
new file mode 100644
index 00000000..8a99a20a
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/EarthFaultCompensatorsView.java
@@ -0,0 +1,46 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EarthFaultCompensator;
+
+/**
+ * The view for {@link EarthFaultCompensator}s.
+ *
+ * @author Inge Seidel
+ */
+public class EarthFaultCompensatorsView extends AbstractMockUpTopologyView<EarthFaultCompensator, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(EarthFaultCompensatorsView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public EarthFaultCompensatorsView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_EARTH_FAULT_COMPENSATORS, VERSION, EarthFaultCompensator.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/EnergyConsumersView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/EnergyConsumersView.java
new file mode 100644
index 00000000..32fe6800
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/EnergyConsumersView.java
@@ -0,0 +1,45 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EnergyConsumer;
+
+/**
+ * The view for {@link EnergyConsumer}s.
+ *
+ * @author Felix Korb
+ */
+public final class EnergyConsumersView extends AbstractMockUpTopologyView<EnergyConsumer, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(EnergyConsumersView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public EnergyConsumersView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_ENERGY_CONSUMERS, VERSION, EnergyConsumer.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/EnergySourcesView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/EnergySourcesView.java
new file mode 100644
index 00000000..e6bc29cf
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/EnergySourcesView.java
@@ -0,0 +1,45 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EnergySource;
+
+/**
+ * The view for {@link EnergySource}s.
+ *
+ * @author Felix Korb
+ */
+public final class EnergySourcesView extends AbstractMockUpTopologyView<EnergySource, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(EnergySourcesView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public EnergySourcesView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_ENERGY_SOURCES, VERSION, EnergySource.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/GeographicalRegionsView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/GeographicalRegionsView.java
new file mode 100644
index 00000000..61c3d8cc
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/GeographicalRegionsView.java
@@ -0,0 +1,46 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.GeographicalRegion;
+
+
+/**
+ * The view for {@link GeographicalRegion}s.
+ *
+ * @author Frank Jäger
+ */
+public final class GeographicalRegionsView extends AbstractMockUpTopologyView<GeographicalRegion, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(GeographicalRegionsView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public GeographicalRegionsView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_GEOGRAPHICAL_REGIONS, VERSION, GeographicalRegion.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/GroundingImpedancesView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/GroundingImpedancesView.java
new file mode 100644
index 00000000..00f6998f
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/GroundingImpedancesView.java
@@ -0,0 +1,46 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.GroundingImpedance;
+
+/**
+ * The view for {@link GroundingImpedance}s.
+ *
+ * @author Inge Seidel
+ */
+public class GroundingImpedancesView extends AbstractMockUpTopologyView<GroundingImpedance, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(GroundingImpedancesView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public GroundingImpedancesView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_GROUNDING_IMPEDANCES, VERSION, GroundingImpedance.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/GroundsView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/GroundsView.java
new file mode 100644
index 00000000..d6e3d11d
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/GroundsView.java
@@ -0,0 +1,45 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Ground;
+
+/**
+ * The view for {@link Ground}s.
+ *
+ * @author Inge Seidel
+ */
+public final class GroundsView extends AbstractMockUpTopologyView<Ground, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(GroundsView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public GroundsView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_GROUNDS, VERSION, Ground.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/JunctionsView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/JunctionsView.java
new file mode 100644
index 00000000..9e0352a6
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/JunctionsView.java
@@ -0,0 +1,45 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Junction;
+
+/**
+ * The view for {@link Junction}s.
+ *
+ * @author Felix Korb
+ */
+public final class JunctionsView extends AbstractMockUpTopologyView<Junction, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(JunctionsView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public JunctionsView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_JUNCTIONS, VERSION, Junction.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/LineTypesView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/LineTypesView.java
new file mode 100644
index 00000000..a4d6cbd3
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/LineTypesView.java
@@ -0,0 +1,45 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.PSRType;
+
+/**
+ * The view for {@link PSRType}s.
+ *
+ * @author Christian Brunzendorf
+ */
+public final class LineTypesView extends AbstractMockUpTopologyView<PSRType, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(LineTypesView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public LineTypesView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_LINE_TYPES, VERSION, PSRType.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/LinesView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/LinesView.java
new file mode 100644
index 00000000..4d45830b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/LinesView.java
@@ -0,0 +1,45 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Line;
+
+/**
+ * The view for {@link Line}s.
+ *
+ * @author Felix Korb
+ */
+public final class LinesView extends AbstractMockUpTopologyView<Line, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(LinesView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public LinesView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_LINES, VERSION, Line.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/LoadBreakSwitchesView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/LoadBreakSwitchesView.java
new file mode 100644
index 00000000..ed02e0ba
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/LoadBreakSwitchesView.java
@@ -0,0 +1,45 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.LoadBreakSwitch;
+
+/**
+ * The view for {@link LoadBreakSwitch}s.
+ *
+ * @author Felix Korb
+ */
+public final class LoadBreakSwitchesView extends AbstractMockUpTopologyView<LoadBreakSwitch, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(LoadBreakSwitchesView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public LoadBreakSwitchesView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_LOAD_BREAK_SWITCHES, VERSION, LoadBreakSwitch.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/PetersenCoilsView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/PetersenCoilsView.java
new file mode 100644
index 00000000..ae5ede27
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/PetersenCoilsView.java
@@ -0,0 +1,46 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PetersenCoil;
+
+/**
+ * The view for {@link PetersenCoil}s.
+ *
+ * @author Inge Seidel
+ */
+public class PetersenCoilsView extends AbstractMockUpTopologyView<PetersenCoil, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(PetersenCoilsView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public PetersenCoilsView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_PETERSEN_COILS, VERSION, PetersenCoil.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/PlantsView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/PlantsView.java
new file mode 100644
index 00000000..b104b730
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/PlantsView.java
@@ -0,0 +1,45 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Plant;
+
+/**
+ * The view for {@link Plant}s.
+ *
+ * @author Frank Jäger
+ */
+public final class PlantsView extends AbstractMockUpTopologyView<Plant, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(PlantsView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public PlantsView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_PLANTS, VERSION, Plant.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/PowerTransformersView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/PowerTransformersView.java
new file mode 100644
index 00000000..cee4ced3
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/PowerTransformersView.java
@@ -0,0 +1,45 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PowerTransformer;
+
+/**
+ * The view for {@link PowerTransformer}s.
+ *
+ * @author Felix Korb
+ */
+public final class PowerTransformersView extends AbstractMockUpTopologyView<PowerTransformer, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(PowerTransformersView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public PowerTransformersView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_POWER_TRANSFORMERS, VERSION, PowerTransformer.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/SubGeographicalRegionsView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/SubGeographicalRegionsView.java
new file mode 100644
index 00000000..9bab855b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/SubGeographicalRegionsView.java
@@ -0,0 +1,45 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.SubGeographicalRegion;
+
+/**
+ * The view for {@link SubGeographicalRegion}s.
+ *
+ * @author Frank Jäger
+ */
+public final class SubGeographicalRegionsView extends AbstractMockUpTopologyView<SubGeographicalRegion, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(SubGeographicalRegionsView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public SubGeographicalRegionsView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_SUB_GEOGRAPHICAL_REGIONS, VERSION, SubGeographicalRegion.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/SubstationsView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/SubstationsView.java
new file mode 100644
index 00000000..67ba6b8b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/SubstationsView.java
@@ -0,0 +1,45 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Substation;
+
+/**
+ * The view for {@link Substation}s.
+ *
+ * @author Felix Korb
+ */
+public final class SubstationsView extends AbstractMockUpTopologyView<Substation, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(SubstationsView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public SubstationsView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_SUBSTATIONS, VERSION, Substation.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/SwitchesView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/SwitchesView.java
new file mode 100644
index 00000000..b642d49d
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/SwitchesView.java
@@ -0,0 +1,45 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Switch;
+
+/**
+ * The view for {@link Switch}s.
+ *
+ * @author Felix Korb
+ */
+public final class SwitchesView extends AbstractMockUpTopologyView<Switch, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(SwitchesView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public SwitchesView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_SWITCHES, VERSION, Switch.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/TopologyView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/TopologyView.java
new file mode 100644
index 00000000..9d5bbca5
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/TopologyView.java
@@ -0,0 +1,69 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import java.util.List;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.dataexchange.cim.ICimIdentifiedObject;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cab.service.dataexchange.processor.AbstractView;
+import com.btc.cab.service.dataexchange.processor.ViewConfiguration;
+import com.btc.cab.service.repository.api.IRepository;
+
+/**
+ * The view for topologies.
+ *
+ * @author Felix Korb
+ * @param <Q>
+ */
+public final class TopologyView<Q> extends AbstractView<ViewConfiguration, List<ICimIdentifiedObject>, Q> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(TopologyView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public TopologyView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_TOPOLOGY, VERSION);
+ }
+
+ // Methods
+ @Override
+ public List<ICimIdentifiedObject> executeQuery(Q parameters) {
+
+ List<ICimIdentifiedObject> result = null;
+ IRepository<String, ICimIdentifiedObject> repository = getContext().getServiceController().<String, ICimIdentifiedObject> getRepository(MockUpTopologyDefaults.REPOSITORY_KEY_TOPOLOGY);
+
+ if(repository != null)
+ result = repository.findAll();
+
+ return result;
+ }
+
+ // Properties
+ @Override
+ protected Class<ViewConfiguration> getConfigurationType() {
+
+ return ViewConfiguration.class;
+ }
+
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/VoltageLevelView.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/VoltageLevelView.java
new file mode 100644
index 00000000..0bf2e018
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/VoltageLevelView.java
@@ -0,0 +1,45 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+
+import com.btc.cab.common.IVersion;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.VoltageLevel;
+
+/**
+ * The view for {@link VoltageLevel}s.
+ *
+ * @author Christian Brunzendorf
+ */
+public final class VoltageLevelView extends AbstractMockUpTopologyView<VoltageLevel, NoParameters> {
+
+ // Constants
+ private static final ILogger LOGGER = LoggerFactory.createLogger(VoltageLevelView.class);
+ private static final IVersion VERSION = new Version(1);
+
+ // Constructors
+ /**
+ * @param context
+ * the context
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>context</code> is <code>null</code></li>
+ * </ul>
+ */
+ public VoltageLevelView(IServiceContext context) {
+
+ super(context, MockUpTopologyDefaults.SCOPE_VOLTAGE_LEVELS, VERSION, VoltageLevel.class);
+ }
+
+ // Properties
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/AbstractConductingEquipmentFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/AbstractConductingEquipmentFactory.java
new file mode 100644
index 00000000..825d5338
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/AbstractConductingEquipmentFactory.java
@@ -0,0 +1,205 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import static java.util.Arrays.asList;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61968.AssetInfo.WireInfo;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.ConductingEquipment;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Terminal;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.CurrentFlow;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.Length;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.Reactance;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.ReactancePerLength;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.Resistance;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.ResistancePerLength;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.UnitMultiplier;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.UnitSymbol;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PerLengthSequenceImpedance;
+
+/**
+ * The base of all {@link ConductingEquipment}-factories.
+ *
+ * @author Christian Brunzendorf
+ *
+ * @param <T>
+ * the topology-element type
+ * @param <P>
+ * the factory parameters type
+ */
+public abstract class AbstractConductingEquipmentFactory<T extends ConductingEquipment, P> extends AbstractTopologyElementFactory<T, P> {
+
+ // Methods
+ /**
+ * Creates the instance of {@link WireInfo}s.
+ *
+ * @return the {@link WireInfo}; not <code>null</code>
+ */
+ protected final CurrentFlow createCurrentFlow() {
+
+ CurrentFlow result = new CurrentFlow();
+
+ result.setValue(Double.valueOf(Math.random()));
+ result.setMultiplier(UnitMultiplier.none);
+ result.setUnit(UnitSymbol.A);
+
+ return result;
+ }
+
+ /**
+ * Creates the instance of {@link Length}.
+ *
+ * @return the {@link Length}; not <code>null</code>
+ */
+ protected final Length createLength() {
+
+ Length result = new Length();
+
+ result.setValue(Double.valueOf(Math.random() * 1000d));
+ result.setMultiplier(UnitMultiplier.k);
+ result.setUnit(UnitSymbol.m);
+
+ return result;
+ }
+
+ /**
+ * Creates the instance of {@link PerLengthSequenceImpedance}s.
+ *
+ * @return the {@link PerLengthSequenceImpedance}; not <code>null</code>
+ */
+ protected final PerLengthSequenceImpedance createPerLengthSequenceImpedance() {
+
+ PerLengthSequenceImpedance result = new PerLengthSequenceImpedance();
+
+ result.setMRID(UUID.randomUUID().toString());
+ result.setR(createResistancePerLength());
+ result.setX(createReactancePerLength());
+ result.setWireInfos(asList(createWireInfo()));
+
+ return result;
+ }
+
+ /**
+ * Creates the instance of {@link Reactance}s.
+ *
+ * @return the {@link Reactance}; not <code>null</code>
+ */
+ protected final Reactance createReactance() {
+
+ Reactance result = new Reactance();
+
+ result.setValue(Double.valueOf(Math.random()));
+ result.setMultiplier(UnitMultiplier.none);
+ result.setUnit(UnitSymbol.ohm);
+
+ return result;
+ }
+
+ /**
+ * Creates the instance of {@link ReactancePerLength}s.
+ *
+ * @return the {@link ReactancePerLength}; not <code>null</code>
+ */
+ protected final ReactancePerLength createReactancePerLength() {
+
+ ReactancePerLength result = new ReactancePerLength();
+
+ result.setValue(Double.valueOf(Math.random()));
+ result.setMultiplier(UnitMultiplier.none);
+ result.setUnit(UnitSymbol.ohm);
+
+ return result;
+ }
+
+ /**
+ * Creates the instance of {@link ResistancePerLength}s.
+ *
+ * @return the {@link ResistancePerLength}; not <code>null</code>
+ */
+ protected final Resistance createResistance() {
+
+ Resistance result = new Resistance();
+
+ result.setValue(Double.valueOf(Math.random()));
+ result.setMultiplier(UnitMultiplier.none);
+ result.setUnit(UnitSymbol.ohm);
+
+ return result;
+ }
+
+ /**
+ * Creates the instance of {@link ResistancePerLength}s.
+ *
+ * @return the {@link ResistancePerLength}; not <code>null</code>
+ */
+ protected final ResistancePerLength createResistancePerLength() {
+
+ ResistancePerLength result = new ResistancePerLength();
+
+ result.setValue(Double.valueOf(Math.random()));
+ result.setMultiplier(UnitMultiplier.none);
+ result.setUnit(UnitSymbol.ohm);
+
+ return result;
+ }
+
+ /**
+ * Creates the {@link Terminal} with the specified properties.
+ *
+ * @param mRid
+ * the <i>MRID</i>; not <code>null</code>
+ * @param name
+ * the name; not <code>null</code> and not <code>""</code>
+ * @param description
+ * the description; can be <code>null</code> but not <code>""</code>
+ * @return the {@link Terminal}s; can be <code>null</code> or empty
+ */
+ private Terminal createTerminal(UUID mRid, String name, String description) {
+
+ Terminal terminal = new Terminal();
+
+ terminal.setMRID(mRid.toString());
+ terminal.setName(name);
+ terminal.setDescription(description);
+
+ return terminal;
+ }
+
+ /**
+ * Creates the specified number of {@link Terminal}s.
+ *
+ * @param conductingEquipment
+ * the {@link ConductingEquipment}; not <code>null</code>
+ * @param terminalCount
+ * the number of {@link Terminal}s; greater or equal than <code>1</code>
+ * @return the {@link Terminal}s; not <code>null</code> and not empty
+ */
+ protected final List<Terminal> createTerminals(ConductingEquipment conductingEquipment, int terminalCount) {
+
+ List<Terminal> result = new ArrayList<>(terminalCount);
+
+ for(int i = 0; i < terminalCount; i++) {
+ Terminal terminal = createTerminal(UUID.randomUUID(), "Terminal", null);
+ terminal.setConductingEquipment(conductingEquipment);
+ result.add(terminal);
+ }
+
+ return result;
+ }
+
+ /**
+ * Creates the instance of {@link WireInfo}s.
+ *
+ * @return the {@link WireInfo}; not <code>null</code>
+ */
+ protected final WireInfo createWireInfo() {
+
+ WireInfo result = new WireInfo();
+
+ result.setRatedCurrent(createCurrentFlow());
+
+ return result;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/AbstractTopologyElementFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/AbstractTopologyElementFactory.java
new file mode 100644
index 00000000..5a762e46
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/AbstractTopologyElementFactory.java
@@ -0,0 +1,32 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import java.util.UUID;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.IdentifiedObject;
+
+/**
+ * The base of all {@link ITopologyElementFactory}s.
+ *
+ * @author Christian Brunzendorf
+ *
+ * @param <T>
+ * the topology-element type
+ * @param <P>
+ * the factory parameters type
+ */
+public abstract class AbstractTopologyElementFactory<T, P> implements ITopologyElementFactory<T, P> {
+
+ // Methods
+ /**
+ * Sets the object MRID, name and description for the specified {@link IdentifiedObject}.
+ *
+ * @param identifiedObject
+ * the {@link IdentifiedObject}; must not be <code>null</code>
+ */
+ protected final void setMridAndNameAndDescription(IdentifiedObject identifiedObject) {
+
+ identifiedObject.setMRID(UUID.randomUUID().toString());
+ identifiedObject.setName(identifiedObject.getClass().getSimpleName());
+ identifiedObject.setDescription(identifiedObject.getClass().getSimpleName() + " " + identifiedObject.getMRID());
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/AcLineSegmentFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/AcLineSegmentFactory.java
new file mode 100644
index 00000000..334511ed
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/AcLineSegmentFactory.java
@@ -0,0 +1,37 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.ACLineSegment;
+
+/**
+ * Factory for {@link ACLineSegment}s.
+ *
+ * @author Christian Brunzendorf
+ */
+public final class AcLineSegmentFactory extends AbstractConductingEquipmentFactory<ACLineSegment, NoParameters> {
+
+ // Methods
+ @Override
+ public ACLineSegment create(NoParameters factoryParameters) {
+
+ /* get element and connect terminals */
+ ACLineSegment result = new ACLineSegment();
+
+ /* set element attributes */
+ {
+ /* MRID, name, description */
+ setMridAndNameAndDescription(result);
+
+ /* Length */
+ result.setLength(createLength());
+
+ /* PerLengthImpedance */
+ result.setPerLengthImpedance(createPerLengthSequenceImpedance());
+
+ /* Terminals */
+ result.setTerminals(createTerminals(result, 2));
+ }
+
+ return result;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/BaseVoltageFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/BaseVoltageFactory.java
new file mode 100644
index 00000000..523f4326
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/BaseVoltageFactory.java
@@ -0,0 +1,25 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.BaseVoltage;
+
+/**
+ * Factory for {@link BaseVoltage}'s.
+ *
+ * @author Frank Jäger
+ *
+ */
+public final class BaseVoltageFactory extends AbstractTopologyElementFactory<BaseVoltage, NoParameters> {
+
+ // Methods
+ @Override
+ public BaseVoltage create(NoParameters factoryParameters) {
+
+ BaseVoltage result = new BaseVoltage();
+
+ setMridAndNameAndDescription(result);
+
+ return result;
+ }
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/BayFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/BayFactory.java
new file mode 100644
index 00000000..a4b95cbb
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/BayFactory.java
@@ -0,0 +1,24 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Bay;
+
+/**
+ * Factory for {@link Bay}'s.
+ *
+ * @author Frank Jäger
+ *
+ */
+public final class BayFactory extends AbstractTopologyElementFactory<Bay, NoParameters> {
+
+ // Methods
+ @Override
+ public Bay create(NoParameters factoryParameters) {
+
+ Bay result = new Bay();
+
+ setMridAndNameAndDescription(result);
+
+ return result;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/BreakerFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/BreakerFactory.java
new file mode 100644
index 00000000..012bc6ff
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/BreakerFactory.java
@@ -0,0 +1,16 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Breaker;
+
+/**
+ * Factory for {@link Breaker}'s.
+ *
+ * @author Christian Brunzendorf
+ */
+public final class BreakerFactory extends SwitchFactory<Breaker> {
+
+ // Constructor
+ public BreakerFactory() {
+ super(Breaker.class);
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/BusbarSectionFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/BusbarSectionFactory.java
new file mode 100644
index 00000000..23bb74bd
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/BusbarSectionFactory.java
@@ -0,0 +1,29 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.BusbarSection;
+
+/**
+ * Factory for {@link BusbarSection}'s.
+ *
+ * @author Christian Brunzendorf
+ */
+public final class BusbarSectionFactory extends AbstractConductingEquipmentFactory<BusbarSection, NoParameters> {
+
+ // Methods
+ @Override
+ public BusbarSection create(NoParameters factoryParameters) {
+
+ BusbarSection result = new BusbarSection();
+
+ /* set element attributes */
+ {
+ /* MRID, name, description */
+ setMridAndNameAndDescription(result);
+
+ /* Terminals */
+ result.setTerminals(createTerminals(result, 1));
+ }
+ return result;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/DisconnectorFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/DisconnectorFactory.java
new file mode 100644
index 00000000..cb1f2820
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/DisconnectorFactory.java
@@ -0,0 +1,17 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Disconnector;
+
+/**
+ * Factory for {@link Disconnector}'s.
+ *
+ * @author Christian Brunzendorf
+ */
+public final class DisconnectorFactory extends SwitchFactory<Disconnector> {
+
+ // Constructor
+ public DisconnectorFactory() {
+
+ super(Disconnector.class);
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/EarthFaultCompensatorFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/EarthFaultCompensatorFactory.java
new file mode 100644
index 00000000..32b325cb
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/EarthFaultCompensatorFactory.java
@@ -0,0 +1,60 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import com.btc.cab.common.system.FatalException;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EarthFaultCompensator;
+
+/**
+ * Factory for {@link EarthFaultCompensator}'s.
+ *
+ * @author Christian Brunzendorf
+ * @param <T>
+ * the topology-element type
+ */
+public class EarthFaultCompensatorFactory<T extends EarthFaultCompensator> extends AbstractConductingEquipmentFactory<EarthFaultCompensator, NoParameters> {
+
+ // Attributes
+ private Class<? extends EarthFaultCompensator> type;
+
+ // Constructor
+ public EarthFaultCompensatorFactory() {
+
+ this.type = EarthFaultCompensator.class;
+ }
+
+ /**
+ * @param type
+ * the type of the {@link EarthFaultCompensator}
+ */
+ protected EarthFaultCompensatorFactory(Class<T> type) {
+
+ this.type = type;
+ }
+
+ // Methods
+ @Override
+ public T create(NoParameters factoryParameters) {
+
+ T result;
+
+ try {
+ result = (T) type.newInstance();
+ }
+ catch(InstantiationException | IllegalAccessException exception) {
+ throw new FatalException(exception); /* should be unreachable code */
+ }
+
+ /* set element attributes */
+ {
+ /* MRID, name, description */
+ setMridAndNameAndDescription(result);
+
+ /* R */
+ result.setR(createResistance());
+
+ /* Terminals */
+ result.setTerminals(createTerminals(result, 1));
+ }
+ return result;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/EnergyConsumerFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/EnergyConsumerFactory.java
new file mode 100644
index 00000000..900dd7b9
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/EnergyConsumerFactory.java
@@ -0,0 +1,34 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EnergyConsumer;
+
+/**
+ * Factory for {@link EnergyConsumer}'s.
+ *
+ * @author Christian Brunzendorf
+ */
+public final class EnergyConsumerFactory extends AbstractConductingEquipmentFactory<EnergyConsumer, NoParameters> {
+
+ // Methods
+ @Override
+ public EnergyConsumer create(NoParameters factoryParameters) {
+
+ EnergyConsumer result = new EnergyConsumer();
+
+ /* set element attributes */
+ {
+ /* MRID, name, description */
+ setMridAndNameAndDescription(result);
+
+ /* Terminals */
+ result.setTerminals(createTerminals(result, 2));
+ }
+
+ return result;
+ }
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/EnergySourceFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/EnergySourceFactory.java
new file mode 100644
index 00000000..fd719383
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/EnergySourceFactory.java
@@ -0,0 +1,33 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EnergySource;
+
+/**
+ * Factory for {@link EnergySource}'s.
+ *
+ * @author Christian Brunzendorf
+ */
+public final class EnergySourceFactory extends AbstractConductingEquipmentFactory<EnergySource, NoParameters> {
+
+ // Methods
+ @Override
+ public EnergySource create(NoParameters factoryParameters) {
+
+ EnergySource result = new EnergySource();
+
+ /* set element attributes */
+ {
+ /* MRID, name, description */
+ setMridAndNameAndDescription(result);
+
+ /* Terminals */
+ result.setTerminals(createTerminals(result, 2));
+ }
+
+ return result;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/FactoryParameters.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/FactoryParameters.java
new file mode 100644
index 00000000..2655018a
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/FactoryParameters.java
@@ -0,0 +1,75 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import java.util.UUID;
+
+import com.btc.cab.common.string.StringUtilities;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.IdentifiedObject;
+
+/**
+ * The {@link IdentifiedObject} factory parameters.
+ *
+ * @author Christian Brunzendorf
+ */
+public class FactoryParameters {
+
+ // Attributes
+ private String description;
+ private String name;
+ private UUID uuid;
+
+ // Constructors
+ /**
+ * The Constructor.
+ *
+ * @param name
+ * the name
+ * @param description
+ * the description
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>name</code> is <code>null</code> or <code>""</code></li>
+ * <li><code>description</code> is <code>null</code></li>
+ * </ul>
+ */
+ public FactoryParameters(String name, String description) throws IllegalArgumentException {
+ this.uuid = UUID.randomUUID();
+
+ if(StringUtilities.hasContent(name))
+ // REMIND 2017-08-17 Christian TopologyUtility fuer Namensgenerierung
+ this.name = name + " " + this.getUuid();
+ else
+ throw new IllegalArgumentException("name", new NullPointerException());
+
+ if(StringUtilities.hasContent(description))
+ this.description = description;
+ else
+ throw new IllegalArgumentException("description", new NullPointerException());
+ }
+
+ // Methods
+ /**
+ * @return the description; not <code>null</code> and not <code>""</code>
+ */
+ public String getDescription() {
+
+ return description;
+ }
+
+ /**
+ * @return the name; not <code>null</code> and not <code>""</code>
+ */
+ public String getName() {
+
+ return name;
+ }
+
+ /**
+ * @return the uuid; not <code>null</code>
+ */
+ public UUID getUuid() {
+
+ return uuid;
+ }
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/GeographicalRegionFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/GeographicalRegionFactory.java
new file mode 100644
index 00000000..aa85b322
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/GeographicalRegionFactory.java
@@ -0,0 +1,22 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.GeographicalRegion;
+
+/**
+ * Factory for {@link GeographicalRegion}'s.
+ *
+ * @author Frank Jäger
+ *
+ */
+public final class GeographicalRegionFactory extends AbstractTopologyElementFactory<GeographicalRegion, NoParameters> {
+
+ // Methods
+ @Override
+ public GeographicalRegion create(NoParameters factoryParameters) {
+
+ GeographicalRegion result = new GeographicalRegion();
+
+ return result;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/GroundFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/GroundFactory.java
new file mode 100644
index 00000000..2db0216a
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/GroundFactory.java
@@ -0,0 +1,30 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Ground;
+
+/**
+ * Factory for {@link Ground}'s.
+ *
+ * @author Christian Brunzendorf
+ *
+ */
+public final class GroundFactory extends AbstractConductingEquipmentFactory<Ground, NoParameters> {
+
+ // Methods
+ @Override
+ public Ground create(NoParameters factoryParameters) {
+
+ Ground result = new Ground();
+
+ /* set element attributes */
+ {
+ /* MRID, name, description */
+ setMridAndNameAndDescription(result);
+
+ /* Terminals */
+ result.setTerminals(createTerminals(result, 1));
+ }
+ return result;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/GroundingImpedanceFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/GroundingImpedanceFactory.java
new file mode 100644
index 00000000..fd1472de
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/GroundingImpedanceFactory.java
@@ -0,0 +1,34 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.GroundingImpedance;
+
+/**
+ * Factory for {@link GroundingImpedance}'s.
+ *
+ * @author Christian Brunzendorf
+ *
+ */
+public final class GroundingImpedanceFactory extends EarthFaultCompensatorFactory<GroundingImpedance> {
+
+ // Constructor
+ public GroundingImpedanceFactory() {
+ super(GroundingImpedance.class);
+ }
+
+ // Methods
+ /**
+ * Creates the {@link GroundingImpedance}.
+ *
+ * @return the {@link GroundingImpedance}; not <code>null</code>
+ */
+ public GroundingImpedance create() {
+
+ GroundingImpedance result = create(null);
+ /* set element attributes */
+ {
+ /* X */
+ result.setX(createReactance());
+ }
+ return result;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/ITopologyElementFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/ITopologyElementFactory.java
new file mode 100644
index 00000000..bba5ce24
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/ITopologyElementFactory.java
@@ -0,0 +1,30 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+/**
+ * Defines the commonalities of all topology-element factories.
+ *
+ * @author Christian Brunzendorf
+ * @author Felix Korb
+ *
+ * @param <T>
+ * the topology-element type
+ * @param <P>
+ * the factory parameters type
+ */
+public interface ITopologyElementFactory<T, P> {
+
+ // Methods
+ /**
+ * Creates the topology-element.
+ *
+ * @param factoryParameters
+ * the factory parameters, that are used to perform the creation
+ * @return the topology-element; can be <code>null</code>
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>factoryParameters</code> is <code>null</code> and necessary for the specific creation</li>
+ * </ul>
+ */
+ T create(P factoryParameters);
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/JunctionFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/JunctionFactory.java
new file mode 100644
index 00000000..2e1603d0
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/JunctionFactory.java
@@ -0,0 +1,32 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Junction;
+
+/**
+ * Factory for {@link Junction}'s.
+ *
+ * @author Christian Brunzendorf
+ */
+public final class JunctionFactory extends AbstractConductingEquipmentFactory<Junction, NoParameters> {
+
+ // Methods
+ @Override
+ public Junction create(NoParameters factoryParameters) {
+
+ /* get Element and connect Terminals */
+ Junction result = new Junction();
+
+ /* set element attributes */
+ {
+ /* MRID, name, description */
+ setMridAndNameAndDescription(result);
+
+ /* Terminals */
+ result.setTerminals(createTerminals(result, 1));
+ }
+
+ return result;
+ }
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/LoadBreakSwitchFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/LoadBreakSwitchFactory.java
new file mode 100644
index 00000000..718a257d
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/LoadBreakSwitchFactory.java
@@ -0,0 +1,19 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.LoadBreakSwitch;
+
+/**
+ * Factory for {@link LoadBreakSwitch}'s.
+ *
+ * @author Christian Brunzendorf
+ */
+public final class LoadBreakSwitchFactory extends SwitchFactory<LoadBreakSwitch> {
+
+ // Constructor
+ public LoadBreakSwitchFactory() {
+ super(LoadBreakSwitch.class);
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/MockUpUtilities.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/MockUpUtilities.java
new file mode 100644
index 00000000..fd717344
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/MockUpUtilities.java
@@ -0,0 +1,413 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.BaseVoltage;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Bay;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.ConductingEquipment;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.ConnectivityNode;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Equipment;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.EquipmentContainer;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.GeographicalRegion;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.PowerSystemResource;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.SubGeographicalRegion;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Substation;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Terminal;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.VoltageLevel;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Line;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Plant;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PowerTransformer;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PowerTransformerEnd;
+
+/**
+ * Utility class for building mock up topologies.
+ *
+ * @author Christian Brunzendorf
+ * @author Frank Jäger
+ */
+public final class MockUpUtilities {
+
+ // Constructors
+ private MockUpUtilities() {
+ /* suppresses the instantiation! */
+ }
+
+ // Methods
+ /**
+ * Connects the specified {@link Terminal}s.
+ *
+ * @param terminals
+ * the terminals to be connected; can be <code>null</code> or empty
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li>there are already connected <code>terminals</code> with different {@link ConnectivityNode}s</li>
+ * </ul>
+ */
+ public static void connect(List<Terminal> terminals) {
+
+ if((terminals != null) && !terminals.isEmpty()) {
+ ConnectivityNode connectivityNode = null;
+
+ /* determine already existing connectivity nodes and ensure the that there are no terminals with different connectivity nodes */
+ for(Terminal terminal : terminals)
+ if(connectivityNode == null)
+ connectivityNode = terminal.getConnectivityNode();
+ else {
+ if((terminal.getConnectivityNode() != null) && (terminal.getConnectivityNode() != connectivityNode))
+ throw new IllegalArgumentException("terminals");
+ }
+
+ /* create the connectivity node if none was found */
+ if(connectivityNode == null) {
+ connectivityNode = new ConnectivityNode();
+ connectivityNode.setMRID(UUID.randomUUID().toString());
+ }
+
+ /* connect the connectivity node with all terminals */
+ connectivityNode.setTerminals(terminals);
+
+ /* connect all terminals with the connectivity node */
+ for(Terminal terminal : terminals)
+ if(terminal.getConnectivityNode() == null)
+ terminal.setConnectivityNode(connectivityNode);
+ }
+ }
+
+ /**
+ * Groups the specified {@link Equipment}s by the specified {@link Bay}.
+ *
+ * @param bay
+ * the {@link Bay}
+ * @param equipments
+ * the {@link Equipment}; can be <code>null</code> or empty
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>bay</code> is <code>null</code></li>
+ * </ul>
+ */
+ public static void group(Bay bay, List<Equipment> equipments) {
+
+ if(bay == null)
+ throw new IllegalArgumentException("bay", new NullPointerException());
+ else {
+ if(equipments != null)
+ for(Equipment equipment : equipments)
+ equipment.setEquipmentContainer(bay);
+
+ if((equipments == null) || equipments.isEmpty())
+ bay.setEquipments(null);
+ else
+ bay.setEquipments(equipments);
+ }
+ }
+
+ /**
+ * Groups the specified {@link Equipment}s by the specified {@link EquipmentContainer}.
+ *
+ * @param equipmentContainer
+ * the {@link EquipmentContainer}
+ * @param equipments
+ * the {@link Equipment}s; can be <code>null</code> or empty
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>equipmentContainer</code> is <code>null</code></li>
+ * </ul>
+ */
+ public static void group(EquipmentContainer equipmentContainer, List<Equipment> equipments) {
+
+ if(equipmentContainer == null)
+ throw new IllegalArgumentException("equipmentContainer", new NullPointerException());
+ else {
+ if(equipments != null)
+ for(Equipment equipment : equipments)
+ equipment.setEquipmentContainer(equipmentContainer);
+
+ if((equipments == null) || equipments.isEmpty())
+ equipmentContainer.setEquipments(null);
+ else
+ equipmentContainer.setEquipments(equipments);
+ }
+ }
+
+ /**
+ * Groups the specified {@link SubGeographicalRegion}s by the specified {@link GeographicalRegion}.
+ *
+ * @param geographicalRegion
+ * the {@link GeographicalRegion}
+ * @param subGeographicalRegions
+ * the {@link SubGeographicalRegion}s; can be <code>null</code> or empty
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>geographicalRegion</code> is <code>null</code></li>
+ * </ul>
+ */
+ public static void group(GeographicalRegion geographicalRegion, List<SubGeographicalRegion> subGeographicalRegions) {
+
+ if(geographicalRegion == null)
+ throw new IllegalArgumentException("geographicalRegion", new NullPointerException());
+ else {
+ if(subGeographicalRegions != null) {
+ List<SubGeographicalRegion> subGeographicalRegionsList = new ArrayList<>();
+
+ for(SubGeographicalRegion subGeographicalRegion : subGeographicalRegions) {
+ subGeographicalRegionsList.add(subGeographicalRegion);
+ subGeographicalRegion.setRegion(geographicalRegion);
+ }
+
+ geographicalRegion.setRegions(subGeographicalRegionsList);
+ }
+ }
+ }
+
+ /**
+ * Groups the specified {@link Equipment}s by the specified {@link Line}.
+ *
+ * @param line
+ * the {@link Line}
+ * @param equipments
+ * the {@link Equipment}s; can be <code>null</code> or empty
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>line</code> is <code>null</code></li>
+ * </ul>
+ */
+ public static void group(Line line, List<Equipment> equipments) {
+
+ group(line, equipments);
+ }
+
+ /**
+ * Groups the specified {@link Equipment}s by the specified {@link Plant}.
+ *
+ * @param plant
+ * the {@link Plant}
+ * @param equipments
+ * the {@link Equipment}s; can be <code>null</code> or empty
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>equipmentContainer</code> is <code>null</code></li>
+ * </ul>
+ */
+ public static void group(Plant plant, List<Equipment> equipments) {
+
+ group(plant, equipments);
+ }
+
+ /**
+ * Groups the specified {@link EquipmentContainer}s by the specified {@link SubGeographicalRegion}.
+ * <p>
+ * <b><i>NOTE:</i></b><br/>
+ * The following {@link EquipmentContainer}s are supported only:
+ * <ul>
+ * <li>{@link Line}</li>
+ * <li>{@link Substation}</li>
+ * </ul>
+ * </p>
+ *
+ * @param subGeographicalRegion
+ * the {@link SubGeographicalRegion}
+ * @param equipmentContainers
+ * the {@link EquipmentContainer}s; can be <code>null</code> or empty
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>subGeographicalRegion</code> is <code>null</code></li>
+ * <li><code>equipmentContainers</code> has at least one unsupported {@link EquipmentContainer}</li>
+ * </ul>
+ */
+ public static void group(SubGeographicalRegion subGeographicalRegion, List<EquipmentContainer> equipmentContainers) {
+
+ if(subGeographicalRegion == null)
+ throw new IllegalArgumentException("subGeographicalRegion", new NullPointerException());
+ else {
+ if((equipmentContainers == null) || equipmentContainers.isEmpty()) {
+ subGeographicalRegion.setSubstations(null);
+ subGeographicalRegion.setLines(null);
+ }
+ else {
+ List<Line> lines = new ArrayList<>();
+ List<Substation> substations = new ArrayList<>();
+
+ for(EquipmentContainer equipmentContainer : equipmentContainers) {
+ if(Substation.class.isAssignableFrom(equipmentContainer.getClass()))
+ substations.add((Substation) equipmentContainer);
+ else if(Line.class.isAssignableFrom(equipmentContainer.getClass()))
+ lines.add((Line) equipmentContainer);
+ else
+ throw new IllegalArgumentException("equipmentContainers");
+ }
+
+ subGeographicalRegion.setLines(lines);
+ subGeographicalRegion.setSubstations(substations);
+ }
+ }
+ }
+
+ /**
+ * Groups the specified {@link PowerSystemResource}s by the specified {@link Substation}.
+ * <p>
+ * <b><i>NOTE:</i></b><br/>
+ * The following {@link PowerSystemResource}s are supported only:
+ * <ul>
+ * <li>{@link Bay}</li>
+ * <li>{@link ConductingEquipment}</li>
+ * <li>{@link VoltageLevel}</li>
+ * </ul>
+ * </p>
+ *
+ * @param substation
+ * the {@link Substation}
+ * @param powerSystemResources
+ * the {@link PowerSystemResource}s; can be <code>null</code> or empty
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>substation</code> is <code>null</code></li>
+ * <li><code>powerSystemResources</code> has at least one unsupported {@link PowerSystemResource}</li>
+ * </ul>
+ */
+ public static void group(Substation substation, List<PowerSystemResource> powerSystemResources) {
+
+ if(substation == null)
+ throw new IllegalArgumentException("substation", new NullPointerException());
+ else {
+
+ if((powerSystemResources == null) || powerSystemResources.isEmpty()) {
+ substation.setBays(null);
+ substation.setEquipments(null);
+ substation.setVoltageLevels(null);
+ }
+ else {
+ List<Bay> bays = new ArrayList<>();
+ List<Equipment> conductingEquipments = new ArrayList<>();
+ List<VoltageLevel> voltageLevels = new ArrayList<>();
+
+ for(PowerSystemResource powerSystemResource : powerSystemResources) {
+ if(Bay.class.isAssignableFrom(powerSystemResource.getClass()))
+ bays.add((Bay) powerSystemResource);
+ else if(ConductingEquipment.class.isAssignableFrom(powerSystemResource.getClass()))
+ conductingEquipments.add((ConductingEquipment) powerSystemResource);
+ else if(VoltageLevel.class.isAssignableFrom(powerSystemResource.getClass()))
+ voltageLevels.add((VoltageLevel) powerSystemResource);
+ else
+ throw new IllegalArgumentException("powerSystemResources");
+ }
+
+ // CLEARING 2017-08-18 Frank => Felix : falls keine Bays, VoltageLevels oder ConductingEquipments in powerSystemResources vorhanden sind. werden leere Listen übergeben
+ substation.setBays(bays);
+ substation.setEquipments(conductingEquipments);
+ substation.setVoltageLevels(voltageLevels);
+ }
+ }
+ }
+
+ /**
+ * Groups the specified {@link PowerSystemResource}s by the specified {@link VoltageLevel}.
+ * <p>
+ * <b><i>NOTE:</i></b><br/>
+ * The following {@link PowerSystemResource}s are supported only:
+ * <ul>
+ * <li>{@link Bay}</li>
+ * <li>{@link ConductingEquipment}</li>
+ * <li>{@link Substation}</li>
+ * </ul>
+ * </p>
+ *
+ * @param voltageLevel
+ * the {@link VoltageLevel}
+ * @param powerSystemResources
+ * the {@link PowerSystemResource}s; can be <code>null</code> or empty
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>voltageLevel</code> is <code>null</code></li>
+ * <li><code>powerSystemResources</code> has at least one unsupported {@link PowerSystemResource}</li>
+ * </ul>
+ */
+ public static void group(VoltageLevel voltageLevel, List<PowerSystemResource> powerSystemResources) {
+
+ if(voltageLevel == null)
+ throw new IllegalArgumentException("voltageLevel", new NullPointerException());
+ else {
+
+ if((powerSystemResources == null) || powerSystemResources.isEmpty()) {
+ voltageLevel.setBays(null);
+ voltageLevel.setEquipments(null);
+ voltageLevel.setSubstation(null);
+ }
+ else {
+ List<Bay> bays = new ArrayList<>();
+ List<Equipment> conductingEquipments = new ArrayList<>();
+
+ for(PowerSystemResource powerSystemResource : powerSystemResources) {
+ if(Bay.class.isAssignableFrom(powerSystemResource.getClass()))
+ bays.add((Bay) powerSystemResource);
+ else if(ConductingEquipment.class.isAssignableFrom(powerSystemResource.getClass()))
+ conductingEquipments.add((ConductingEquipment) powerSystemResource);
+ // CLEARING 2017-08-18 Frank => Felix : was passiert wenn mehrer Substations gefunden werden?
+ else if(Substation.class.isAssignableFrom(powerSystemResource.getClass()))
+ voltageLevel.setSubstation((Substation) powerSystemResource);
+ else
+ throw new IllegalArgumentException("powerSystemResources");
+ }
+
+ voltageLevel.setBays(bays);
+ voltageLevel.setEquipments(conductingEquipments);
+ }
+ }
+ }
+
+ /**
+ * Set the {@link BaseVoltage} of the specified {@link ConductingEquipment}s.
+ *
+ * @param conductingEquipments
+ * the {@link ConductingEquipment}s; can be <code>null</code> or empty
+ * @param value
+ * the {@link BaseVoltage}; can be <code>null</code>
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>conductingEquipments</code> has at least one entry of the instance {@link PowerTransformer}</li>
+ * </ul>
+ */
+ public static void setBaseVoltage(List<ConductingEquipment> conductingEquipments, BaseVoltage value) {
+
+ if(conductingEquipments != null)
+ for(ConductingEquipment conductingEquipment : conductingEquipments)
+ if(conductingEquipment instanceof PowerTransformer)
+ throw new IllegalArgumentException("conductingEquipments");
+ else
+ conductingEquipment.setBaseVoltage(value);
+ }
+
+ /**
+ * Set the {@link BaseVoltage} of the specified {@link ConductingEquipment}s using the specified {@link PowerTransformerEnd}.
+ *
+ * @param conductingEquipments
+ * the {@link ConductingEquipment}s; can be <code>null</code> or empty
+ * @param powerTransformerEnd
+ * the {@link PowerTransformerEnd}
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>conductingEquipments</code> has at least one entry of the instance {@link PowerTransformer}</li>
+ * <li><code>powerTransformerEnd</code> is <code>null</code></li>
+ * <li><code>powerTransformerEnd</code> has no {@link BaseVoltage}</li>
+ * </ul>
+ */
+ public static void setBaseVoltage(List<ConductingEquipment> conductingEquipments, PowerTransformerEnd powerTransformerEnd) {
+
+ if((powerTransformerEnd == null) || (powerTransformerEnd.getBaseVoltage() == null))
+ throw new IllegalArgumentException("powerTransformerEnd");
+ else
+ setBaseVoltage(conductingEquipments, powerTransformerEnd.getBaseVoltage());
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/PetersenCoilFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/PetersenCoilFactory.java
new file mode 100644
index 00000000..ae6f50e3
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/PetersenCoilFactory.java
@@ -0,0 +1,52 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PetersenCoil;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PetersenCoilModeKind;
+
+/**
+ * Factory for {@link PetersenCoil}'s.
+ *
+ * @author Christian Brunzendorf
+ *
+ */
+public final class PetersenCoilFactory extends EarthFaultCompensatorFactory<PetersenCoil> {
+
+ // Cunstructors
+ public PetersenCoilFactory() {
+ super(PetersenCoil.class);
+ }
+
+ // Methods
+ /**
+ * Creates the {@link PetersenCoilFactory}.
+ *
+ * @return the {@link PetersenCoilFactory}; not <code>null</code>
+ */
+ public PetersenCoil create() {
+
+ PetersenCoil result = create(null);
+
+ /* set element attributes */
+ {
+ /* PetersenCoilModeKind */
+ result.setMode(PetersenCoilModeKind.fixed);
+
+ /* OffsetCurrent */
+ result.setOffsetCurrent(createCurrentFlow());
+
+ /* PositionCurrent */
+ result.setPositionCurrent(createCurrentFlow());
+
+ /* XGroundMax */
+ result.setXGroundMax(createReactance());
+
+ /* XGroundMin */
+ result.setXGroundMin(createReactance());
+
+ /* XGroundNominal */
+ result.setXGroundNominal(createReactance());
+ }
+
+ return result;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/PowerTransformerFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/PowerTransformerFactory.java
new file mode 100644
index 00000000..caccc828
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/PowerTransformerFactory.java
@@ -0,0 +1,132 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.ApparentPower;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.UnitMultiplier;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.UnitSymbol;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Domain.Voltage;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PowerTransformer;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.PowerTransformerEnd;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.RatioTapChanger;
+
+/**
+ * Factory for {@link PowerTransformer}'s.
+ *
+ * @author Christian Brunzendorf
+ */
+public final class PowerTransformerFactory extends AbstractConductingEquipmentFactory<PowerTransformer, NoParameters> {
+
+ // Methods
+ @Override
+ public PowerTransformer create(NoParameters factoryParameters) {
+
+ PowerTransformer result = new PowerTransformer();
+
+ // the number of winding is needed to create the Ends and the associated Terminals (1-3)
+ int powerTransformerEndCount = 2;
+
+ /* set element attributes */
+ {
+ /* MRID, name, description */
+ setMridAndNameAndDescription(result);
+
+ /* VectorGroup */
+ result.setVectorGroup("Dyn1");
+
+ /* TransformerEnds */
+ result.setPowerTransformerEnd(createPowertransformers(powerTransformerEndCount));
+
+ /* Terminals */
+ result.setTerminals(createTerminals(result, powerTransformerEndCount));
+
+ /* set Bidirectional connections */
+ for(int i = 0; i < powerTransformerEndCount; i++) {
+ PowerTransformerEnd powerTransformerEnd = result.getPowerTransformerEnd().get(i);
+ powerTransformerEnd.setTerminal(result.getTerminals().get(i));
+ powerTransformerEnd.setPowerTransformer(result);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Creates the specified number of {@link PowerTransformerEnd}s.
+ *
+ * @param transformerEndsCount
+ * the number of {@link PowerTransformerEnd}s; greater or equal than <code>2</code>
+ *
+ * @return the {@link PowerTransformerEnd}s; not <code>null</code> and not empty
+ */
+ private List<PowerTransformerEnd> createPowertransformers(int transformerEndsCount) {
+
+ ArrayList<PowerTransformerEnd> result = new ArrayList<>(transformerEndsCount);
+
+ for(int i = 0; i < transformerEndsCount; i++) {
+ PowerTransformerEnd powerTransformerEnd = new PowerTransformerEnd();
+
+ /* MRID, name, description */
+ setMridAndNameAndDescription(powerTransformerEnd);
+
+ /* Voltage */
+ powerTransformerEnd.setRatedU(createVoltage());
+
+ /* ApparentPower */
+ powerTransformerEnd.setRatedS(createApparentPower());
+ /* RatioTapChanger */
+ powerTransformerEnd.setRatioTapChanger(createRatioTapChanger());
+
+ result.add(powerTransformerEnd);
+ }
+ return result;
+ }
+
+ /**
+ * Creates the instance of {@link Voltage}s.
+ *
+ * @return the {@link Voltage}; not <code>null</code>
+ */
+ private Voltage createVoltage() {
+
+ Voltage result = new Voltage();
+
+ result.setMultiplier(UnitMultiplier.none);
+ result.setUnit(UnitSymbol.V);
+ result.setValue(Double.valueOf(Math.random()));
+
+ return result;
+ }
+
+ /**
+ * Creates the instance of {@link ApparentPower}s.
+ *
+ * @return the {@link ApparentPower}; not <code>null</code>
+ */
+ private ApparentPower createApparentPower() {
+
+ ApparentPower result = new ApparentPower();
+
+ result.setMultiplier(UnitMultiplier.none);
+ result.setUnit(UnitSymbol.V);
+ result.setValue(Double.valueOf(Math.random()));
+
+ return result;
+ }
+
+ /**
+ * Creates the instance of {@link RatioTapChanger}s.
+ *
+ * @return the {@link RatioTapChanger}; not <code>null</code>
+ */
+ private RatioTapChanger createRatioTapChanger() {
+
+ RatioTapChanger result = new RatioTapChanger();
+
+ setMridAndNameAndDescription(result);
+
+ return result;
+ }
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/PsrTypeFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/PsrTypeFactory.java
new file mode 100644
index 00000000..e3d9cec3
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/PsrTypeFactory.java
@@ -0,0 +1,26 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.PSRType;
+
+/**
+ * Factory for {@link PSRType}'s.
+ *
+ * @author Christian Brunzendorf
+ */
+public final class PsrTypeFactory extends AbstractTopologyElementFactory<PSRType, NoParameters> {
+
+ // Methods
+ @Override
+ public PSRType create(NoParameters factoryParameters) {
+
+ PSRType result = new PSRType();
+
+ /* set element attributes */
+ {
+ /* MRID, name, description */
+ setMridAndNameAndDescription(result);
+ }
+ return result;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/SubGeographicalRegionFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/SubGeographicalRegionFactory.java
new file mode 100644
index 00000000..2e422c70
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/SubGeographicalRegionFactory.java
@@ -0,0 +1,22 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.SubGeographicalRegion;
+
+/**
+ * Factory for {@link SubGeographicalRegion}'s.
+ *
+ * @author Frank Jäger
+ *
+ */
+public final class SubGeographicalRegionFactory extends AbstractTopologyElementFactory<SubGeographicalRegion, NoParameters> {
+
+ // Methods
+ @Override
+ public SubGeographicalRegion create(NoParameters factoryParameters) {
+
+ SubGeographicalRegion result = new SubGeographicalRegion();
+
+ return result;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/SubstationFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/SubstationFactory.java
new file mode 100644
index 00000000..4dd9d680
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/SubstationFactory.java
@@ -0,0 +1,24 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Substation;
+
+/**
+ * Factory for {@link Substation}'s.
+ *
+ * @author Christian Brunzendorf
+ */
+public final class SubstationFactory extends AbstractTopologyElementFactory<Substation, NoParameters> {
+
+ // Methods
+ @Override
+ public Substation create(NoParameters factoryParameters) {
+
+ Substation result = new Substation();
+
+ setMridAndNameAndDescription(result);
+
+ return result;
+ }
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/SwitchFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/SwitchFactory.java
new file mode 100644
index 00000000..4c1302a7
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/SwitchFactory.java
@@ -0,0 +1,64 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import com.btc.cab.common.system.FatalException;
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.Switch;
+
+/**
+ * Factory for all {@link Switch}'es.
+ *
+ * @author Christian Brunzendorf
+ *
+ * @param <T>
+ * the topology-element type
+ */
+public class SwitchFactory<T extends Switch> extends AbstractConductingEquipmentFactory<T, NoParameters> {
+
+ // Attributes
+ private Class<? extends Switch> type;
+
+ // Constructor
+ public SwitchFactory() {
+
+ this.type = Switch.class;
+ }
+
+ /**
+ * @param type
+ * the type of the {@link Switch}
+ */
+ protected SwitchFactory(Class<T> type) {
+
+ this.type = type;
+ }
+
+ // Methods
+ @Override
+ @SuppressWarnings("unchecked")
+ public T create(NoParameters factoryParameters) {
+
+ T result;
+
+ try {
+ result = (T) type.newInstance();
+ }
+ catch(InstantiationException | IllegalAccessException exception) {
+ throw new FatalException(exception); /* should be unreachable code */
+ }
+
+ /* set element attributes */
+ {
+ setMridAndNameAndDescription(result);
+ }
+ {
+ // NormalOpen
+ result.setNormalOpen(Boolean.FALSE);
+ }
+ {
+ // Terminals
+ result.setTerminals(createTerminals(result, 2));
+ }
+
+ return result;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/TopologyFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/TopologyFactory.java
new file mode 100644
index 00000000..b9c4d68e
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/TopologyFactory.java
@@ -0,0 +1,86 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import javax.swing.tree.DefaultTreeCellEditor.EditorContainer;
+
+import com.btc.cab.service.repository.model.impl.EquipmentContainer;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Bay;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.ConductingEquipment;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.EarthFaultCompensator;
+
+/**
+ * Mockup topology Factory.
+ *
+ * @author Christian Brunzendorf
+ */
+public final class TopologyFactory {
+
+ // Constants
+
+ // Attributes
+ private AcLineSegmentFactory acLineSegmentFactory;
+ private BaseVoltageFactory baseVoltageFactory;
+ private BayFactory bayFactory;
+ private BreakerFactory breakerFactory;
+ private BusbarSectionFactory busbarSectionFactory;
+ private DisconnectorFactory disconnectorFactory;
+ private EarthFaultCompensator earthFaultCompensator;
+ private EnergyConsumerFactory energyConsumerFactory;
+ private EnergySourceFactory energySourceFactory;
+ private GeographicalRegionFactory geographicalRegionFactory;
+ private GroundFactory groundFactory;
+ private GroundingImpedanceFactory groundingImpedanceFactory;
+ private JunctionFactory junctionfactory;
+ private LoadBreakSwitchFactory loadBreakSwitchFactory;
+ private PetersenCoilFactory petersenCoilFactory;
+ private PowerTransformerFactory powerTransformerFactory;
+ private PsrTypeFactory psrTypeFactory;
+ private SubGeographicalRegionFactory subGeographicalRegionFactory;
+ private VoltageLevelFactory voltageLevelFactory;
+
+ private Bay hightVoltageBay;
+ private Bay midVoltageBay;
+
+ // Constructor
+ public TopologyFactory() {
+ acLineSegmentFactory = new AcLineSegmentFactory();
+ baseVoltageFactory = new BaseVoltageFactory();
+ bayFactory = new BayFactory();
+ breakerFactory = new BreakerFactory();
+ busbarSectionFactory = new BusbarSectionFactory();
+ disconnectorFactory = new DisconnectorFactory();
+ energyConsumerFactory = new EnergyConsumerFactory();
+ energySourceFactory = new EnergySourceFactory();
+ geographicalRegionFactory = new GeographicalRegionFactory();
+ groundFactory = new GroundFactory();
+ groundingImpedanceFactory = new GroundingImpedanceFactory();
+ junctionfactory = new JunctionFactory();
+ loadBreakSwitchFactory = new LoadBreakSwitchFactory();
+ petersenCoilFactory = new PetersenCoilFactory();
+ powerTransformerFactory = new PowerTransformerFactory();
+ psrTypeFactory = new PsrTypeFactory();
+ subGeographicalRegionFactory = new SubGeographicalRegionFactory();
+ voltageLevelFactory = new VoltageLevelFactory();
+ }
+
+ // Methods
+ public void create() {
+
+ hightVoltageBay = bayFactory.create(null);
+
+ midVoltageBay = bayFactory.create(null);
+
+ }
+
+ /**
+ * Creates the {@link EquipmentContainer} and connects the specified {@link ConductingEquipment} in the given order.
+ *
+ * @param equipmentContainer
+ * the {@link EquipmentContainer}; not <code>null</code>
+ *
+ * @param conductingEquipments
+ */
+ private void ConnectEquipmentContainer(EquipmentContainer equipmentContainer, ConductingEquipment... conductingEquipments) {
+
+ }
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/VoltageLevelFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/VoltageLevelFactory.java
new file mode 100644
index 00000000..7a240c4e
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/logic/processor/generator/VoltageLevelFactory.java
@@ -0,0 +1,24 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.generator;
+
+import com.btc.cab.common.value.xparameter.NoParameters;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.VoltageLevel;
+
+/**
+ * Factory for {@link VoltageLevel}'s.
+ *
+ * @author Frank Jäger
+ *
+ */
+public final class VoltageLevelFactory extends AbstractTopologyElementFactory<VoltageLevel, NoParameters> {
+
+ // Methods
+ @Override
+ public VoltageLevel create(NoParameters factoryParameters) {
+
+ VoltageLevel result = new VoltageLevel();
+
+ setMridAndNameAndDescription(result);
+
+ return result;
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/resources/.gitignore b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/resources/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/main/resources/.gitignore
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/test/java/.gitignore b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/test/java/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/test/java/.gitignore
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/test/resources/.gitignore b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/test/resources/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-logic/src/test/resources/.gitignore
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/pom.xml b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/pom.xml
new file mode 100644
index 00000000..bf96c47d
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/pom.xml
@@ -0,0 +1,31 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.eclipse.openk.sourcesystem.mock-up-topology</groupId>
+ <artifactId>mock-up-topology-model</artifactId>
+
+ <name>${project.groupId}.${project.artifactId}</name>
+
+ <parent>
+ <groupId>org.eclipse.openk.build.build-parentpom</groupId>
+ <artifactId>build-parentpom-model</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <relativePath>../../org.eclipse.openk.build/build-parentpom/build-parentpom-model/pom.xml</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.openk.sourcesystem.mock-up-topology</groupId>
+ <artifactId>mock-up-topology-common</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.btc.cim</groupId>
+ <artifactId>cim17v07</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+
+</project> \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/.gitignore b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/.gitignore
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/model/INodeFunctions.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/model/INodeFunctions.java
new file mode 100644
index 00000000..950ab249
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/model/INodeFunctions.java
@@ -0,0 +1,10 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.model;
+
+import com.btc.cab.common.dataexchange.cim.ICimEntity;
+
+public interface INodeFunctions {
+ /**
+ * @param child the CimEntity to add
+ */
+ void add(ICimEntity child);
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/model/Node.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/model/Node.java
new file mode 100644
index 00000000..4575c741
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/model/Node.java
@@ -0,0 +1,27 @@
+/**
+ *
+ */
+package org.eclipse.openk.sourcesystem.mockuptopology.model;
+
+import com.btc.cab.common.dataexchange.cim.ICimEntity;
+
+/**
+ * The Wrapper for Cim Elements.
+ *
+ * @author Christian Brunzendorf
+ *
+ */
+public class Node {
+
+ ICimEntity element;
+ INodeFunctions nodefunctions;
+
+ public Node(ICimEntity element, INodeFunctions nodeFunctions) {
+ this.element = element;
+ this.nodefunctions = nodeFunctions;
+ }
+
+ public void addChild(ICimEntity child) {
+ nodefunctions.add(child);
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/model/NodeFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/model/NodeFactory.java
new file mode 100644
index 00000000..0b0b8cab
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/model/NodeFactory.java
@@ -0,0 +1,26 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.model;
+
+import com.btc.cab.common.dataexchange.cim.ICimEntity;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Wires.BusbarSection;
+
+public class NodeFactory {
+
+ Node getBusbarSectionNode() {
+
+ return new Node(new BusbarSection(), new INodeFunctions() {
+
+ @Override
+ public void add(ICimEntity child) {
+ }
+ });
+ }
+
+ public static void main(String[] args) {
+
+ NodeFactory nodeFactory = new NodeFactory();
+
+ Node busbarSectionNode = nodeFactory.getBusbarSectionNode();
+
+ }
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/model/TopologyElement.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/model/TopologyElement.java
new file mode 100644
index 00000000..a21e6b42
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/model/TopologyElement.java
@@ -0,0 +1,94 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.model;
+
+import com.btc.cab.common.string.StringUtilities;
+
+/**
+ * Enumeration for the building of UUIDs for topology elements of a simple model.
+ *
+ * @author Frank Jäger
+ *
+ */
+public enum TopologyElement {
+
+ /**
+ * containers have 'a's,
+ * terminals have 'b's,
+ * connectivity nodes have 'c's,
+ * energy source/consumer and power transformers have 'd's,
+ * switches have 'e's,
+ * line segments, busbar sections and junctions have 'f',
+ * and base voltages have 'aa'.
+ */
+ AC_LINE_SEGMENT("f1", "Leitungssegment"),
+ BASE_VOLTAGE("bae", "Nennspannung"),
+ BAY("f4", "Feld"),
+ BREAKER("e1", "Leistungsschalter"),
+ BUSBAR_SECTION("f3", "Sammelschiene"),
+ CONNECTIVITY_NODE("c", "Knoten"),
+ DISCONNECTOR("e2", "Trenner"),
+ EARTH_FAULT_COMPENSATOR("de4", "Erdungswiderstand"),
+ ENERGY_CONSUMER("d1", "Energieverbraucher"),
+ ENERGY_SOURCE("d2", "Energiequelle"),
+ GROUND("de1", "Erdung"),
+ GROUNDING_IMPEDANCE("de3", "Erdschlussdrossel"),
+ JUNCTION("f2", "Muffe"),
+ LINE("a2", "Leitung"),
+ LOAD_BREAK_SWITCH("e3", "Lastgangschalter"),
+ PER_LENGTH_SEQUENCE_IMPENDANCE("fa1", "Impedanz"),
+ PETERSEN_COIL("de2", "Petersenspule"),
+ POWER_TRANSFORMER("d3", "Transformator"),
+ POWER_TRANSFORMER_END("d4", "Transformatorende"),
+ RATIO_TAP_CHANGER("d5", "Stufenschalter"),
+ SUBSTATION("a1", "Umspannwerk"),
+ TERMINAL("b", "Ende"),
+ VOLTAGE_LEVEL("baf", "Spannungsebenen"),
+ WIRE_INFO("fb1", "Leitungsinfo");
+
+ // Attributes
+ private final String uuidString;
+ private final String notation;
+
+ /**
+ * The Constructor for a topology element.
+ *
+ * @param uuidString
+ * the topology element uuid
+ * @param notation
+ * the topology element notation
+ * @throws IllegalArgumentException
+ * Is thrown in the following cases:
+ * <ul>
+ * <li><code>uuidString</code> is <code>null</code> or <code>""</code></li>
+ * <li><code>notation</code> is <code>null</code> or <code>""</code></li>
+ * </ul>
+ */
+ TopologyElement(String uuidString, String notation) throws IllegalArgumentException {
+ if(!StringUtilities.hasContent(uuidString) || !StringUtilities.hasContent(notation))
+ if(!StringUtilities.hasContent(uuidString))
+ throw new IllegalArgumentException("uuidString");
+ else
+ throw new IllegalArgumentException("notation");
+ else {
+ this.notation = notation;
+ this.uuidString = uuidString;
+ }
+ }
+
+ // Methods
+ /**
+ * @return returns the uuid
+ */
+ public String getUuidString() {
+
+ return uuidString;
+ }
+
+ /**
+ * @return returns the notation
+ */
+ public String getNotation() {
+
+ return notation;
+ }
+
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/model/TopologyId.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/model/TopologyId.java
new file mode 100644
index 00000000..753511bc
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/model/TopologyId.java
@@ -0,0 +1,16 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.model;
+
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.IdentifiedObject;
+
+/**
+ * The MRID of the topology.
+ *
+ * @author Christian Brunzendorf
+ *
+ */
+public class TopologyId extends IdentifiedObject {
+
+ // Constructor
+ public TopologyId() {
+ }
+}
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/resources/.gitignore b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/resources/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/main/resources/.gitignore
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/test/java/.gitignore b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/test/java/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/test/java/.gitignore
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/test/resources/.gitignore b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/test/resources/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-model/src/test/resources/.gitignore
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/mock-up-topology.config b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/mock-up-topology.config
new file mode 100644
index 00000000..6d676fd6
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/mock-up-topology.config
@@ -0,0 +1,2 @@
+RC|Topology|1|File|XML_1-0_UTF-8_RDF_1-1.directory-to-observe=target
+RC|Topology|1|File|XML_1-0_UTF-8_RDF_1-1.polling-interval=10000 \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/pom.xml b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/pom.xml
new file mode 100644
index 00000000..f325de75
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/pom.xml
@@ -0,0 +1,37 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.eclipse.openk.sourcesystem.mock-up-topology</groupId>
+ <artifactId>mock-up-topology-service</artifactId>
+
+ <name>${project.groupId}.${project.artifactId}</name>
+
+ <parent>
+ <groupId>org.eclipse.openk.build.build-parentpom</groupId>
+ <artifactId>build-parentpom-service</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <relativePath>../../org.eclipse.openk.build/build-parentpom/build-parentpom-service/pom.xml</relativePath>
+ </parent>
+
+ <properties>
+ <start-class>org.eclipse.openk.sourcesystem.mockuptopology.service.MockUpTopology</start-class>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.openk.sourcesystem.mock-up-topology</groupId>
+ <artifactId>mock-up-topology-infrastructure</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ <!-- com.btc -->
+ <dependency>
+ <groupId>com.btc.cim</groupId>
+ <artifactId>cim17v07</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+
+ </dependencies>
+
+</project> \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/.gitignore b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/.gitignore
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/MockUpTopology.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/MockUpTopology.java
new file mode 100644
index 00000000..f165a3dd
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/MockUpTopology.java
@@ -0,0 +1,191 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.service;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.stream.Stream;
+
+import javax.annotation.PostConstruct;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.dataexchange.cim.IObjectGenerator;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.generator.TopologyGenerator;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.stereotype.Service;
+
+import com.btc.cab.common.Version;
+import com.btc.cab.common.dataexchange.CommunicationTechnology;
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.common.dataexchange.cim.ICimIdentifiedObject;
+import com.btc.cab.common.messaging.ILogger;
+import com.btc.cab.common.messaging.LoggerFactory;
+import com.btc.cab.service.AbstractServiceController;
+import com.btc.cab.service.IServiceComponent;
+import com.btc.cab.service.configuration.IConfigurationDataProvider;
+import com.btc.cab.service.dataexchange.converter.ISerializerFactory;
+import com.btc.cab.service.dataexchange.exporter.IResponderFactory;
+import com.btc.cab.service.dataexchange.importer.IReceiver;
+import com.btc.cab.service.dataexchange.importer.IReceiverFactory;
+import com.btc.cab.service.dataexchange.processor.IViewFactory;
+import com.btc.cab.service.repository.api.IRepository;
+import com.btc.cab.service.repository.impl.InMemoryRepository;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.ConductingEquipment;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.EquipmentContainer;
+import com.btc.cim.cim17v07.TC57CIM.IEC61970.Base.Core.Terminal;
+
+/**
+ * The application starts here.
+ *
+ * @author Felix Korb
+ */
+@Service
+@SpringBootApplication(scanBasePackages = { "org.eclipse" })
+public class MockUpTopology extends AbstractServiceController {
+
+ // Constants
+ public static final String APPLICATION_ID = MockUpTopology.class.getSimpleName();
+ private static final ILogger LOGGER = LoggerFactory.createLogger(MockUpTopology.class);
+
+ // Attributes
+ /* injected attributes */
+ @Autowired
+ private IConfigurationDataProvider configurationDataProvider;
+ @Autowired
+ private IReceiverFactory receiverFactory;
+ @Autowired
+ private IResponderFactory responderFactory;
+ @Autowired
+ private ISerializerFactory serializerFactory;
+ @Autowired
+ private IViewFactory viewFactory;
+
+ // Methods
+ @Override
+ protected Map<String, IReceiver<?, ?, ?>> createReceivers() {
+
+ IReceiver<?, ?, ?> receiver;
+ Map<String, IReceiver<?, ?, ?>> result = new HashMap<>();
+
+ /* topology */
+ receiver = receiverFactory.createReceiver(MockUpTopologyDefaults.SCOPE_TOPOLOGY, Version.VERSION_ONE, CommunicationTechnology.File, DataExchangeFormat.FORMAT_XML_1_0_UTF_8_RDF_1_1);
+ result.put(receiver.getKey(), receiver);
+
+ return result;
+ }
+
+ @Override
+ protected void initializeRepositories(Map<String, IRepository<?, ?>> repositories) {
+
+ super.initializeRepositories(repositories);
+
+ /* add topology repository */
+ {
+ IRepository<String, ICimIdentifiedObject> repository = new InMemoryRepository<>();
+
+ IObjectGenerator<ICimIdentifiedObject> topologyGenerator = new TopologyGenerator(1000, 1);
+ saveAll(repository, topologyGenerator.generate());
+
+ repositories.put(MockUpTopologyDefaults.REPOSITORY_KEY_TOPOLOGY, repository);
+
+ }
+
+ /* add topology repository from SimpleMockUpModel */
+ {
+ // IRepository<String, ICimIdentifiedObject> repository = new InMemoryRepository<>();
+ //
+ // SimpleMockUpModel model = new SimpleMockUpModel();
+ //
+ // List<ICimIdentifiedObject> entities = new ArrayList<>(model.getEntities().values());
+ //
+ // repository.saveAll(entities);
+ //
+ // repositories.put(MockUpTopologyDefaults.REPOSITORY_KEY_TOPOLOGY, repository);
+
+ }
+ }
+
+ /**
+ * Recursively stores all objects that are part of the provided topology in the provided repository.
+ *
+ * @param repository
+ * the repository
+ * @param subtopology
+ * an object from the topology to save
+ */
+ private void saveAll(IRepository<String, ICimIdentifiedObject> repository, ICimIdentifiedObject subtopology) {
+
+ if(subtopology != null && repository.find(subtopology.getKey()) == null) {
+ repository.save(subtopology);
+ if(subtopology instanceof EquipmentContainer) {
+ EquipmentContainer container = (EquipmentContainer) subtopology;
+ if(container.getEquipments() != null)
+ container.getEquipments().forEach(e -> saveAll(repository, e));
+ }
+ else if(subtopology instanceof ConductingEquipment) {
+ ConductingEquipment equipment = (ConductingEquipment) subtopology;
+ saveAll(repository, equipment.getEquipmentContainer());
+ if(equipment.getTerminals() != null)
+ equipment.getTerminals() //
+ .stream() //
+ .map(t -> t.getConnectivityNode()) //
+ .flatMap(c -> c.getTerminals() != null ? c.getTerminals().stream() : Stream.empty()) //
+ .map(Terminal::getConductingEquipment) //
+ .forEach(e -> saveAll(repository, e));
+ }
+ }
+ }
+
+ @Override
+ @PostConstruct
+ public void initializeService() {
+
+ super.initializeService();
+ }
+
+ /**
+ * Starts the application.
+ *
+ * @param args
+ * the application arguments; can be <code>null</code> or empty
+ */
+ public static void main(final String[] args) {
+
+ SpringApplication.run(MockUpTopology.class, args);
+ }
+
+ // Properties
+ @Override
+ public Map<String, String> getConfigurationData(IServiceComponent<?> serviceComponent) throws IOException {
+
+ if(serviceComponent == null)
+ throw new IllegalArgumentException("serviceComponent", new NullPointerException());
+ else
+ return configurationDataProvider.getConfigurationData(serviceComponent);
+ }
+
+ @Override
+ public ILogger getLogger() {
+
+ return LOGGER;
+ }
+
+ @Override
+ public IResponderFactory getResponderFactory() {
+
+ return responderFactory;
+ }
+
+ @Override
+ public ISerializerFactory getSerializerFactory() {
+
+ return serializerFactory;
+ }
+
+ @Override
+ public IViewFactory getViewFactory() {
+
+ return viewFactory;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/MockUpTopologyContext.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/MockUpTopologyContext.java
new file mode 100644
index 00000000..c9e70b07
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/MockUpTopologyContext.java
@@ -0,0 +1,34 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.service;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.btc.cab.service.AbstractServiceContext;
+import com.btc.cab.service.IServiceController;
+
+/**
+ * The application context.
+ *
+ * @author Felix Korb
+ */
+@Service
+public final class MockUpTopologyContext extends AbstractServiceContext {
+
+ // Attributes
+ /* injected attributes */
+ @Autowired
+ private IServiceController serviceController;
+
+ // Constructors
+ public MockUpTopologyContext() {
+
+ super(MockUpTopology.APPLICATION_ID);
+ }
+
+ // Properties
+ @Override
+ public IServiceController getServiceController() {
+
+ return serviceController;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/configuration/ConfigurationDataProvider.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/configuration/ConfigurationDataProvider.java
new file mode 100644
index 00000000..210fa157
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/configuration/ConfigurationDataProvider.java
@@ -0,0 +1,28 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.service.configuration;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.btc.cab.service.IServiceContext;
+import com.btc.cab.service.configuration.AbstractPropertiesFileConfigurationDataProvider;
+
+/**
+ * Provides configuration data from the configuration file.
+ *
+ * @author Carsten Meyer
+ * @author Felix Korb
+ */
+@Service("ConfigurationDataProvider")
+public final class ConfigurationDataProvider extends AbstractPropertiesFileConfigurationDataProvider {
+
+ // Attributes
+ @Autowired
+ private IServiceContext context;
+
+ // Properties
+ @Override
+ public IServiceContext getContext() {
+
+ return context;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/dataexchange/converter/SerializerFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/dataexchange/converter/SerializerFactory.java
new file mode 100644
index 00000000..c2e14d30
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/dataexchange/converter/SerializerFactory.java
@@ -0,0 +1,235 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.service.dataexchange.converter;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.btc.cab.common.IContext;
+import com.btc.cab.common.Version;
+import com.btc.cab.common.dataexchange.DataExchangeFormat;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cab.service.dataexchange.cim.converter.CimRdfSerializer;
+import com.btc.cab.service.dataexchange.cim.converter.CimXmlSerializer;
+import com.btc.cab.service.dataexchange.converter.AbstractSerializer;
+import com.btc.cab.service.dataexchange.converter.AbstractSerializerFactory;
+import com.btc.cab.service.dataexchange.converter.ISerializer;
+import com.btc.cim.cim17v07.Cim17v07;
+
+/**
+ * Provides instances of {@link ISerializer} for defined versions and types.
+ *
+ * @author Felix Korb
+ */
+@Service
+public final class SerializerFactory extends AbstractSerializerFactory {
+
+ // Attributes
+ @Autowired
+ private IServiceContext context;
+
+ // Methods
+ @Override
+ protected Map<String, Class<?>> createSerializerTypes() {
+
+ String key;
+ Map<String, Class<?>> result = new HashMap<>();
+
+ /* AcLineSegments */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_AC_LINE_SEGMENTS, new Version(2), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_AC_LINE_SEGMENTS, new Version(3), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* BaseVoltages */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_BASE_VOLTAGES, new Version(2), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_BASE_VOLTAGES, new Version(3), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* Bays */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_BAYS, new Version(2), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* Breakers */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_BREAKERS, new Version(2), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_BREAKERS, new Version(3), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* BusbarSections */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_BUSBAR_SECTIONS, new Version(2), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_BUSBAR_SECTIONS, new Version(3), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* Disconnectors */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_DISCONNECTORS, new Version(2), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_DISCONNECTORS, new Version(3), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* EarthFaultCompensators */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_EARTH_FAULT_COMPENSATORS, Version.VERSION_ONE, Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* EnergyConsumers */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_ENERGY_CONSUMERS, new Version(2), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_ENERGY_CONSUMERS, new Version(3), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* EnergySources */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_ENERGY_SOURCES, new Version(2), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_ENERGY_SOURCES, new Version(3), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* GeographicalRegions */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_GEOGRAPHICAL_REGIONS, new Version(3), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* GroundingImpedances */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_GROUNDING_IMPEDANCES, Version.VERSION_ONE, Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* Grounds */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_GROUNDS, Version.VERSION_ONE, Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* Junctions */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_JUNCTIONS, new Version(2), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_JUNCTIONS, new Version(3), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* Lines */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_LINES, new Version(2), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_LINES, new Version(3), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* Lines */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_LINE_TYPES, new Version(2), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* LoadBreakSwitches */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_LOAD_BREAK_SWITCHES, new Version(2), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_LOAD_BREAK_SWITCHES, new Version(3), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* PetersenCoils */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_PETERSEN_COILS, Version.VERSION_ONE, Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* Plants */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_PLANTS, new Version(2), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* PowerTransformers */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_POWER_TRANSFORMERS, new Version(2), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_POWER_TRANSFORMERS, new Version(3), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* SubGeographicalRegions */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_SUB_GEOGRAPHICAL_REGIONS, new Version(2), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* Substations */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_SUBSTATIONS, new Version(2), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_SUBSTATIONS, new Version(3), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* Switches */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_SWITCHES, new Version(2), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_SWITCHES, new Version(3), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ /* Topology */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_TOPOLOGY, new Version(2), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8_RDF_1_1);
+ result.put(key, CimRdfSerializer.class);
+ }
+
+ /* Switches */
+ {
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_VOLTAGE_LEVELS, new Version(2), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+
+ key = AbstractSerializer.createKey(MockUpTopologyDefaults.SCOPE_VOLTAGE_LEVELS, new Version(3), Cim17v07.INSTANCE, DataExchangeFormat.FORMAT_XML_1_0_UTF_8);
+ result.put(key, CimXmlSerializer.class);
+ }
+
+ return result;
+ }
+
+ // Properties
+ @Override
+ public IContext getContext() {
+
+ return context;
+ }
+} \ No newline at end of file
diff --git a/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/dataexchange/processor/ViewFactory.java b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/dataexchange/processor/ViewFactory.java
new file mode 100644
index 00000000..82487ab6
--- /dev/null
+++ b/cim-cache/org.eclipse.openk.sourcesystem.mockuptopology/mock-up-topology-service/src/main/java/org/eclipse/openk/sourcesystem/mockuptopology/service/dataexchange/processor/ViewFactory.java
@@ -0,0 +1,213 @@
+package org.eclipse.openk.sourcesystem.mockuptopology.service.dataexchange.processor;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.openk.sourcesystem.mockuptopology.common.MockUpTopologyDefaults;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.AcLineSegmentsView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.BaseVoltagesView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.BaysView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.BreakersView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.BusbarSectionsView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.DisconnectorsView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.EarthFaultCompensatorsView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.EnergyConsumersView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.EnergySourcesView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.GeographicalRegionsView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.GroundingImpedancesView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.GroundsView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.JunctionsView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.LineTypesView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.LinesView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.LoadBreakSwitchesView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.PetersenCoilsView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.PlantsView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.PowerTransformersView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.SubGeographicalRegionsView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.SubstationsView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.SwitchesView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.TopologyView;
+import org.eclipse.openk.sourcesystem.mockuptopology.logic.processor.VoltageLevelView;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.btc.cab.common.IContext;
+import com.btc.cab.common.Version;
+import com.btc.cab.service.IServiceContext;
+import com.btc.cab.service.dataexchange.processor.AbstractView;
+import com.btc.cab.service.dataexchange.processor.AbstractViewFactory;
+import com.btc.cab.service.dataexchange.processor.IView;
+
+/**
+ * Provides instances of {@link IView} for defined versions and types.
+ *
+ * @author Felix Korb
+ */
+@Service
+public final class ViewFactory extends AbstractViewFactory {
+
+ // Attributes
+ @Autowired
+ private IServiceContext context;
+
+ // Methods
+ @Override
+ protected Map<String, Class<?>> createViewTypes() {
+
+ String key;
+ Map<String, Class<?>> result = new HashMap<>();
+
+ /* AcLineSegments */
+ {
+ key = AbstractView.createKey(MockUpTopologyDefaults.SCOPE_AC_LINE_SEGMENTS, Version.VERSION_ONE);
+ result.put(key, AcLineSegmentsView.class);
+ }
+
+ /* BaseVoltages */
+ {
+ key = AbstractView.createKey(MockUpTopologyDefaults.SCOPE_BASE_VOLTAGES, Version.VERSION_ONE);
+ result.put(key, BaseVoltagesView.class);
+ }
+
+ /* BaseVoltages */
+ {
+ key = AbstractView.createKey(MockUpTopologyDefaults.SCOPE_BAYS, Version.VERSION_ONE);
+ result.put(key, BaysView.class);
+ }
+
+ /* Breakers */
+ {
+ key = AbstractView.createKey(MockUpTopologyDefaults.SCOPE_BREAKERS, Version.VERSION_ONE);
+ result.put(key, BreakersView.class);
+ }
+
+ /* BusbarSections */
+ {
+ key = AbstractView.createKey(MockUpTopologyDefaults.SCOPE_BUSBAR_SECTIONS, Version.VERSION_ONE);
+ result.put(key, BusbarSectionsView.class);
+ }
+
+ /* Disconnectors */
+ {
+ key = AbstractView.createKey(MockUpTopologyDefaults.SCOPE_DISCONNECTORS, Version.VERSION_ONE);
+ result.put(key, DisconnectorsView.class);
+ }
+
+ /* EarthFaultCompensators */
+ {
+ key = AbstractView.createKey(MockUpTopologyDefaults.SCOPE_EARTH_FAULT_COMPENSATORS, Version.VERSION_ONE);
+ result.put(key, EarthFaultCompensatorsView.class);
+ }
+
+ /* EnergyConsumers */
+ {
+ key = AbstractView.createKey(MockUpTopologyDefaults.SCOPE_ENERGY_CONSUMERS, Version.VERSION_ONE);
+ result.put(key, EnergyConsumersView.class);
+ }
+
+ /* EnergySources */
+ {
+ key = AbstractView.createKey(MockUpTopologyDefaults.SCOPE_ENERGY_SOURCES, Version.VERSION_ONE);
+ result.put(key, EnergySourcesView.class);
+ }
+
+ /* GeographicalRegions */
+ {
+ key = AbstractView.createKey(MockUpTopologyDefaults.SCOPE_GEOGRAPHICAL_REGIONS, Version.VERSION_ONE);
+ result.put(key, GeographicalRegionsView.class);
+ }
+
+ /* GroundingImpedances */
+ {
+ key = AbstractView.createKey(MockUpTopologyDefaults.SCOPE_GROUNDING_IMPEDANCES, Version.VERSION_ONE);
+ result.put(key, GroundingImpedancesView.class);
+ }
+
+ /* Grounds */
+ {
+ key = AbstractView.createKey(MockUpTopologyDefaults.SCOPE_GROUNDS, Version.VERSION_ONE);
+ result.put(key, GroundsView.class);
+ }
+</